Re: [PATCH] RISC-V: Issue a local tlb flush if possible.

From: Atish Patra
Date: Mon Aug 19 2019 - 20:02:40 EST


On Mon, 2019-08-19 at 08:10 -0700, hch@xxxxxxxxxxxxx wrote:
> On Mon, Aug 19, 2019 at 08:39:02PM +0530, Anup Patel wrote:
> > If we were using ASID then yes we don't need to flush anything
> > but currently we don't use ASID due to lack of HW support and
> > HW can certainly do speculatively page table walks so flushing
> > local TLB when MM mask is empty might help.
> >
> > This just my theory and we need to stress test more.
>
> Well, when we context switch away from a mm we always flush the
> local tlb. So either the mm_struct has never been scheduled in,

Looking at the stack dump, it looks like this is the case. cpumask is
empty possibly after a fork/exec situation where forked child is being
replaced with actual program that is about to run.

I also looked at x86 & powerpc implementation which doesn't seem to do
anything special if cpumask is empty.

I will send a v2 with no tlb flushing if cpumask is empty.

> or we alrady did a local_tlb_flush and we context switched it up.


Regards,
Atish