From: Oleg Nesterov <oleg@redhat.com>
To: Sebastian Sewior <bigeasy@linutronix.de>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
Peter Ziljstra <peterz@infradead.org>,
Andrii Nakryiko <andrii@kernel.org>, bpf <bpf@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Jiri Olsa <jolsa@kernel.org>,
Masami Hiramatsu <mhiramat@kernel.org>
Subject: Re: uprobe splat in PREEMP_RT
Date: Wed, 2 Apr 2025 15:56:42 +0200 [thread overview]
Message-ID: <20250402135641.GJ22091@redhat.com> (raw)
In-Reply-To: <20250402121624.lRIPMa_h@linutronix.de>
On 04/02, Sebastian Sewior wrote:
>
> On 2025-04-02 14:12:28 [+0200], Oleg Nesterov wrote:
> > On 04/02, Sebastian Sewior wrote:
> > >
> > > On 2025-04-02 13:31:43 [+0200], Oleg Nesterov wrote:
> > > >
> > > > IOW.
> > > >
> > > > I understand that seqcount_t is not RT-friendly, but why exactly do
> > > > you think the patch above can make the things worse?
> > >
> > > We wouldn't notice such a case.
> >
> > Sebastian, could you spell please?
> >
> > What case we wouldn't notice?
>
> I'm sorry. It wouldn't notice that preemption isn't disabled and yell.
>
> > With this patch write_seqcount_begin(seqcount_t) will notice that
> > seqprop_preemptible() is true and do preempt_disable() itself.
>
> Yes, but that we don't want. This would disable preemption for the whole
> section and not allow anything on PREEMPT_RT what would be possible
> otherwise. Like acquire a spinlock_t or so.
Still can't understand...
Currently __seqprop_assert() does lockdep_assert_preemption_disabled().
This means that at least with PREEMPT_RT=y preemption must be disabled
even before write_seqcount_begin(seqcount_t).
That is why (I guess) for example i_size_write() does
preempt_disable() before write_seqcount_begin(&inode->i_size_seqcount).
> Yes, none of this would affect hprobe_expire().
Yes.
Oleg.
next prev parent reply other threads:[~2025-04-02 13:57 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-01 21:04 uprobe splat in PREEMP_RT Alexei Starovoitov
2025-04-01 21:22 ` Steven Rostedt
2025-04-01 22:01 ` Andrii Nakryiko
2025-04-02 10:33 ` Oleg Nesterov
2025-04-02 10:57 ` Sebastian Sewior
2025-04-02 11:23 ` Oleg Nesterov
2025-04-02 12:13 ` Sebastian Sewior
2025-04-02 12:18 ` Oleg Nesterov
2025-04-02 12:24 ` Sebastian Sewior
2025-04-02 14:12 ` Oleg Nesterov
2025-04-03 7:37 ` Sebastian Sewior
2025-04-03 12:27 ` Oleg Nesterov
2025-04-03 16:04 ` Andrii Nakryiko
2025-04-02 16:15 ` Andrii Nakryiko
2025-04-02 16:57 ` Oleg Nesterov
2025-04-02 12:21 ` Sebastian Sewior
2025-04-02 9:10 ` Oleg Nesterov
2025-04-02 10:54 ` Sebastian Sewior
2025-04-02 11:20 ` Oleg Nesterov
2025-04-02 11:31 ` Oleg Nesterov
2025-04-02 12:06 ` Sebastian Sewior
2025-04-02 12:12 ` Oleg Nesterov
2025-04-02 12:16 ` Sebastian Sewior
2025-04-02 13:56 ` Oleg Nesterov [this message]
2025-04-02 14:23 ` Oleg Nesterov
2025-04-03 9:08 ` Sebastian Sewior
2025-04-03 12:11 ` Oleg Nesterov
2025-04-03 12:43 ` Oleg Nesterov
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=20250402135641.GJ22091@redhat.com \
--to=oleg@redhat.com \
--cc=alexei.starovoitov@gmail.com \
--cc=andrii@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=bpf@vger.kernel.org \
--cc=jolsa@kernel.org \
--cc=mhiramat@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.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.