Thread (6 messages) flat view 6 messages, 4 authors, 2021-03-11

Re: [PATCH v3] x86/fault: Send a SIGBUS to user process always for hwpoison page access.

From: Andy Lutomirski <luto@amacapital.net>
Date: 2021-03-08 19:01:09
Also in: linux-mm, lkml

On Mar 8, 2021, at 10:31 AM, Luck, Tony [off-list ref] wrote:


quoted
Can you point me at that SIGBUS code in a current kernel?
It is in kill_me_maybe().  mce_vaddr is setup when we disassemble whatever get_user()
or copy from user variant was in use in the kernel when the poison memory was consumed.

       if (p->mce_vaddr != (void __user *)-1l) {
               force_sig_mceerr(BUS_MCEERR_AR, p->mce_vaddr, PAGE_SHIFT);
Hmm. On the one hand, no one has complained yet. On the other hand, hardware that supports this isn’t exactly common.

We may need some actual ABI design here. We also need to make sure that things like io_uring accesses or, more generally, anything using the use_mm / use_temporary_mm ends up either sending no signal or sending a signal to the right target.
Would it be any better if we used the BUS_MCEERR_AO code that goes into siginfo?
Dunno.
That would make it match up better with what happens when poison is found
asynchronously by the patrol scrubber. I.e. the semantics are:

AR: You just touched poison at this address and need to do something about that.
AO: Just letting you know that you have some poison at the address in siginfo.

-Tony
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help