* multiqueue
@ 2008-05-03 22:35 Ivo van Doorn
2008-05-03 22:39 ` multiqueue Johannes Berg
0 siblings, 1 reply; 5+ messages in thread
From: Ivo van Doorn @ 2008-05-03 22:35 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless
Hi Johannes,
Below is a warning I get with your latest QOS patch series,
rt61pci registers 4 queues, but apparently the WARN_ON()
in ieee80211_wake_queue is being triggered.
void ieee80211_wake_queue(struct ieee80211_hw *hw, int queue)
{
struct ieee80211_local *local = hw_to_local(hw);
if (netif_is_multiqueue(local->mdev)) {
netif_wake_subqueue(local->mdev, queue);
} else {
WARN_ON(queue != 0);
netif_wake_queue(local->mdev);
}
}
CONFIG_MAC80211_QOS is enabled in the kernel configuration,
and debugfs shows that rt2x00 is serving frames over multiple
TX queues, so the multiqueue is working...
Ivo
May 4 00:27:20 localhost ------------[ cut here ]------------
May 4 00:27:20 localhost WARNING: at net/mac80211/util.c:334 ieee80211_wake_queue+0x51/0x5b [mac80211]()
May 4 00:27:20 localhost Modules linked in: snd_seq_midi snd_emu10k1_synth snd_emux_synth snd_seq_virmidi snd_seq_midi_event snd_seq_midi_emul snd_seq snd_pcm_oss snd_mixer_oss snd_intel8x0 rt61pci rt2400pci rt2x00pci rt2x00lib snd_emu10k1 snd_rawmidi snd_ac97_codec mac80211 ac97_bus cfg80211 eeprom_93cx6 snd_pcm snd_seq_device snd_timer snd_page_alloc snd_util_mem snd_hwdep snd scsi_wait_scan
May 4 00:27:20 localhost Pid: 0, comm: swapper Not tainted 2.6.25-wl-06940-gd91c42d #1
May 4 00:27:20 localhost
May 4 00:27:20 localhost Call Trace:
May 4 00:27:20 localhost <IRQ> [<ffffffff802314d1>] warn_on_slowpath+0x51/0x63
May 4 00:27:20 localhost [<ffffffff804994eb>] skb_queue_tail+0x17/0x3f
May 4 00:27:20 localhost [<ffffffff8804f79c>] :mac80211:ieee80211_tx_status_irqsafe+0x10b/0x16b
May 4 00:27:20 localhost [<ffffffff880d4cc5>] :rt2x00lib:rt2x00lib_txdone+0xd5/0x10b
May 4 00:27:20 localhost [<ffffffff880d6867>] :rt2x00lib:rt2x00queue_index_inc+0x1a/0xa3
May 4 00:27:20 localhost [<ffffffff8806573a>] :mac80211:ieee80211_wake_queue+0x51/0x5b
May 4 00:27:20 localhost [<ffffffff880ef5b8>] :rt61pci:rt61pci_interrupt+0x2dd/0x340
May 4 00:27:20 localhost [<ffffffff80256164>] handle_IRQ_event+0x32/0x64
May 4 00:27:20 localhost [<ffffffff802577a6>] handle_fasteoi_irq+0x78/0xdd
May 4 00:27:20 localhost [<ffffffff8020e69d>] do_IRQ+0xa6/0x175
May 4 00:27:20 localhost [<ffffffff8020b691>] ret_from_intr+0x0/0xa
May 4 00:27:20 localhost [<ffffffff8020a21a>] default_idle+0x31/0x55
May 4 00:27:20 localhost [<ffffffff80236a98>] __do_softirq+0x51/0xd4
May 4 00:27:20 localhost [<ffffffff8020c30c>] call_softirq+0x1c/0x30
May 4 00:27:20 localhost [<ffffffff8020e417>] do_softirq+0x30/0x6b
May 4 00:27:20 localhost [<ffffffff8021bf26>] smp_apic_timer_interrupt+0x6e/0xa8
May 4 00:27:20 localhost [<ffffffff8020bdb6>] apic_timer_interrupt+0x66/0x70
May 4 00:27:20 localhost <EOI> [<ffffffff8020a21a>] default_idle+0x31/0x55
May 4 00:27:20 localhost [<ffffffff8020a215>] default_idle+0x2c/0x55
May 4 00:27:20 localhost [<ffffffff8020a1e9>] default_idle+0x0/0x55
May 4 00:27:20 localhost [<ffffffff8020a286>] cpu_idle+0x48/0x8b
May 4 00:27:20 localhost
May 4 00:27:20 localhost ---[ end trace b92f992a457f49f1 ]---
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: multiqueue
2008-05-03 22:35 multiqueue Ivo van Doorn
@ 2008-05-03 22:39 ` Johannes Berg
2008-05-03 23:15 ` multiqueue Ivo van Doorn
0 siblings, 1 reply; 5+ messages in thread
From: Johannes Berg @ 2008-05-03 22:39 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: linux-wireless
[-- Attachment #1: Type: text/plain, Size: 966 bytes --]
Hi Ivo,
> Below is a warning I get with your latest QOS patch series,
> rt61pci registers 4 queues, but apparently the WARN_ON()
> in ieee80211_wake_queue is being triggered.
>
> void ieee80211_wake_queue(struct ieee80211_hw *hw, int queue)
> {
> struct ieee80211_local *local = hw_to_local(hw);
>
> if (netif_is_multiqueue(local->mdev)) {
> netif_wake_subqueue(local->mdev, queue);
> } else {
> WARN_ON(queue != 0);
> netif_wake_queue(local->mdev);
> }
> }
>
> CONFIG_MAC80211_QOS is enabled in the kernel configuration,
> and debugfs shows that rt2x00 is serving frames over multiple
> TX queues, so the multiqueue is working...
Strange. Can you verify that the master device has the
NETIF_F_MULTI_QUEUE flag set? Since that config symbol got enabled you
must have multiqueue code compiled in. Or maybe I put the setting of the
MULTI_QUEUE flag into a wrong patch by accident? Check
net/mac80211/main.c please
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: multiqueue
2008-05-03 22:39 ` multiqueue Johannes Berg
@ 2008-05-03 23:15 ` Ivo van Doorn
2008-05-03 23:17 ` multiqueue Johannes Berg
0 siblings, 1 reply; 5+ messages in thread
From: Ivo van Doorn @ 2008-05-03 23:15 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless
On Sunday 04 May 2008, Johannes Berg wrote:
> Hi Ivo,
>
> > Below is a warning I get with your latest QOS patch series,
> > rt61pci registers 4 queues, but apparently the WARN_ON()
> > in ieee80211_wake_queue is being triggered.
> >
> > void ieee80211_wake_queue(struct ieee80211_hw *hw, int queue)
> > {
> > struct ieee80211_local *local = hw_to_local(hw);
> >
> > if (netif_is_multiqueue(local->mdev)) {
> > netif_wake_subqueue(local->mdev, queue);
> > } else {
> > WARN_ON(queue != 0);
> > netif_wake_queue(local->mdev);
> > }
> > }
> >
> > CONFIG_MAC80211_QOS is enabled in the kernel configuration,
> > and debugfs shows that rt2x00 is serving frames over multiple
> > TX queues, so the multiqueue is working...
>
> Strange. Can you verify that the master device has the
> NETIF_F_MULTI_QUEUE flag set? Since that config symbol got enabled you
> must have multiqueue code compiled in. Or maybe I put the setting of the
> MULTI_QUEUE flag into a wrong patch by accident? Check
> net/mac80211/main.c please
My config options are:
CONFIG_NET_SCHED=y
CONFIG_NETDEVICES_MULTIQUEUE=y
CONFIG_CFG80211=m
CONFIG_NL80211=y
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_QOS=y
snip from net/mac80211/main.c:
#ifdef CONFIG_MAC80211_QOS
if (hw->queues > IEEE80211_MAX_QUEUES)
hw->queues = IEEE80211_MAX_QUEUES;
if (hw->ampdu_queues > IEEE80211_MAX_AMPDU_QUEUES)
hw->ampdu_queues = IEEE80211_MAX_AMPDU_QUEUES;
if (hw->queues < 4)
hw->ampdu_queues = 0;
#else
hw->queues = 1;
hw->ampdu_queues = 0;
#endif
/* for now, mdev needs sub_if_data :/ */
mdev = alloc_netdev_mq(sizeof(struct ieee80211_sub_if_data),
"wmaster%d", ether_setup,
hw->queues + hw->ampdu_queues);
if (!mdev)
goto fail_mdev_alloc;
if (hw->queues > 1)
mdev->flags |= NETIF_F_MULTI_QUEUE;
So theoretically this flag should be set.
However /sys/class/net/wmaster1/features contains the value 0x0
Ivo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: multiqueue
2008-05-03 23:15 ` multiqueue Ivo van Doorn
@ 2008-05-03 23:17 ` Johannes Berg
2008-05-04 9:47 ` multiqueue Ivo van Doorn
0 siblings, 1 reply; 5+ messages in thread
From: Johannes Berg @ 2008-05-03 23:17 UTC (permalink / raw)
To: Ivo van Doorn; +Cc: linux-wireless
[-- Attachment #1: Type: text/plain, Size: 333 bytes --]
> if (!mdev)
> goto fail_mdev_alloc;
> if (hw->queues > 1)
> mdev->flags |= NETIF_F_MULTI_QUEUE;
>
> So theoretically this flag should be set.
> However /sys/class/net/wmaster1/features contains the value 0x0
Yes, umm, guess why. That line should be mdev->features |= ...
Not really my week, sorry.
johannes
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: multiqueue
2008-05-03 23:17 ` multiqueue Johannes Berg
@ 2008-05-04 9:47 ` Ivo van Doorn
0 siblings, 0 replies; 5+ messages in thread
From: Ivo van Doorn @ 2008-05-04 9:47 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless
On Sunday 04 May 2008, Johannes Berg wrote:
>
> > if (!mdev)
> > goto fail_mdev_alloc;
> > if (hw->queues > 1)
> > mdev->flags |= NETIF_F_MULTI_QUEUE;
> >
> > So theoretically this flag should be set.
> > However /sys/class/net/wmaster1/features contains the value 0x0
>
> Yes, umm, guess why. That line should be mdev->features |= ...
That did the trick. :)
Thanks,
Ivo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-05-04 9:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-03 22:35 multiqueue Ivo van Doorn
2008-05-03 22:39 ` multiqueue Johannes Berg
2008-05-03 23:15 ` multiqueue Ivo van Doorn
2008-05-03 23:17 ` multiqueue Johannes Berg
2008-05-04 9:47 ` multiqueue Ivo van Doorn
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).