Right - and what I'm proposing is that we don't just count the number of
frames in the ring - but also count the amount of frame time the ring
takes too. This way if there are a number of large, slow frames we can
stop adding more frames into the ring well before we reach the limit on
the number of frames. 

Simon

-----Original Message-----
From: Michael Buesch [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 23, 2006 1:20 PM
To: Simon Barber
Cc: Jiri Benc; [EMAIL PROTECTED]; netdev@vger.kernel.org
Subject: Re: [PATCH] d80211: add ieee80211_stop_queues()

On Wednesday 23 August 2006 22:10, Simon Barber wrote:
> The DMA ring forms a queue of frames. Frames live in that queue for 
> some time before they are transmitted. This is a source of latency 
> between the software process that puts  the frames in the queue and 
> the point in time when they are actually transmitted.

Yes, sure. But I don't see how shortening that queue reduces the time.
Frames are always processed by the device as fast as possible to a given
"end-pointer". That end-pointer is updated on the fly as packets come
in. So if enough packets come in the device keeps circling the ring. No
matter how large it is.
The issue that we must prevent is a ring overflow by providing a
sufficiently _large_ (not small) ring. The larger the ring the better.
Theoretically an infinite ring size would be perfect, but we don't want
that for obvious memory issues. ;) So we try to keep ring size down to a
sane amount, where it's damn unlikely to ever overflow, to reduce memory
usage (and only memory usage).

--
Greetings Michael.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to