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


