Guess what I did today :-)
(I did exactly the same thing: ported the thing to -125...... )
> The driver does DMA directly into the skb's - it pre-allocates
> a set of 16 buffers for receiving, and tries to replenish this
> pool once every second. It will, however, work even if the pool
> is not replenished immediately - it just slows down, then.
Actually it replenishes them at every recieved packet, PLUS once
every second.
> Transmit buffers also need to be in DMA'able memory; if the network
> layer passes a buffer above 16 MB, a new buffer is allocated with
> GFP_DMA and data is copied to this buffer before transmission.
For transmit buffers, there is also an escape route. It will use the
one emergency buffer allocated at ifconfig-up time as a jump-buffer.
If no below-16M buffers can be found, it will use this one, and again
the driver will become single threaded. But as far as I can see, it
should only suffer a bit in the performance region, it should not
be possible to lock the machine.
Roger.
-- | Most people would die sooner than think.... | R.E.Wolff@BitWizard.nl | in fact, most do. -- Bertrand Russsell | phone: +31-15-2137555 We write Linux device drivers for any device you may have! fax: ..-2138217- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/