> 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/