On Tue, Jul 06, 2021 at 06:01:05PM -0700, Dan Williams wrote:
> When poison is discovered and triggers memory_failure() the physical
> page is unmapped from all process address space. However, it is not
> unmapped from kernel address space. Unlike a typical memory page that
> can be retired from use in the page allocator and marked 'not present',
> pmem needs to remain accessible given it can not be physically remapped
> or retired.
I'm surely missing something obvious but why does it need to remain
accessible? Spell it out please.
> set_memory_uc() tries to maintain consistent nominal memtype
> mappings for a given pfn, but memory_failure() is an exceptional
> condition.
That's not clear to me too. So looking at the failure:
[10683.426147] x86/PAT: fsdax_poison_v1:5018 conflicting memory types
1850600000-1850601000 uncached-minus<->write-back
set_memory_uc() marked it UC- but something? wants it to be WB. Why?
I guess I need some more info on the whole memory offlining for pmem and
why that should be done differently than with normal memory.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette