On Thu, Apr 4, 2024 at 3:09 PM Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > On Thu, Apr 4, 2024 at 8:52 AM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > On Thu, Apr 4, 2024 at 8:45 AM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > > > On Thu, Apr 4, 2024 at 8:42 AM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > > > > > On Wed, Apr 3, 2024 at 1:01 PM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > > > > > > > On Wed, Apr 3, 2024 at 12:56 PM Andrii Nakryiko > > > > > <andrii.nakryiko@xxxxxxxxx> wrote: > > > > > > > > > > > > On Wed, Apr 3, 2024 at 12:35 PM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > > > > > > > > > > > On Wed, Apr 3, 2024 at 11:56 AM Andrii Nakryiko > > > > > > > <andrii.nakryiko@xxxxxxxxx> wrote: > > > > > > > > > > > > > > > > On Wed, Apr 3, 2024 at 11:34 AM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > > > > > > > > > > > > > > > On Wed, Apr 3, 2024 at 10:56 AM Andrii Nakryiko > > > > > > > > > <andrii.nakryiko@xxxxxxxxx> wrote: > > > > > > > > > > > > > > > > > > > > On Wed, Apr 3, 2024 at 10:06 AM Vincent Li <vincent.mc.li@xxxxxxxxx> wrote: > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > > Once I enabled the open source firewall IPfire kernel 6.6.15 > > > > > > > > > > > DEBUG_INFO_BTF, the IPfire ISO image is increased from about 450MB to > > > > > > > > > > > about 1.5GB, I suspect because IPfire has many driver modules to > > > > > > > > > > > > > > > > > > > > BTF can't be that big. I think you just get all the DWARF for modules > > > > > > > > > > and vmlinux itself. DWARF is necessary to generate BTF during the > > > > > > > > > > build time, but it can be stripped out afterwards, leaving just (much > > > > > > > > > > smaller) BTF intact. > > > > > > > > > > > > > > > > > > ok good to hear that :). I am new to this, how to strip > > > > > > > > > kernel/modules DWARF after kernel/modules being built? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > support as many hardware as possible, pahole generated BTF for all > > > > > > > > > > > these modules, that could increase the size of the ISO image, so I > > > > > > > > > > > wonder if I could disable modules BTF only but keep vmlinux BTF, or > > > > > > > > > > > maybe selectively enable BTF for some modules, but not other modules? > > > > > > > > > > > > > > > > > > > > > > I found this discussion [0] making DEBUG_INFO_BTF_MODULES selectable > > > > > > > > > > > independently. I am still not sure how to disable modules BTF, I tried > > > > > > > > > > > make menuconfig, still not obvious to me how to disable > > > > > > > > > > > DEBUG_INFO_BTF_MODULES > > > > > > > > > > > > > > > > > > > > I think CONFIG_DEBUG_INFO_BTF_MODULES=n should work fine, but see > > > > > > > > > > above, I don't think the BTF is a problem here, it's not stripping out > > > > > > > > > > DWARF. > > > > > > > > > > > > > > I manually change the CONFIG_DEBUG_INFO_BTF_MODULES=y to > > > > > > > CONFIG_DEBUG_INFO_BTF_MODULES=n > > > > > > > in .config, but make oldconfig always flip it back to y, if I run make > > > > > > > bzImage without make oldconfig, it will have "Restart config..." > > > > > > > like below and n flipped to y again when examining the .config > > > > > > > > > > > > Maybe CONFIG_MODULE_ALLOW_BTF_MISMATCH is auto-selecting it, try > > > > > > turning both off. > > > > > > > > > > > > > > > > originally CONFIG_MODULE_ALLOW_BTF_MISMATCH is not set, so I set it to > > > > > n, still CONFIG_DEBUG_INFO_BTF_MODULES set back to y, I also tried set > > > > > CONFIG_PAHOLE_HAS_SPLIT_BTF and CONFIG_PAHOLE_HAS_LANG_EXCLUDE to n, > > > > > no effect, all back to y > > > > > > > > > > > > > I found if I change DEBUG_INFO_BTF_MODULES def_bool to n as below > > > > diff, it works, is this the right way? > > > > > > > > > > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > > > index 975a07f9f1cc..98d7a4476d00 100644 > > > > --- a/lib/Kconfig.debug > > > > +++ b/lib/Kconfig.debug > > > > @@ -408,7 +408,7 @@ config PAHOLE_HAS_LANG_EXCLUDE > > > > using DEBUG_INFO_BTF_MODULES. > > > > > > > > config DEBUG_INFO_BTF_MODULES > > > > - def_bool y > > > > + def_bool n > > > > depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF > > > > help > > > > Generate compact split BTF type information for kernel modules. > > > > > > > > > > this seems always set DEBUG_INFO_BTF_MODULES to n when I want y, not > > > going to work :) > > > > > > > this diff seems resolves the problem > > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > index 975a07f9f1cc..31bd799bf3b5 100644 > > --- a/lib/Kconfig.debug > > +++ b/lib/Kconfig.debug > > @@ -408,7 +408,7 @@ config PAHOLE_HAS_LANG_EXCLUDE > > using DEBUG_INFO_BTF_MODULES. > > > > config DEBUG_INFO_BTF_MODULES > > - def_bool y > > + bool "Generate modules BTF" > > depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF > > help > > Generate compact split BTF type information for kernel modules. > > > > any suggestions ? > > > > yeah, you'll need this fix ([0]), it's an issue of how > DEBUG_INFO_BTF_MODULES is defined and/or a quirk of Kconfig > > [0] https://patchwork.kernel.org/project/netdevbpf/patch/20240404220344.3879270-1-andrii@xxxxxxxxxx/ > Great! thanks. you are right, it is the debug info in modules eating most of disk space, I found scripts/Makefile.modinst has INSTALL_MOD_STRIP where I can specify strip options like INSTALL_MOD_STRIP=--strip-all make modules_install, and the installed modules will be stripped, and the installed modules can also be compressed when CONFIG_MODULE_COMPRESS_XZ is set, just fyi :) > > > > > > > > > > > > > > # make bzImage > > > > > > > > > > > > > > SYNC include/config/auto.conf.cmd > > > > > > > * > > > > > > > * Restart config... > > > > > > > * > > > > > > > > > > > > > > > > > > > > > > > strip -g ? I don't know how this is normally done in Linux distros. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > [0] https://lore.kernel.org/bpf/CAKH8qBu0ptKbMVvoMpgN2tyk84ZGvwuCJLjesqw-_8QtSRLqpw@xxxxxxxxxxxxxx/T/#m73cee268387358ec645b665951feb931b294ec2d > > > > > > > > > > > > > > > > > > > > > > Thanks! > > > > > > > > > > >