2008-08-02 03:06:56

by Larry Finger

[permalink] [raw]
Subject: p54usb broken by commit b19fa1f

In testing 2.6.27-rc1, I found that p54usb caused my machine to freeze. A few
times, I was able to use the KDE system status applet to see that the system was
using essentially 100% of the CPU's. One other time, the system responded a
little - enough for me to see tha wpa_supplicant was consuming 100% of the my
AMD Turion 64 X2 running an x86_64 kernel. From bisection, the problem is due to

commit b19fa1fa91845234961c64dbd564671aa7c0fd27
Author: David S. Miller <[email protected]>
Date: Tue Jul 8 23:14:24 2008 -0700

net: Delete NETDEVICES_MULTIQUEUE kconfig option.

Multiple TX queue support is a core networking feature.

Signed-off-by: David S. Miller <[email protected]>

Obviously, something in the driver cannot handle multiqueues, but I
have not found anything, and I have not been able to get any logged events that
show what is going wrong.

Thanks,

Larry


2008-08-02 12:57:57

by Christian Lamparter

[permalink] [raw]
Subject: Re: p54usb broken by commit b19fa1f

On Saturday 02 August 2008 05:06:37 Larry Finger wrote:
> In testing 2.6.27-rc1, I found that p54usb caused my machine to freeze. A
> few times, I was able to use the KDE system status applet to see that the
> system was using essentially 100% of the CPU's. One other time, the system
> responded a little - enough for me to see tha wpa_supplicant was consuming
> 100% of the my AMD Turion 64 X2 running an x86_64 kernel. From bisection,
> the problem is due to
>
> commit b19fa1fa91845234961c64dbd564671aa7c0fd27
> Author: David S. Miller <[email protected]>
> Date: Tue Jul 8 23:14:24 2008 -0700
>
> net: Delete NETDEVICES_MULTIQUEUE kconfig option.
>
> Multiple TX queue support is a core networking feature.
>
> Signed-off-by: David S. Miller <[email protected]>
>
> Obviously, something in the driver cannot handle multiqueues, but I
> have not found anything, and I have not been able to get any logged events
> that show what is going wrong.
>

Hmm that's a bit odd as my p54usb-adapter seems to work usual with
2.6.27-rc1?!... That said: it doesn't work nearly as stable as the
minipci card that I have too. Is there anyone else who can confirm
that this problem is specific to the p54 driver & 2.6.27-rc1?

Regards,
Chr.

2008-08-03 20:07:37

by Larry Finger

[permalink] [raw]
Subject: Re: p54usb broken by commit b19fa1f

Chr wrote:
> On Saturday 02 August 2008 05:06:37 Larry Finger wrote:
>> In testing 2.6.27-rc1, I found that p54usb caused my machine to freeze. A
>> few times, I was able to use the KDE system status applet to see that the
>> system was using essentially 100% of the CPU's. One other time, the system
>> responded a little - enough for me to see tha wpa_supplicant was consuming
>> 100% of the my AMD Turion 64 X2 running an x86_64 kernel. From bisection,
>> the problem is due to
>>
>> commit b19fa1fa91845234961c64dbd564671aa7c0fd27
>> Author: David S. Miller <[email protected]>
>> Date: Tue Jul 8 23:14:24 2008 -0700
>>
>> net: Delete NETDEVICES_MULTIQUEUE kconfig option.
>>
>> Multiple TX queue support is a core networking feature.
>>
>> Signed-off-by: David S. Miller <[email protected]>
>>
>> Obviously, something in the driver cannot handle multiqueues, but I
>> have not found anything, and I have not been able to get any logged events
>> that show what is going wrong.
>>
>
> Hmm that's a bit odd as my p54usb-adapter seems to work usual with
> 2.6.27-rc1?!... That said: it doesn't work nearly as stable as the
> minipci card that I have too. Is there anyone else who can confirm
> that this problem is specific to the p54 driver & 2.6.27-rc1?

The problem is triggered by the following section:

if (priv->fw_var >= 0x300) {
/* Firmware supports QoS, use it! */
priv->tx_stats[0].limit = 3;
priv->tx_stats[1].limit = 4;
priv->tx_stats[2].limit = 3;
priv->tx_stats[3].limit = 1;
dev->queues = 4;
}

If fw_var is less than 0x300, then the bug does not trigger. On my system, if I
change the number of queues to 1, then all is OK.

Larry

2008-08-03 20:14:11

by Larry Finger

[permalink] [raw]
Subject: [RFC/RFT] p54usb: Regression due to commit b19fa1f

In commit b19fa1fa91845234961c64dbd564671aa7c0fd27, the configuration
parameter NETDEVICES_MULTIQUEUE was eliminated making multiple TX queues
the normal behavior. For p54usb, enabling multiple queues broke the driver.

The real failure is not known, but a temporary hack that forces only one
queue is presented here.

Signed-off-by: Larry Finger <[email protected]>
---


Index: linux-2.6/drivers/net/wireless/p54/p54common.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/p54/p54common.c
+++ linux-2.6/drivers/net/wireless/p54/p54common.c
@@ -150,7 +150,7 @@ void p54_parse_firmware(struct ieee80211
priv->tx_stats[1].limit = 4;
priv->tx_stats[2].limit = 3;
priv->tx_stats[3].limit = 1;
- dev->queues = 4;
+ dev->queues = 1; /* temp. hack, set to 1 as 4 breaks p54usb */
}
}
EXPORT_SYMBOL_GPL(p54_parse_firmware);



Attachments:
p54usb_fix (902.00 B)