On Mon, 3 Aug 2009, Hans Petter Selasky wrote:
On Monday 03 August 2009 10:28:38 Ed Schouten wrote:
* Robert Watson <rwat...@freebsd.org> wrote:
I'm a bit surprised the timed key repeat in this patch would work properly
in DDB, as microtime(9) relies on interrupts firing for updated
timestamps. The availability of interrupts for polled input consumers
varies, but in general this is not true (for example) at the DDB command
prompt. Does this code work correctly when time stands still?
Apart from that, who gives a *beep* about keyboard repeat while inside the
debugger. I have to confess it would be irritating to press backspace
multiple times, instead of holding the key pressed, but still, it's not
worth it.
I think getmicrotime relies on interrupts, while microtime doesn't.
See "man microtime".
You're right, but that doesn't make things better :-). Some of the
tc_get_timecount() calls are safe in the DDB environment, but several are not.
In particular, tick_get_timecount_mp() and i8254_get_timecount() both acquire
locks, the former the thread scheduler lock, and the latter a dedicated
spinlock. This produces the opportunity for rather nasty deadlocks in DDB,
especially tick_get_timecount_mp() on sparc64.
This was the bug I was actually looking for in your patch, but then misread
microtime() and concluded you had a different one. :-) I would much rather
not have DDB rely on, for example, not contending thread_lock(), than have key
repeat in DDB.
Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"