RE: [PATCH] mm/page_alloc: Work around a pahole limitation with zero-sized struct pagesets

From: David Laight
Date: Fri May 28 2021 - 05:49:38 EST


From: Mel Gorman
> Sent: 28 May 2021 10:04
>
> On Fri, May 28, 2021 at 08:09:39AM +0000, David Laight wrote:
> > From: Andrii Nakryiko
> > > Sent: 27 May 2021 15:42
> > ...
> > > I agree that empty structs are useful, but here we are talking about
> > > per-CPU variables only, which is the first use case so far, as far as
> > > I can see. If we had pahole 1.22 released and widely packaged it could
> > > have been a viable option to force it on everyone.
> > ...
> >
> > Would it be feasible to put the sources for pahole into the
> > kernel repository and build it at the same time as objtool?
>
> We don't store other build dependencies like compilers, binutils etc in
> the kernel repository even though minimum versions are mandated.
> Obviously tools/ exists but for the most part, they are tools that do
> not exist in other repositories and are kernel-specific. I don't know if
> pahole would be accepted and it introduces the possibility that upstream
> pahole and the kernel fork of it would diverge.

The other side of the coin is that is you want reproducible builds
the smaller the number of variables that need to match the better.

I can see there might be similar issues with the version of libelf-devel
(needed by objtool).
If I compile anything with gcc 10 (I'm doing build-root builds)
I get object files that the hosts 2.30 binutils complain about.
I can easily see that updating gcc and binutils might leave a
broken objtool unless the required updated libelf-devel package
can be found.
Statically linking the required parts of libelf into objtool
would save any such problems.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)