1 Mar 2007 01:01
Re: debug registers and fork
Alan Stern <stern <at> rowland.harvard.edu>
2007-03-01 00:01:17 GMT
2007-03-01 00:01:17 GMT
On Wed, 28 Feb 2007, Roland McGrath wrote: > It is true that debug registers are inherited by fork and clone. > I am 99% sure that this was never specifically intended, but it > has been this way for a long time (since 2.4 at least). It's an > implicit consequence of the do_fork implementation style, which > does a blind copy of the whole task_struct and then explicitly > reinitializes some individual fields. I suppose this has some > benefit or other, but it is very prone to new pieces of state > getting implicitly copied without the person adding that new state > ever consciously deciding what its inheritance semantics should be. > > Alan Stern is working on a revamp of the x86 debug register > support. This is a fine opportunity to clean this area up and > decide positively what the semantics ought to be. Absolutely. Right now I just have a placeholder function with a note about checking for CLONE_PTRACE. The cleanest solution, far and away, would be to have the child process inherit no breakpoints and no debug register values. Alan Stern
I looked again and there is simply no reason for the Radeon driver to
return -EINVAL for FB_BLANK_NORMAL. It claims it wants to do this in
order to convince fbcon to blank in software, right here:
if (fb_blank(info, blank))
fbcon_generic_blank(vc, info, blank);
to software blank the screen. But it only causes that to happen
in the FB_BLANK_NORMAL case.
That makes no sense because the Radeon code does this:
val |= CRTC_DISPLAY_DIS;
RSS Feed