Re: [PATCH v4 0/5] arm64: vdso: Implement __vdso_futex_robust_try_unlock()
From: André Almeida
Date: Mon Jul 06 2026 - 16:12:20 EST
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