From: Thomas Gleixner <tglx@linutronix.de>
To: Frederic Weisbecker <frederic@kernel.org>
Cc: syzbot <syzbot+3c2e3cc60665d71de2f7@syzkaller.appspotmail.com>,
anna-maria@linutronix.de, linux-kernel@vger.kernel.org,
peterz@infradead.org, syzkaller-bugs@googlegroups.com,
Eric Biederman <ebiederm@xmission.com>,
Oleg Nesterov <oleg@redhat.com>
Subject: Re: [PATCH] signal/posixtimers: Handle ignore/blocked sequences correctly
Date: Fri, 20 Dec 2024 15:59:54 +0100 [thread overview]
Message-ID: <87a5cq7639.ffs@tglx> (raw)
In-Reply-To: <Z2Vvw4_eGQAEo85P@pavilion.home>
On Fri, Dec 20 2024 at 14:23, Frederic Weisbecker wrote:
> Le Fri, Dec 20, 2024 at 02:14:07PM +0100, Thomas Gleixner a écrit :
>> On Fri, Dec 20 2024 at 14:06, Frederic Weisbecker wrote:
>> > Le Thu, Dec 19, 2024 at 08:46:25PM +0100, Thomas Gleixner a écrit :
>> >> if (!list_empty(&q->list)) {
>> >> /*
>> >> - * If task group is exiting with the signal already pending,
>> >> - * wait for __exit_signal() to do its job. Otherwise if
>> >> - * ignored, it's not supposed to be queued. Try to survive.
>> >> + * The signal was ignored and blocked. The timer
>> >> + * expiry queued it because blocked signals are
>> >> + * queued independent of the ignored state.
>> >> + *
>> >> + * The unblocking set SIGPENDING, but the signal
>> >> + * was not yet dequeued from the pending list,
>> >> + * which would have put it back on the ignore list.
>> >
>> > I must be missing something. I don't see dequeue_signal() checking if a signal
>> > is ignored upon delivery.
>>
>>
>> Sorry, I meant get_signal() which is what the actual signal delivery
>> path on exit to user space invokes. dequeue itself does not care.
>>
> Hmm, ok it eventually ignores the signal delivery to the user but:
>
> _ Dequeue signal has delivered it to posix timers
> _ The signal isn't moved back to the ignored list (or I'm missing something else?)
Hmm. Right it is not, but that's correct for blocked signals because
they can be also retrieved by sig[timed]wait().
For the case where the signal is ignored, the dequeue and posix timer
delivery is not harmful. If it gets rearmed, then the next timer expiry
will see ignored and move it to the ignored list.
Let me stare at it some more and rewrite the comments to match reality.
Thanks for pointing it out!
tglx
next prev parent reply other threads:[~2024-12-20 14:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-17 17:14 [syzbot] [kernel?] WARNING in posixtimer_send_sigqueue (2) syzbot
2024-12-19 19:46 ` [PATCH] signal/posixtimers: Handle ignore/blocked sequences correctly Thomas Gleixner
2024-12-20 13:06 ` Frederic Weisbecker
2024-12-20 13:14 ` Thomas Gleixner
2024-12-20 13:23 ` Frederic Weisbecker
2024-12-20 14:59 ` Thomas Gleixner [this message]
2025-01-14 17:28 ` [PATCH V2] " Thomas Gleixner
2025-01-15 0:49 ` Frederic Weisbecker
2025-01-15 17:19 ` [tip: timers/urgent] " tip-bot2 for Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a5cq7639.ffs@tglx \
--to=tglx@linutronix.de \
--cc=anna-maria@linutronix.de \
--cc=ebiederm@xmission.com \
--cc=frederic@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=syzbot+3c2e3cc60665d71de2f7@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox