Re: 2.1.125: Locks when running out of ISA DMA buffers ?

Rogier Wolff (R.E.Wolff@BitWizard.nl)
Mon, 19 Oct 1998 23:52:02 +0200 (MEST)


storner@image.dk wrote:
> (The driver is available at
> ftp://ftp.olicom.dk/releases/Unix-Driver/Linux/oltr-v1.29-102.gz,
> if you're interested - it doesn't patch cleanly into 2.1.125, but
> the necessary changes are trivial. Email me if you want an updated
> patch).

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/