Hi Michal, Thank you for your reply, my comments below: > You are now disabling a potentially useful feature to SPARSEMEM users > without having any evidence that they do suffer from the issue which is > kinda sad. Especially when the only known offender is a UP pcp allocator > implementation. True, but what is the use case for having SPARSEMEM without virtual mapping and deferred struct page init together. Is it a common case to have multiple gigabyte of memory and currently NUMA config to benefit from deferred page init and yet not having a memory for virtual mapping of struct pages? Or am I missing some common case here? > I will not insist of course but it seems like your fix doesn't really > prevent virt_to_page or other direct page access either. I am not sure what do you mean, I do not prevent virt_to_page, but that is OK for SPARSEMEM_VMEMMAP case, because we do not need to access "struct page" for this operation, as translation is in page table. Yes, we do not prohibit other struct page accesses before mm_init(), but we now have a feature that checks for uninitialized struct page access, and if those will happen, we will learn about them. Thank you, Pavel