From: Nathan Chancellor <nathan@kernel.org>
To: "Thomas Weißschuh" <linux@weissschuh.net>
Cc: Jose Fernandez <jose.fernandez@linux.dev>,
Christian Heusel <christian@heusel.eu>,
Masahiro Yamada <masahiroy@kernel.org>,
Nicolas Schier <nicolas@fjasle.eu>,
Peter Jung <ptr1337@cachyos.org>,
linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] kbuild: add debug package to pacman PKGBUILD
Date: Thu, 1 Aug 2024 12:20:08 -0700 [thread overview]
Message-ID: <20240801192008.GA3923315@thelio-3990X> (raw)
In-Reply-To: <ab9f18b2-a27c-4ac8-bffa-390a8960387b@t-8ch.de>
On Thu, Aug 01, 2024 at 08:53:54PM +0200, Thomas Weißschuh wrote:
> On 2024-08-01 11:36:37+0000, Nathan Chancellor wrote:
> > Hi Jose,
> >
> > On Thu, Aug 01, 2024 at 07:29:40AM -0600, Jose Fernandez wrote:
> > > Add a new -debug package to the pacman PKGBUILD that will contain the
> > > vmlinux image for debugging purposes. This package depends on the
> > > -headers package and will be installed in /usr/src/debug/${pkgbase}.
> > >
> > > The vmlinux image is needed to debug core dumps with tools like crash.
> > >
> > > Signed-off-by: Jose Fernandez <jose.fernandez@linux.dev>
> > > Reviewed-by: Peter Jung <ptr1337@cachyos.org>
> >
> > This appears to add a non-trivial amount of time to the build when benchmarking
> > with Arch Linux's configuration (I measure 9% with hyperfine):
>
> As nothing more is compiled, I guess this is just the additional
> packaging.
>
> > Benchmark 1: pacman-pkg @ 21b136cc63d2 ("minmax: fix up min3() and max3() too")
> > Time (mean ± σ): 579.541 s ± 0.585 s [User: 22156.731 s, System: 3681.698 s]
> > Range (min … max): 578.894 s … 580.033 s 3 runs
> >
> > Benchmark 2: pacman-pkg @ c5af4db0563b ("kbuild: add debug package to pacman PKGBUILD")
> > Time (mean ± σ): 633.419 s ± 0.972 s [User: 22247.886 s, System: 3673.879 s]
> > Range (min … max): 632.302 s … 634.070 s 3 runs
> >
> > Summary
> > pacman-pkg @ 21b136cc63d2 ("minmax: fix up min3() and max3() too") ran
> > 1.09 ± 0.00 times faster than pacman-pkg @ c5af4db0563b ("kbuild: add debug package to pacman PKGBUILD")
> >
> > It would be nice to add some option to avoid building this package for
> > developers who may not want it (I know I personally would not want it
> > with that penalty because I do a lot of bisects) or maybe adding a
> > target to build this package with the rest like 'pacman-pkg-with-dbg' or
> > something? Also, couldn't vmlinux be obtained from vmlinuz that already
> > exists in the main package via scripts/extract-vmlinux?
>
> Jose:
>
> In the vanilla PKGBUILD vmlinux is part of the linux-headers package:
> linux-headers /usr/lib/modules/6.10.2-arch1-1/build/vmlinux
>
> Given that you already gate the new -debug package on CONFIG_MODULES,
> why not add the file to that package?
>
> Then we could still discuss if it makes sense to gate vmlinux on
> CONFIG_MODULES or if -headers should be enabled unconditionally again.
I think having -headers be enabled/built by default is probably okay
since a regular user/builder might have external modules that need to be
rebuilt against the new kernel. However, I (and likely many other
upstream developers, however many use Arch) never build external modules
against my kernels, so it would be nice to have some way to opt out of
this penalty. I suspect it is just compressing down such a massive
vmlinux that causes this? I have not had access to a build log with my
testing, so unsure.
> Or we wait for somebody to show up and ask for it.
I won't insist though so if we want to wait for someone else, that's
fine with me too.
> > Cheers,
> > Nathan
> >
> > > ---
> > > scripts/package/PKGBUILD | 10 ++++++++++
> > > 1 file changed, 10 insertions(+)
> > >
> > > diff --git a/scripts/package/PKGBUILD b/scripts/package/PKGBUILD
> > > index 663ce300dd06..beda3db21863 100644
> > > --- a/scripts/package/PKGBUILD
> > > +++ b/scripts/package/PKGBUILD
> > > @@ -6,6 +6,7 @@ pkgbase=${PACMAN_PKGBASE:-linux-upstream}
> > > pkgname=("${pkgbase}" "${pkgbase}-api-headers")
> > > if grep -q CONFIG_MODULES=y include/config/auto.conf; then
> > > pkgname+=("${pkgbase}-headers")
> > > + pkgname+=("${pkgbase}-debug")
> > > fi
> > > pkgver="${KERNELRELEASE//-/_}"
> > > # The PKGBUILD is evaluated multiple times.
> > > @@ -89,6 +90,15 @@ _package-headers() {
> > > ln -sr "${builddir}" "${pkgdir}/usr/src/${pkgbase}"
> > > }
> > >
> > > +_package-debug(){
> > > + pkgdesc="Non-stripped vmlinux file for the ${pkgdesc} kernel"
> > > + depends=(${pkgbase}-headers)
> > > +
> > > + cd "${objtree}"
> > > + mkdir -p "$pkgdir/usr/src/debug/${pkgbase}"
> > > + install -Dt "$pkgdir/usr/src/debug/${pkgbase}" -m644 vmlinux
> > > +}
> > > +
> > > _package-api-headers() {
> > > pkgdesc="Kernel headers sanitized for use in userspace"
> > > provides=(linux-api-headers)
> > > --
> > > 2.46.0
> > >
next prev parent reply other threads:[~2024-08-01 19:20 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-01 13:29 Jose Fernandez
2024-08-01 18:36 ` Nathan Chancellor
2024-08-01 18:53 ` Thomas Weißschuh
2024-08-01 19:20 ` Nathan Chancellor [this message]
2024-08-02 4:27 ` Jose Fernandez
2024-08-02 15:40 ` Thomas Weißschuh
2024-08-03 16:41 ` Jose Fernandez
2024-08-03 14:40 ` Masahiro Yamada
2024-08-06 14:28 ` Christian Heusel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240801192008.GA3923315@thelio-3990X \
--to=nathan@kernel.org \
--cc=christian@heusel.eu \
--cc=jose.fernandez@linux.dev \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@weissschuh.net \
--cc=masahiroy@kernel.org \
--cc=nicolas@fjasle.eu \
--cc=ptr1337@cachyos.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®