Messages in this thread | | | Date | Fri, 26 Sep 2014 14:33:09 +1000 | From | Anton Blanchard <> | Subject | Re: [PATCH 10/15] powerpc/mm: Add hooks for cxl |
| |
> From: Ian Munsie <imunsie@au1.ibm.com> > > 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 <imunsie@au1.ibm.com> > Signed-off-by: Michael Neuling <mikey@neuling.org>
> + 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
| |