[PATCH v4 0/5] arm64: vdso: Implement __vdso_futex_robust_try_unlock()
André Almeida
andrealmeid at igalia.com
Mon Jul 6 12:02:17 PDT 2026
Thomas!
Em 05/07/2026 17:23, Thomas Gleixner escreveu:
> On Sun, Jul 05 2026 at 14:56, André Almeida wrote:
>> As explained in the Testing section above, we developed a test that puts
>> breakpoints in the code to test if a user code being interrupted really clears
>> the op_pending pointer. This test wasn't initially working because of this check
>> at futex_fixup_robust_unlock():
>>
>> /*
>> * Avoid dereferencing current->mm if not returning from interrupt.
>> * current->rseq.event is going to be used subsequently, so bringing the
>> * cache line in is not a big deal.
>> */
>> if (!current->rseq.event.user_irq)
>> return;
>>
>> rseq.event.user_irq was always false during my tests, and it prevents the fixup
>> to happen. I figured out that arm64_syscall_enter_from_user_mode() was the
>> issue because it doesn't set user_irq to true when the task comes from a
>> syscall.
>
> I have no idea what you are babbling about.
>
> A syscall enter never sets user_irq to true. It's only set to true when
> an interrupt/exception entry comes from user space, i.e. via
>
> irqentry_enter_from_user_mode()
> rseq_note_user_irq_entry()
>
Sorry for the babbling, you are right. I got confused by analyzing the
kernel stack trace after running the tests and wrongly thought that I
spotted something missing. Please ignore patch 1/5.
> No?
>
> Thanks,
>
> tglx
>
More information about the linux-arm-kernel
mailing list