[CRIU] [PATCH 2/3] signalfd: add ability to return siginfo in a raw format (v2)

Andrew Vagin avagin at parallels.com
Mon Jan 21 10:44:44 EST 2013


On Sun, Jan 20, 2013 at 09:33:41PM +0100, Michael Kerrisk (man-pages) wrote:
> Hi Oleg,
> 
> On Sun, Jan 20, 2013 at 8:55 PM, Oleg Nesterov <oleg at redhat.com> wrote:
> > On 01/20, Andrew Vagin wrote:
> >>
> >> > SFD_RAW
> >> > SFD_SHARED_QUEUE -- reads will be from process-wide shared signal queue
> >> > SFD_PER_THREAD_QUEUE --reads will be from per-thread signal queue
> >>
> >> I suggested this variant in the initial series, but then we decided to
> >> avoid adding new flags.
> >
> > Yes, because SFD_SHARED/PRIVATE will add even more complications into this
> > code. And outside of signalfd.c too. And nobody except c/r will ever use
> > these features I guess.
> 
> So, I must admit that I don't understand why adding SFD_SHARED and
> SFD_PER_THREAD in signalfd() makes things more complicated than adding
> the equivalents in pread(). But, I'll take your word for that, if
> that's what you meant.

You could look at the initial series.
http://thread.gmane.org/gmane.linux.file-systems/70327

In this case dequeue_signal should be changed for specifying a queue.
signalfd_poll() should be fixed too. All this changes are not a big
deal, but...

If we want to have two flags for specifying queues, we will need one
more flag SFD_PEEK, which will say, that signals should not be dequeued.
Currently we get this information from offset too. If offset isn't zero,
signals are not dequeued. With flags this sentence will look ugly.

> 
> However, note that I did suggest that in the initial implementation
> you might require that if SFD_SHARED_QUEUE or SFD_PER_THREAD_QUEUE is
> specified in signalfd(), then SFD_RAW could be required as well.
> Later, if someone wants to do the work, they could relax the
> constraint, so as to allow signalfd() to be used to do per-queue
> select even when reading siginfo (i.e., SFD_SHARED_QUEUE or
> SFD_PER_THREAD_QUEUE specified but not SFD_RAW). Surely that is not
> more complicated than the current implementation. And it allows for an
> orthogonal expansion of the design that seems more natural and may one
> day be useful.
> 
> Cheers,
> 
> Michael


More information about the CRIU mailing list