All of lore.kernel.org
 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; 21+ 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] 21+ messages in thread

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

Thread overview: 21+ 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
2007-03-27 20:58             ` Johannes Berg
2007-03-29  8:45               ` Jan Kiszka
2007-05-01 10:41                 ` Jan Kiszka
2007-05-01 10:47                   ` Jiri Benc
2007-05-01 10:50                     ` Jan Kiszka
2007-05-01 11:04                       ` Johannes Berg
2007-05-01 13:07                         ` Jan Kiszka
2007-05-01 13:26                           ` Johannes Berg
2007-05-01 14:18                             ` Jan Kiszka
2007-05-01 15:25                               ` Jiri Benc
2007-05-01 17:01                                 ` Michael Wu
2007-05-01 18:57                                   ` Jan Kiszka

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.