netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* d80211: How does TX flow control work?
@ 2007-01-02 13:08 Jan Kiszka
  2007-01-03 17:52 ` Jiri Benc
  0 siblings, 1 reply; 9+ messages in thread
From: Jan Kiszka @ 2007-01-02 13:08 UTC (permalink / raw)
  To: netdev; +Cc: Jiri Benc, Ivo Van Doorn, rt2400-devel

[-- Attachment #1: Type: text/plain, Size: 861 bytes --]

Hi,

can someone explain how TX flow control in d80211 is supposed to work? I
failed to understand the full design so far.

What I (think to) understand is that a low-level drivers call
ieee80211_stop_queue() if they run out of buffers. That flips a
per-queue bit (IEEE80211_LINK_STATE_XOFF), prevents that any further
frame is passed to the low-level TX routine, and can cause that up to
*one* packet per queue is stored in
ieee80211_local::pending_packets[queue]. But it looks to me like nothing
prevents ieee80211_tx() being invoked even in case that there is already
some stuff in that single-packet storage.

That in turn triggers WARN_ONs in ieee80211_tx() under high load for me
(with rt2500usb). And it should also cause orphaned skbs because the
storage is overwritten in that case. Either I'm blind or something is
fishy...

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-01-10 18:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-02 13:08 d80211: How does TX flow control work? Jan Kiszka
2007-01-03 17:52 ` Jiri Benc
2007-01-03 18:10   ` Jan Kiszka
2007-01-03 18:18     ` Jiri Benc
2007-01-03 18:50       ` Jan Kiszka
2007-01-07  0:00         ` Jan Kiszka
2007-01-08 20:18           ` Jan Kiszka
2007-01-10 18:20             ` Jiri Benc
2007-01-10 18:29               ` Simon Barber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).