The fixed timer patch you posted a few weeks back has indeed fixed my
select()-based timeout woes.

Unfortunately, both with the old kludgy approach and with the new
remain-versus-max estimator code, I see intermittent tight lockups of
the UML kernel-space ptrace thread, with that thread chewing all
available CPU time and the virtual machine, unsurprisingly, going
unresponsive. sysprof seems unwilling to extract anything out of this,
even though it has debugging info; gdb-attachment is somewhat more
informative. A few snapshots a few seconds apart in an instance that had
been looping for some time:

0x080836c2 in update_wall_time ()
0x080836b3 in update_wall_time ()
0x08083b32 in current_tick_length ()
0x08083644 in update_wall_time ()
0x0808368e in update_wall_time ()

I'm willing to bet that, in the loop in update_wall_time(), `offset' is
somehow going negative: and as it's an unsigned value that's a bit
problematic. Unfortunately I can't see any way that could happen, unless
something is smashing it or changing clock->cycle_interval and racing
with the loop conditional test.

I'll instrument that loop and try to figure it out.

-- 
`The rest is a tale of post and counter-post.' --- Ian Rawlings
                                                   describes USENET

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Register now and save $200. Hurry, offer ends at 11:59 p.m., 
Monday, April 7! Use priority code J8TLD2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to