Excerpts from Qian Cai's message of July 17, 2020 3:27 am: > On Fri, Jul 03, 2020 at 11:06:05AM +0530, Bharata B Rao wrote: >> Hypervisor may choose not to enable Guest Translation Shootdown Enable >> (GTSE) option for the guest. When GTSE isn't ON, the guest OS isn't >> permitted to use instructions like tblie and tlbsync directly, but is >> expected to make hypervisor calls to get the TLB flushed. >> >> This series enables the TLB flush routines in the radix code to >> off-load TLB flushing to hypervisor via the newly proposed hcall >> H_RPT_INVALIDATE. >> >> To easily check the availability of GTSE, it is made an MMU feature. >> The OV5 handling and H_REGISTER_PROC_TBL hcall are changed to >> handle GTSE as an optionally available feature and to not assume GTSE >> when radix support is available. >> >> The actual hcall implementation for KVM isn't included in this >> patchset and will be posted separately. >> >> Changes in v3 >> ============= >> - Fixed a bug in the hcall wrapper code where we were missing setting >> H_RPTI_TYPE_NESTED while retrying the failed flush request with >> a full flush for the nested case. >> - s/psize_to_h_rpti/psize_to_rpti_pgsize >> >> v2: https://lore.kernel.org/linuxppc-dev/20200626131000.5207-1-bharata@xxxxxxxxxxxxx/T/#t >> >> Bharata B Rao (2): >> powerpc/mm: Enable radix GTSE only if supported. >> powerpc/pseries: H_REGISTER_PROC_TBL should ask for GTSE only if >> enabled >> >> Nicholas Piggin (1): >> powerpc/mm/book3s64/radix: Off-load TLB invalidations to host when >> !GTSE > > Reverting the whole series fixed random memory corruptions during boot on > POWER9 PowerNV systems below. If I s/mmu_has_feature(MMU_FTR_GTSE)/(1)/g in radix_tlb.c, then the .o disasm is the same as reverting my patch. Feature bits not being set right? PowerNV should be pretty simple, seems to do the same as FTR_TYPE_RADIX. So... test being done before static keys are set up? Shouldn't be. Must be something obvious I just can't see it. Thanks, Nick