http://bugzilla.kernel.org/show_bug.cgi?id=10483





------- Comment #24 from [EMAIL PROTECTED]  2008-08-16 06:23 -------
(In reply to comment #23)
> In this debug patch even the timeout expires, OS will try to check the SMbus
> status again to avoid the bogus timeout.

The problem is that the timeout NEVER expires (at least it looks like it never
expires, maybe it will in an hour).

I think the core of the problem is hidden in the wait_event_timeout macro
(include/linux/wait.h). It tries to execute a check function and if it fails,
it tries to sleep for a "timeout" time. It can be woken up, in this case the
check function is called again and if it fails, the sleep _continues_ where it
stopped. The smb_check_done takes some time to execute, but this time is not
counted in this "timeout". And it looks like the sleep is interrupted quite
fast, so the rest of the timeout gets lower only slightly. I didn't
verify/measure this hypothesis, but I rewrote the wait_transaction_complete
function to really take at most "timeout" time and it works.

Question is why the sleep is interrupted so often, I didn't investigate this.

I will attach patch and (my) debug output.


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to