KSE signals broken by 1:1 commit.

Julian Elischer julian at elischer.org
Sun Apr 6 20:22:29 PDT 2003


I'm going to apply to core since jeff is absent, to have permission for
us to fix it and possibly break 1:1 (*).  I specifically asked him to
ensure
that this didn't happen if he committed his changes and told him it
looked as if it would.

(*) I don't WANT to break 1:1 but we can't test it at the moment as it
core-dumps so we have no way to see if we are breaking it :-(

On Mon, 7 Apr 2003, David Xu wrote:

> 
> ----- Original Message ----- 
> From: "Daniel Eischen" <eischen at pcnet1.pcnet.com>
> To: "David Xu" <davidxu at freebsd.org>
> Cc: <freebsd-threads at freebsd.org>
> Sent: Sunday, April 06, 2003 11:05 PM
> Subject: Re: PS_BLOCKED
> 
> 
> > On Sun, 6 Apr 2003, Daniel Eischen wrote:
> > 
> > > On Sun, 6 Apr 2003, David Xu wrote:
> > > > 
> > > > ----- Original Message ----- 
> > > > From: "Daniel Eischen" <eischen at pcnet1.pcnet.com>
> > > > To: "DavidXu" <davidxu at freebsd.org>
> > > > Cc: <freebsd-threads at freebsd.org>
> > > > Sent: Sunday, April 06, 2003 2:40 PM
> > > > Subject: Re: PS_BLOCKED
> > > >
> > > > > I've still got one bug I am trying to hunt down with
> > > > > signals -- the sigwait test fails.  Process (kill) signals
> > > > > don't seem to wakeup threads in sigwait().  I'm not sure
> > > > > if it is a kernel bug or not, but I suspect it's
> > > > > something I'm doing.
> > > > > 
> > > > 
> > > > I don't know if Jeff's signal change in kernel affects your code,
> > > > but signals lost problem is still not fixed, a thread exports its
> > > > context and exits would lost signals dispatched to it, even the
> > > > signals is not for the thread, but for process.
> > > 
> > > I'll do some more debugging today and see if it is in the
> > > UTS or the kernel.
> > 
> > I think there is a problem in the kernel; probably Jeff's changes
> > that broke it.
> > 
> > When the UTS gets a signal (in k_mbx.km_sigscaught), the signal
> > mask in the kernel is never cleared.  The UTS only ever gets
> > one signal.  If I use __sys_sigprocmask() to clear the kernel
> > signal mask after the UTS receives the signal(s), then everything
> > works and the sigwait test passes.
> > 
> > I'm not sure what we should do.  The UTS is currently installing
> > signal handlers with all signals masked (act.sa_mask).  We could
> > clear this mask and perhaps solve the problem that way.  But when
> > there are multiple (kernel) threads each with its own mask and
> > Jeff's recent changes, there are other problems I think.
> > 
> 
> See my previous mail, I said current KSE signal code was totally broken
> by jeff's signal change. 
> 
> > -- 
> > Dan Eischen
> 
> 
> _______________________________________________
> freebsd-threads at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-threads
> To unsubscribe, send any mail to "freebsd-threads-unsubscribe at freebsd.org"
> 



More information about the freebsd-threads mailing list