On 28.09.2012 16:48, John Baldwin wrote:
kcs_wait_for_obf() at kcs_wait_for_obf+0xb6 point to
> /usr/src/sys/dev/ipmi/ipmi_kcs.c:94
>
> 91 while (ticks - start< MAX_TIMEOUT&&
> 92 !(status& KCS_STATUS_OBF)) {
> 93 DELAY(100);
> 94 status = INB(sc, KCS_CTL_STS);
> 95 }
Hummm. I'm a bit out of ideas then. Even the volatile change is a bug that
could have been confirmed (to see if volatile was preventing the compiler
from caching the value of 'ticks') by examining the assembly.
Well, maybe this. This just avoids using 'ticks' altogether and depends on
DELAY(100) doing what it says:
New patch also don't solve my problem.
My guess was wrong. Loop in kcs_wait_for_obf() is not endless, at least with
last patch.
Whole function called in some loop, but because loop in kcs_wait_for_obf() takes
much CPU time, backtrace always point to loop kcs_wait_for_obf().
This problem need further investigation.
--
Anton Yuzhaninov
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[email protected]"