Messages in this thread | | | Date | Wed, 24 Nov 1999 00:11:31 +0000 (PDT) | From | Don Howard <> | Subject | Re: RT signal queues |
| |
On Tue, 23 Nov 1999, Dan Kegel wrote:
> Don Howard <dhoward@pobox.com> wrote: > > Is there a way to flush the system rt signal queue? > > Don't know what you mean by 'system',
In linux/kernel/signal.c you will find definitions of
signal_queue_cachep; /* The 'system' rt signal queue - I think. */
nr_queued_signals; /* The current rt signal queue depth. aka: /proc/sys/kernel/rtsig-nr */
max_queued_signals; /* The max rt signal queue depth. aka: /proc/sys/kernel/rtsig-max */
While attempting to debug my process, I've found myself filling the rt signal queue (nr_queued_signal==max_queued_signals).
I would expect this problem to correct itself when the offending process terminates (I got the impression that flush_signals() was called at process exit time). This evidently does not happen or more likely, it doesn't happen if the process crashes.
> but if you momentarily set the signal handler to SIG_IGN, that should > flush the queue. See http://x36.deja.com/getdoc.xp?AN=526480649 > > This is mentioned in my c10k page - maybe you missed it, > or I'm misunderstanding your question. > - Dan
It looks like do_sigaction() does the same traversal of the rt queue that flush_signals() does, so you are right. This doesn't help me in the case of a process that crashes with signals pending though.
> > Don Howard <dhoward@pobox.com> wrote: > > > See http://www.kegel.com/c10k.html#sigio for a few notes. > > > > This is an excellent reference (I read it several times before > > starting this project). Thanks for putting it up. > >
-- -Don dhoward@pobox.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |