acpi bad irq handling

July 9, 2008 by nm · Leave a Comment 

Hiện tượng là laptop thỉnh thoảng đờ ra, toàn bộ hệ thống ko có event gì cả. Cứ phải có keystroke hoặc move mouse thì mọi thứ mới chạy.

Dump dmesg thì thấy bị “bad IRQ handing at XXXX”

Nguyên nhân có thể do module acpi.

Cấu hình máy : Thinkpad x61, debian lenny, kernel 2.6.24-1-686, thinkpad_acpi  module ver 0.17, acpi package version 1.1-1

Rảnh điều tra tiếp…

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Add to favorites
  • Reddit
  • Technorati
  • Tumblr
  • Twitter
  • Slashdot
  • Identi.ca

xvnkb cvs patch

July 9, 2008 by nm · Leave a Comment 

Ngồi mân mê cái laptop thấy cpu bị switch khỏi idle mode rất nhiều. Ngó nghiêng một lúc thấy nguyên nhân là tại xvnkb nhà ta.  usleep(10000) được gọi liên tục trong main.c.

bản patch bonus thêm cái vụ crash với xscreensaver khi gõ password.

diff -r ./xvnkb_patch/main.c ./xvnkb_org/main.c

92d91
< XEvent peekEvt;
94,95c93,94
< //usleep(1000);
< XPeekEvent(display, &peekEvt);
---
> usleep(1000);
>
105c104
< do {
---
> while( XPending(display) ) {
110c109
< } while( XPending(display) );
---
> }

diff -r ./xvnkb_patch/xvnkb.c ./xvnkb_org/xvnkb.c
276,285c276
<
< /*
< * CHANGES:
< * - SEG FAULT report & fixed by nm <nm@vnoss.org>
< * problem occur when main app call XLookupString w/ keysym arg = NULL.
< * (xscreensaver/lock.c :: size = XLookupString(event, s, 1, 0, compose_status) )
< * pointer keysym must be validate before used.
< */
< if (keysym)
< *keysym = vk_charset==VKC_UTF8 ? *pw|0x01000000 : (*(char *)buffer & 0xFF);
---
> *keysym = vk_charset==VKC_UTF8 ? *pw|0x01000000 : (*(char *)buffer & 0xFF);
Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Add to favorites
  • Reddit
  • Technorati
  • Tumblr
  • Twitter
  • Slashdot
  • Identi.ca