North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

Re: Software router state of the art

  • From: Petri Helenius
  • Date: Sun Jul 27 02:13:17 2008

William Herrin wrote:
The pro/1000 does not need to generate an interrupt in order to start
a DMA transfer? Can you refer me to some documents which explain in
detail how a card on the bus sets up a DMA transfer?
The driver provides the adapter a ring buffer of memory locations to busmaster dma the data into (which does not require interrupting the CPU). The interrupts are triggered after the DMA completes and in moderation controllable by the driver. For FreeBSD the default maxes interrupts out at 8000 per second and on some of the adapters there are firmware optimizations for lowering the latency from the obvious maximum of 125 microseconds. When an interrupt is fired the driver restocks the ring buffer with new addresses to put data into, for one or for 4000 frames, depending on how many were used up.

With IOAT and various offloads this gets somewhat more complicated and more effective.

Pete