On Fri, Jun 25, 2021 at 4:22 PM Luck, Tony <[email protected]> wrote: > > - else > - rc = set_memory_uc(decoy_addr, 1); > + else { > + /* > + * Bypass memtype checks since memory-failure has shot > + * down mappings. > + */ > + rc = _set_memory_uc(decoy_addr, 1); > + } > > Does pmem "fix" poison addresses yet? If it does (or will) does it matter that > you skip the memtype_reserve() call?
It does fix them via clear_mce_nospec(), but that also looks like it should be using the _set_memory_wb() version to bypass the memory type reservation twiddling. That said, I don't understand why set_memory_wb(), non "_" version, thinks it can unconditionally delete any memtype reservation that might exist for that pfn? The set_memory_* apis seem disjoint (wrt memtype) for a reason that eludes me.
