Re: [PATCH 1/1] mm/vmalloc: Combine all TLB flush operations of KASAN shadow virtual address into one operation

From: Uladzislau Rezki
Date: Mon Jul 29 2024 - 07:29:47 EST


On Sun, Jul 28, 2024 at 02:18:51PM -0700, Andrew Morton wrote:
> On Sat, 27 Jul 2024 00:52:46 +0800 Adrian Huang <adrianhuang0701@xxxxxxxxx> wrote:
>
> > From: Adrian Huang <ahuang12@xxxxxxxxxx>
> >
> > When compiling kernel source 'make -j $(nproc)' with the up-and-running
> > KASAN-enabled kernel on a 256-core machine, the following soft lockup
> > is shown:
> >
> > ...
> >
> > # CPU DURATION FUNCTION CALLS
> > # | | | | | | |
> > 76) $ 50412985 us | } /* __purge_vmap_area_lazy */
> >
> > ...
> >
> > # CPU DURATION FUNCTION CALLS
> > # | | | | | | |
> > 23) $ 1074942 us | } /* __purge_vmap_area_lazy */
> > 23) $ 1074950 us | } /* drain_vmap_area_work */
> >
> > The worst execution time of drain_vmap_area_work() is about 1 second.
>
> Cool, thanks.
>
> But that's still pretty dreadful and I bet there are other workloads
> which will trigger the lockup detector in this path?
>
> (And "avoiding lockup detector warnings" isn't the objective here - the
> detector is merely a tool for identifying issues)
>
As for 1 sec execution and worst case. I did some analysis with enabling
CONFIG_LOCK_STAT to see some waiting statistics across different locks:

See it here: https://lore.kernel.org/linux-mm/ZogS_04dP5LlRlXN@pc636/T/#m5d57f11d9f69aef5313f4efbe25415b3bae4c818

It would be really good if Adrian could run the "compiling workload" on
his big system and post the statistics here.

For example:
a) v6.11-rc1 + KASAN.
b) v6.11-rc1 + KASAN + patch.

Thanks!

--
Uladzislau Rezki