> From: Ian Munsie <imun...@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 <imun...@au1.ibm.com> > Signed-off-by: Michael Neuling <mi...@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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev