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
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.
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
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);