RE: [RFC PATCH] New SA_NOPRNOTIF sigaction flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Daniel Jacobowitz [mailto:[email protected]] 
> Sent: Tuesday, September 27, 2005 2:39 PM
> To: Davda, Bhavesh P (Bhavesh)
> Cc: [email protected]
> Subject: Re: [RFC PATCH] New SA_NOPRNOTIF sigaction flag
> 
> On Tue, Sep 27, 2005 at 10:24:23AM -0600, Davda, Bhavesh P 
> (Bhavesh) wrote:
> > About the priority inversion and running the debugger at 
> higher priority
> > then the debuggee, that's a moot point. You're still doing too many
> > pointless context switches to the debugger only to do 
> nothing and switch
> > back to the debuggee.
> 
> Depending on your debugger, they may not be pointless.


Sorry for reiterating this, but in certain cases, yes, the context
switch to the debugger just to have it ignore the SIGCHLD for that
signal is pointless.


> > Besides, putting this responsibility (ignore SIGCHLDs for 
> signal X from
> > Task Y) in the debugger requires the debugger to have 
> information about
> > the debuggee, like Task Y is special for handling signal X, and I'm
> > going to ptrace() ignore SIGCHLD's from Task Y.
> > 
> > See where I'm going with this?
> 
> Hint: your debugger already needs to know this.  GDB already does.  It
> has a list of signals not to bother stopping or displaying to 
> the user.
> SIGCHLD is on it by default.  If not, you'd see the debugger prompt
> after each one of these context switches.
> 

That is under user control of the person using the debugger. What I was
talking about is control in the debuggee process/developer to say that I
would like to spare the unnecessary overhead of notifying the debugger
that a specific signal is being delivered to me. 

By the time GDB decides to ignore the SIGCHLD, you've already incurred
the overhead of notifying GDB and context switching into it. Then GDB,
in userspace, has to waitpid(), look at WIFSTOPPED(status),
WSTOPSIG(status) and then decide to do nothing and ptrace(PTRACE_CONT)
if the signal was one of the ignored signals. Lots of unnecessary
overhead in this case.

It is obvious to me that you and I are going to continue disagreeing
about this and arguing endlessly about this capability, so I would like
to in all modesty solicit other folks opinion about this capability
too...

Thanks

- Bhavesh

Bhavesh P. Davda | Distinguished Member of Technical Staff | Avaya |
1300 West 120th Avenue | B3-B03 | Westminster, CO 80234 | U.S.A. |
Voice/Fax: 303.538.4438 | [email protected]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux