Re: [PATCH 2/3] mm/madvise: Add MF_ACTION_REQUIRED to madvise(MADV_HWPOISON)

Miaohe Lin
2024-05-08T07:58:12Z

On 2024/5/7 3:54, Jane Chu wrote:
> On 5/5/2024 12:02 AM, Miaohe Lin wrote:
>
>> On 2024/5/2 7:24, Jane Chu wrote:
>>> The soft hwpoison injector via madvise(MADV_HWPOISON) operates in
>>> a synchrous way in a sense, the injector is also a process under
>>> test, and should it have the poisoned page mapped in its address
>>> space, it should legitimately get killed as much as in a real UE
>>> situation.
>> Will it be better to add a method to set MF_ACTION_REQUIRED explicitly when inject soft hwpoison?
>> Thanks.
>
> So the first question is: Is there a need to preserve the existing behavior of  madvise(MADV_HWPOISON)?
>
> The madvise(2) man page says -
>
>        *MADV_HWPOISON *(since Linux 2.6.32)
>               Poison the pages in the range specified by/addr/  and/length/
>               and handle subsequent references to those pages like a
>               hardware memory corruption.  This operation is available
>               only for privileged (*CAP_SYS_ADMIN*) processes.  This
>               operation may result in the calling process receiving a
>               *SIGBUS *and the page being unmapped.
>
>               This feature is intended for testing of memory error-
>               handling code; it is available only if the kernel was
>               configured with*CONFIG_MEMORY_FAILURE*.
>
> And the impression from my reading is that: there doesn't seem to be a need.
>
> A couple observations -
> - The man page states that the calling process may receive a SIGBUS and the page being unmapped.
> But the existing behavior is no SIGBUS unless MCE early kill is elected, so it doesn't quite match
> the man page.
> - There is 'hwpoison-inject' which behaves similar to the existing madvise(MADV_HWPOISON), that is,
> soft inject without MF_ACTION_REQUIRED flag.
>

I tend to agree with you. It might be a good idea to add MF_ACTION_REQUIRED to madvise(MADV_HWPOISON).
Thanks.
.