Search Linux Wireless

Re: multiqueue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux