Re: [RFC 1/1] mm: Add per-task struct tlb counters

From: Joe Damato
Date: Wed Sep 14 2022 - 10:26:32 EST


On Wed, Sep 14, 2022 at 07:15:07AM -0700, Joe Damato wrote:
> On Wed, Sep 14, 2022 at 12:40:55AM -0700, Dave Hansen wrote:
> > On 9/13/22 18:51, Joe Damato wrote:
> > > TLB shootdowns are tracked globally, but on a busy system it can be
> > > difficult to disambiguate the source of TLB shootdowns.
> > >
> > > Add two counter fields:
> > > - nrtlbflush: number of tlb flush events received
> > > - ngtlbflush: number of tlb flush events generated
> > >
> > > Expose those fields in /proc/[pid]/stat so that they can be analyzed
> > > alongside similar metrics (e.g. min_flt and maj_flt).
> >
> > On x86 at least, we already have two other ways to count flushes. You
> > even quoted them with your patch:
> >
> > > count_vm_tlb_event(NR_TLB_REMOTE_FLUSH);
> > > + current->ngtlbflush++;
> > > if (info->end == TLB_FLUSH_ALL)
> > > trace_tlb_flush(TLB_REMOTE_SEND_IPI, TLB_FLUSH_ALL);
> >
> > Granted, the count_vm_tlb...() one is debugging only. But, did you try
> > to use those other mechanisms? For instance, could you patch
> > count_vm_tlb_event()?
>
> I tried to address this in my cover letter[1]...

Err, I forgot the [1]:
https://lore.kernel.org/linux-mm/1663120270-2673-1-git-send-email-jdamato@xxxxxxxxxx/