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

From: Huang Adrian
Date: Mon Jul 29 2024 - 07:12:40 EST


On Mon, Jul 29, 2024 at 5:18 AM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> 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?

Yes, this path can be reproduced by other workloads. The stress-ng
command `stress-ng --exec $(nproc) --timeout 5m` can also trigger the
lockup detector in this path. (Confirmed on v6.11-rc1)

-- Adrian