Re: [PATCH v4 0/5] arm64: vdso: Implement __vdso_futex_robust_try_unlock()
André Almeida <[email protected]>
| Newsgroups | org.kernel.vger.linux-arch,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
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 >