[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1594950229.jn9ipe6td1.astroid@bobo.none>
Date: Fri, 17 Jul 2020 12:08:56 +1000
From: Nicholas Piggin <npiggin@...il.com>
To: Bharata B Rao <bharata@...ux.ibm.com>, Qian Cai <cai@....pw>
Cc: aneesh.kumar@...ux.ibm.com, linux-kernel@...r.kernel.org,
linux-next@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
mpe@...erman.id.au, sfr@...b.auug.org.au
Subject: Re: [PATCH v3 0/3] Off-load TLB invalidations to host for !GTSE
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@linux.ibm.com/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
Powered by blists - more mailing lists