> On Mar 8, 2021, at 10:31 AM, Luck, Tony <tony.l...@intel.com> wrote:
> 
> 
>> 
>> 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

Reply via email to