New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kernel: improve config handling of IO_URING and DYNAMIC_DEBUG #12482
kernel: improve config handling of IO_URING and DYNAMIC_DEBUG #12482
Conversation
@guidosarducci i like this change. Maybe for rockchip we can also enable by default, should not be a small flash target and afaik many board are used for file sharing in mind |
@Ansuel Hi Christian, since rockchip has The rationale for |
@guidosarducci oh ok! Yep I already got your logic before by looking at the change and it totally correct! LGTM. If no one have anything against this in a few days i will merge this! |
Thanks! For reference, these would be the targets enabled by default:
|
I'm not really sure for the bcm targets... no idea they were aarch64 honestly... Anyway I would wait what @hauke think about this and then i will merge... We have also the other cleanup to merge so lots of fun stuff to change |
Sure, it was @hauke who requested the PR when I suggested this change, so would like to hear from him too. BTW, those BCM targets cover things like Raspberry Pi and Netgear R8000p, which seem appropriate.
Oooh, what cleanup is that? Good cleanups don't get the attention they deserve in my experience... |
@guidosarducci i'm ok with merging this, but i can rebase for you. Can you rebase on top of master? |
Since CONFIG_DYNAMIC_DEBUG is already managed via the KERNEL_DYNAMIC_DEBUG setting in Config-kernel.in (default N), remove or disable it in target configs which unconditionally enable it, along with the related setting CONFIG_DYNAMIC_DEBUG_CORE. This saves several KB in the kernels for ipq40xx, ipq806x, filogic, mt7622, qoriq, and sunxi. Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Kernel setting CONFIG_IO_URING supports high-performance I/O for file access and servers, generally for more performant platforms, and adds ~45 KB to kernel sizes. The need for this on less "beefy" devices is questionable, as is the size cost considering many platforms have kernel size limits which require tricky repartitioning if outgrown. The size cost is also large relative to the ~180 KB bump expected between major OpenWRT kernel releases. No OpenWrt packages have hard dependencies on this; samba4 and mariadb can take advantage if available (+KERNEL_IO_URING:liburing) but otherwise build and work fine. Since CONFIG_IO_URING is already managed via the KERNEL_IO_URING setting in Config-kernel.in (default Y), remove it from those target configs which unconditionally enable it, and update the defaults to enable it conditionally only on more powerful 64-bit x86 and arm devices. It may still be manually enabled as needed for high-performance custom builds. Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
f577e4b
to
3d66f55
Compare
@Ansuel Thanks! I've rebased on master... Repeating the checks will take some time however. |
This includes changes in handling two kernel config settings with notable impact to kernel sizes:
Kernel setting CONFIG_IO_URING supports high-performance I/O for file access and servers, generally for more performant platforms, and adds ~45 KB to kernel sizes. The need for this on less "beefy" devices is questionable, as is the size cost considering many platforms have kernel size limits which require tricky repartitioning if outgrown. The size cost is also large relative to the ~180 KB bump expected between major OpenWRT kernel releases.
No OpenWrt packages have hard dependencies on this; samba4 and mariadb can take advantage if available (+KERNEL_IO_URING:liburing) but otherwise build and work fine.
Since CONFIG_IO_URING is already managed via the KERNEL_IO_URING setting in Config-kernel.in (default Y), remove it from those target configs which unconditionally enable it, and update the defaults to enable it conditionally only on more powerful 64-bit x86 and arm devices. It may still be manually enabled as needed for high-performance custom builds.
Since CONFIG_DYNAMIC_DEBUG is already managed via the KERNEL_DYNAMIC_DEBUG setting in Config-kernel.in (default N), remove or disable it in target configs which unconditionally enable it, along with the related setting CONFIG_DYNAMIC_DEBUG_CORE. This saves several KB in the kernels for ipq40xx, ipq806x, filogic, mt7622, qoriq, and sunxi.
These changes were investigated and mentioned during development of #11405 , and requested as a follow-up PR. They have been build- and run-tested on malta/be32, including the mariadb and samba4 packages. These commits together reduced LZMA kernel size by ~50 KB.
(Note: while working on #11405 , these changes alone would have avoided the need to repartition the ipq40xx device, and there are a number of related changes e.g. see the WIP at https://github.com/guidosarducci/openwrt/commits/master-clean-configs)
Please have a look and comment @hauke and @Ansuel .