From: ebiederm@xmission.com (Eric W. Biederman)
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Juri Lelli <juri.lelli@redhat.com>,
Vincent Guittot <vincent.guittot@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Oleg Nesterov <oleg@redhat.com>,
Matt Fleming <matt@codeblueprint.co.uk>
Subject: Re: [PATCH] signal: Allow RT tasks to cache one sigqueue struct
Date: Thu, 04 Mar 2021 13:01:04 -0600 [thread overview]
Message-ID: <m1czwe7ngv.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <20210304081142.digtkddajkadwwq5@linutronix.de> (Sebastian Andrzej Siewior's message of "Thu, 4 Mar 2021 09:11:42 +0100")
Sebastian Andrzej Siewior <bigeasy@linutronix.de> writes:
> On 2021-03-03 16:09:05 [-0600], Eric W. Biederman wrote:
>> Sebastian Andrzej Siewior <bigeasy@linutronix.de> writes:
>>
>> > From: Thomas Gleixner <tglx@linutronix.de>
>> >
>> > Allow realtime tasks to cache one sigqueue in task struct. This avoids an
>> > allocation which can increase the latency or fail.
>> > Ideally the sigqueue is cached after first successful delivery and will be
>> > available for next signal delivery. This works under the assumption that the RT
>> > task has never an unprocessed signal while a one is about to be queued.
>> >
>> > The caching is not used for SIGQUEUE_PREALLOC because this kind of sigqueue is
>> > handled differently (and not used for regular signal delivery).
>>
>> What part of this is about real time tasks? This allows any task
>> to cache a sigqueue entry.
>
> It is limited to realtime tasks (SCHED_FIFO/RR/DL):
>
> +static void __sigqueue_cache_or_free(struct sigqueue *q)
> +{
> …
> + if (!task_is_realtime(current) || !sigqueue_add_cache(current, q))
> + kmem_cache_free(sigqueue_cachep, q);
> +}
I see now. I was looking for it somewhere in the allocation side.
Oleg's suggestion of simply adding a few additional lines to
__sigqueue_free would have made this stand out more.
A __sigqueue_free that takes the relevant task_struct instead of always
assuming current would be nice here.
>> Either the patch is buggy or the description is. Overall caching one
>> sigqueue entry doesn't look insane. But it would help to have a clear
>> description of what is going on.
>
> Does this clear things up or is my logic somehow broken here?
No I just missed the task_is_realtime limitation.
Eric
next prev parent reply other threads:[~2021-03-04 19:02 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-03 14:20 [PATCH] signal: Allow RT tasks to cache one sigqueue struct Sebastian Andrzej Siewior
2021-03-03 15:37 ` Oleg Nesterov
2021-03-04 21:10 ` Thomas Gleixner
2021-03-05 10:57 ` Oleg Nesterov
2021-03-04 21:14 ` Thomas Gleixner
2021-03-03 22:09 ` Eric W. Biederman
2021-03-04 8:11 ` Sebastian Andrzej Siewior
2021-03-04 15:02 ` Thomas Gleixner
2021-03-04 19:04 ` Eric W. Biederman
2021-03-04 20:58 ` Thomas Gleixner
2021-03-10 18:54 ` Thomas Gleixner
2021-03-10 21:57 ` Eric W. Biederman
2021-03-10 23:56 ` Thomas Gleixner
2021-03-11 12:45 ` Thomas Gleixner
2021-03-11 14:20 ` Thomas Gleixner
2021-03-11 16:32 ` Eric W. Biederman
2021-03-04 19:01 ` Eric W. Biederman [this message]
[not found] <draft-874khk5yed.fsf@nanos.tec.linutronix.de>
2021-03-10 8:57 ` 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=m1czwe7ngv.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=bigeasy@linutronix.de \
--cc=bristot@redhat.com \
--cc=bsegall@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=juri.lelli@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matt@codeblueprint.co.uk \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=vincent.guittot@linaro.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.