Date: Sun, 6 Apr 2003 11:05:25 -0400 (EDT) From: Daniel Eischen <eischen@pcnet1.pcnet.com> To: David Xu <davidxu@freebsd.org> Cc: freebsd-threads@freebsd.org Subject: Re: PS_BLOCKED Message-ID: <Pine.GSO.4.10.10304061053460.17820-100000@pcnet1.pcnet.com> In-Reply-To: <Pine.GSO.4.10.10304060821060.1170-100000@pcnet1.pcnet.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 6 Apr 2003, Daniel Eischen wrote: > On Sun, 6 Apr 2003, David Xu wrote: > > > > ----- Original Message ----- > > From: "Daniel Eischen" <eischen@pcnet1.pcnet.com> > > To: "DavidXu" <davidxu@freebsd.org> > > Cc: <freebsd-threads@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. -- Dan Eischen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10304061053460.17820-100000>