Re: uprobe splat in PREEMP_RT

Oleg Nesterov
2025-04-02T14:13:31Z

On 04/02, Sebastian Sewior wrote:
>
> On 2025-04-02 14:18:51 [+0200], Oleg Nesterov wrote:
> > On 04/02, Sebastian Sewior wrote:
>
> I need to tell mutt to replace my name in case it is misspelled.

Hmm... have I misspelled your name somewhere?

If yes - my apologies.

> > > The preempted ri_timer() could stall a read_seqcount_begin().
> >
> > Again, nobody use read_seqcount_begin(utask->ri_seqcount).
> >
> > free_ret_instance() uses raw_seqcount_try_begin(utask->ri_seqcount),
> > which, since ri_seqcount is seqcount_t, is just smp_load_acquire().
> > This can't stall.
>
> Yes. This would work for here just to skip the check because of all
> details that are hard to express. Therefore I suggested to use
> raw_write_seqcount_begin() instead of write_seqcount_begin() in
> 20250402122158.j_8VoHQ-@linutronix.de. Would that work?

If this can work, then let me repeat: why can't we turn ->ri_seqcount
into a boolean?

That was my question. I don't understand the purpose of
"seqcount_t ri_seqcount" regardless of the reported problem.
This "WARNING: CPU: 0 PID: 16 at include/linux/seqlock.h:221" is another
issue.

Again, I must have missed something.

Oleg.