[RFC 1/2] powerpc/mm: Add marker for contexts requiring global TLB invalidations
Michael Ellerman
mpe at ellerman.id.au
Thu May 4 19:24:06 AEST 2017
Balbir Singh <bsingharora at gmail.com> writes:
> On Wed, 2017-05-03 at 16:29 +0200, Frederic Barrat wrote:
>> Introduce a new 'flags' attribute per context and define its first bit
>> to be a marker requiring all TLBIs for that context to be broadcasted
>> globally. Once that marker is set on a context, it cannot be removed.
>>
>> Such a marker is useful for memory contexts used by devices behind the
>> NPU and CAPP/PSL. The NPU and the PSL keep their own
>> translation cache so they need to see all the TLBIs for those
>> contexts.
>>
>> Signed-off-by: Frederic Barrat <fbarrat at linux.vnet.ibm.com>
>> ---
>> arch/powerpc/include/asm/book3s/64/mmu.h | 9 +++++++++
>> arch/powerpc/include/asm/tlb.h | 10 ++++++++--
>> arch/powerpc/mm/mmu_context_book3s64.c | 1 +
>> 3 files changed, 18 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h b/arch/powerpc/include/asm/book3s/64/mmu.h
>> index 77529a3e3811..7b640ab1cbeb 100644
>> --- a/arch/powerpc/include/asm/book3s/64/mmu.h
>> +++ b/arch/powerpc/include/asm/book3s/64/mmu.h
>> @@ -78,8 +78,12 @@ struct spinlock;
>> /* Maximum possible number of NPUs in a system. */
>> #define NV_MAX_NPUS 8
>>
>> +/* Bits definition for the context flags */
>> +#define MM_CONTEXT_GLOBAL_TLBI 1 /* TLBI must be global */
>> +
>> typedef struct {
>> mm_context_id_t id;
>> + unsigned long flags;
>
> Should these flags be under #ifdef PPC_BOOK3S_64 as well? Not sure.
They shouldn't need to be, the whole file is Book3s 64 only.
cheers
More information about the Linuxppc-dev
mailing list