Re: [PATCH 10/15] powerpc/mm: Add hooks for cxl
From: Anton Blanchard <hidden>
Date: 2014-09-26 04:33:12
Also in:
lkml
From: Ian Munsie <redacted> This add a hook into tlbie() so that we use global invalidations when there are cxl contexts active. Normally cxl snoops broadcast tlbie. cxl can have TLB entries invalidated via MMIO, but we aren't doing that yet. So for now we are just disabling local tlbies when cxl contexts are active. In future we can make tlbie() local mode smarter so that it invalidates cxl contexts explicitly when it needs to. This also adds a hooks for when SLBs are invalidated to ensure any corresponding SLBs in cxl are also invalidated at the same time. Signed-off-by: Ian Munsie <redacted> Signed-off-by: Michael Neuling <redacted>
+ use_local = local && mmu_has_feature(MMU_FTR_TLBIEL) && !cxl_ctx_in_use();
Seems reasonable until we can get the MMIO based optimisation in. Will all CAPI cached translations be invalidated before we finish using a CAPI context? And conversely, could CAPI cache any translations when a context isn't active? I'm mostly concerned that we can't have a situation where badly behaving userspace could result in a stale translation.
spu_flush_all_slbs(mm); #endif + cxl_slbia(mm);
spu_flush_all_slbs(mm); #endif + cxl_slbia(mm);
spu_flush_all_slbs(mm); #endif + cxl_slbia(mm);
spu_flush_all_slbs(mm); #endif + cxl_slbia(mm);
Should we combine the SPU vs CXL callouts into something common - perhaps copro_flush_all_slbs()? Anton