Viestit paikassa Kernel Bug Tracker

wistron_btns ”breaks” -pae: floods with ”Unknown key code 10”, causing severe slowdown

3. maaliskuuta 2012 klo 15.01
Sijainti: Vianhallintajärjestelmät: Kernel Bug Tracker
Avainsanat: Linux

My summary’s crap because this is difficult to summarize, hopefully the explanation below makes it clearer. I have little understanding of kernel internals, so I’ll first just try and describe the symptom as it appears.

I’ve come across an issue on my Fujitsu Siemens Amilo M7400 laptop with wistron_btns that is triggered by certain kernels, and once triggered, seems to affect all subsequent attempts to reboot with -pae kernels until a non-pae kernel is booted. I initially reported this on Launchpad [1].

I can currently trigger the issue by (cold or re-) booting 3.2.0-14-pae (these are Ubuntu’s packaged kernels) or by booting (for example) 3.3.0-030300rc4-generic-pae in recovery mode (= ”ro recovery nomodeset”). The recovery boot seems to work normally, but the 3.2.0-14-pae boot already exhibits the failure: it seemingly freezes. (More about the exact nature of ”failure” below.)

Once I’ve triggered the issue, rebooting with any -pae kernel fails similar to how 3.2.0-14-pae behaves irregardless of preceding boots.

I can ”fix” this by booting a non-pae kernel (which never fails). After that subsequent reboots with -pae kernels (apart from 3.2.0-14-pae) no longer fail — not until I do any of the triggering actions again.

Now, the ”failure” looks like a freeze, but it’s actually just an extreme slowdown. With patience, I can actually have the boot finish and can inspect logs. Dmesg reveals that wistron_btns is repeating ”Unknown key code 10” over and over.

If I comment wistron_btns out of /etc/modules so that it isn’t loaded, the issue goes away, meaning I can no longer trigger it.

As I said, I have little understanding of kernel bugs, so what I say next may be completely off, but the way I’ve interpreted this is that the ”brokenness” is actually hidden in the hardware, in something controlled by wistron_btns. Booting 3.2.0-14-pae/recovery booting any -pay puts the controller(?) in a ”broken” state from which a -pae kernel can’t recover, but a non-pae kernel can. And although -pae kernels later than 3.2.0-14 can’t recover a ”broken” controller, they also cannot put it into that ”broken” state (which is a good turn of development).

I’ll be happy to provide more info as requested. I’m attaching dmesg output for
starters.

* [1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/926012

Vastaa viestiin sen kontekstissa (Kernel Bug Tracker)