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

From: Aili Yao
Date: Mon Mar 08 2021 - 21:26:10 EST


On Tue, 9 Mar 2021 10:14:52 +0800
Aili Yao <yaoaili@xxxxxxxxxxxx> wrote:

> On Mon, 8 Mar 2021 18:31:07 +0000
> "Luck, Tony" <tony.luck@xxxxxxxxx> 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);
> >
> > Would it be any better if we used the BUS_MCEERR_AO code that goes into siginfo?
> >
> > 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
>
> Is the kill action for this scenario in memory_failure()?

Does the current logic kill the process twice for this scenario ?
I am confused.

--
Thanks!
Aili Yao