Re: [PATCH 0/3] get_abi: improve message output and fix a regression

From: Greg Kroah-Hartman
Date: Tue Sep 28 2021 - 13:19:26 EST


On Tue, Sep 28, 2021 at 03:43:53PM +0200, Mauro Carvalho Chehab wrote:
> Em Tue, 28 Sep 2021 14:27:39 +0200
> Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> escreveu:
>
> > Em Tue, 28 Sep 2021 13:04:22 +0200
> > Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> escreveu:
> >
> > > On Tue, Sep 28, 2021 at 12:14:01PM +0200, Mauro Carvalho Chehab wrote:
> > > > Hi Greg,
> > > >
> > > > As promised on
> > > >
> > > > https://lore.kernel.org/lkml/20210928120304.62319fba@xxxxxxxx/T/#u
> > > >
> > > > I'm adding progress info when get_abi.pl is checking for undefined ABI symbols
> > > > on patches 1 and 2.
> > > >
> > > > That will help not only to identify what is causing delays on the script, but also
> > > > to notify the user that processing it could take some time on some systems.
> > > >
> > > > If you run it on your big server with:
> > > >
> > > > scripts/get_abi.pl undefined 2>logs
> > > >
> > > > The "logs" file will contain timestamps relative to the time the script started to
> > > > do the regex matches for sysfs files. It should be printing one line every
> > > > time the progress completes 1% or one second after the last progress output.
> > >
> > > Adding more debugging and tweaking the script a bit to show the file it
> > > is about to check, not the one it finished checking,
> >
> > Feel free to modify the script and add such debug/tweaks if you find
> > it useful.
> >
> > > I got the following
> > > debug output that seems to pinpoint the problem file.
> > >
> > > The sysfs file that is causing problems is:
> > > /sys/devices/pci0000:40/0000:40:00.2/iommu/ivhd1/amd-iommu/cap
> > >
> >
> > Btw, I just got an arm64 server with 128 CPUs for testing. I'm trying
> > to allocate also a big x86 server here, but I'm not sure if it is AMD or
> > Intel.
>
> Some tests on a Gigabyte R182-Z91-00 server, equipped with AMD EPYC 7352
> 24-Core Processors (total 96 threads):
>
> $ find /sys |wc -l
> 233981
>
> $ time ./scripts/get_abi.pl undefined >undefined 2>logs
>
> real 0m38.917s
> user 0m34.554s
> sys 0m4.292s
>
> PS.: this machine doesn't have anything at /sys/class/iommu.
>
> On a Huawei TaiShan 200 (Model 2280) with 128 ARM cores:
>
> $ find /sys |wc -l
> 99362
> $ time ./scripts/get_abi.pl undefined >undefined 2>logs
>
> real 0m29.311s
> user 0m26.173s
> sys 0m3.061s
>
> Both machines are using Perl 5.26.

Try it with your sorting patch, that fixed it for me and now it runs in
10 seconds.

crazy.