From b675161b26bd3eef8ae39ae03181415e28b579b1 Mon Sep 17 00:00:00 2001 From: Ruihan Li Date: Sun, 6 Apr 2025 00:56:01 +0800 Subject: [PATCH 1/2] lkl: Use make savedefconfig to save defconfigs The defconfig files should be created with make savedefconfig rather than edited manually. This command will automatically remove unnecessary comments in .config, identify the necessary configs that need to be listed in the defconfig file, and sort the config options properly. If we don't use it, the contents of the defconfig files can get messy and hard to maintain. This commit is created via the following commands: make ARCH=lkl defconfig make ARCH=lkl savedefconfig mv defconfig arch/lkl/configs/defconfig make ARCH=lkl fuzzing_defconfig make ARCH=lkl savedefconfig mv defconfig arch/lkl/configs/fuzzing_defconfig Signed-off-by: Ruihan Li --- arch/lkl/configs/defconfig | 6 +- arch/lkl/configs/fuzzing_defconfig | 199 ++++++++++++----------------- 2 files changed, 81 insertions(+), 124 deletions(-) diff --git a/arch/lkl/configs/defconfig b/arch/lkl/configs/defconfig index c62d433732d4..b7908d31471c 100644 --- a/arch/lkl/configs/defconfig +++ b/arch/lkl/configs/defconfig @@ -1,5 +1,6 @@ # CONFIG_LOCALVERSION_AUTO is not set CONFIG_NO_HZ_IDLE=y +CONFIG_EXPERT=y # CONFIG_SYSFS_SYSCALL is not set # CONFIG_BASE_FULL is not set # CONFIG_FUTEX is not set @@ -9,10 +10,8 @@ CONFIG_NO_HZ_IDLE=y # CONFIG_ADVISE_SYSCALLS is not set CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_USE_DATA_SECTION=y -CONFIG_EXPERT=y -# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_COMPAT_BRK is not set -# CONFIG_BLK_DEV_BSG is not set +# CONFIG_VM_EVENT_COUNTERS is not set # CONFIG_WIRELESS is not set # CONFIG_FW_LOADER is not set CONFIG_VIRTIO_BLK=y @@ -86,4 +85,3 @@ CONFIG_NLS_UTF8=y CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_PRINTK_TIME=y CONFIG_DEBUG_INFO_DWARF4=y -# CONFIG_ENABLE_MUST_CHECK is not set diff --git a/arch/lkl/configs/fuzzing_defconfig b/arch/lkl/configs/fuzzing_defconfig index b86b411bfb8b..410e67e61b58 100644 --- a/arch/lkl/configs/fuzzing_defconfig +++ b/arch/lkl/configs/fuzzing_defconfig @@ -1,34 +1,101 @@ # CONFIG_LOCALVERSION_AUTO is not set CONFIG_NO_HZ_IDLE=y +CONFIG_EXPERT=y # CONFIG_SYSFS_SYSCALL is not set -CONFIG_KALLSYMS_USE_DATA_SECTION=y -CONFIG_KALLSYMS_ALL=y # CONFIG_BASE_FULL is not set # CONFIG_FUTEX is not set # CONFIG_SIGNALFD is not set # CONFIG_TIMERFD is not set # CONFIG_AIO is not set # CONFIG_ADVISE_SYSCALLS is not set -CONFIG_EXPERT=y -# CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_USE_DATA_SECTION=y # CONFIG_COMPAT_BRK is not set -# CONFIG_BLK_DEV_BSG is not set -CONFIG_NET=y -CONFIG_INET=y +# CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_VSOCKETS=y +CONFIG_VIRTIO_VSOCKETS=y # CONFIG_WIRELESS is not set -# CONFIG_UEVENT_HELPER is not set +CONFIG_DEVTMPFS=y # CONFIG_FW_LOADER is not set CONFIG_VIRTIO_BLK=y CONFIG_NETDEVICES=y CONFIG_VIRTIO_NET=y -CONFIG_VHOST_VSOCK=y -CONFIG_VIRTIO_VSOCKETS=y -CONFIG_VSOCKETS=y # CONFIG_ETHERNET is not set # CONFIG_WLAN is not set # CONFIG_VT is not set +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_A4TECH=y +CONFIG_HID_ACRUX=y +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=y +CONFIG_HID_AUREAL=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_COUGAR=y +CONFIG_HID_MACALLY=y +CONFIG_HID_CMEDIA=y +CONFIG_HID_CYPRESS=y +CONFIG_HID_DRAGONRISE=y +CONFIG_DRAGONRISE_FF=y +CONFIG_HID_EMS_FF=y +CONFIG_HID_ELECOM=y +CONFIG_HID_EZKEY=y +CONFIG_HID_GEMBIRD=y +CONFIG_HID_GFRM=y +CONFIG_HID_KEYTOUCH=y +CONFIG_HID_KYE=y +CONFIG_HID_WALTOP=y +CONFIG_HID_VIEWSONIC=y +CONFIG_HID_GYRATION=y +CONFIG_HID_ICADE=y +CONFIG_HID_ITE=y +CONFIG_HID_JABRA=y +CONFIG_HID_TWINHAN=y +CONFIG_HID_KENSINGTON=y +CONFIG_HID_LCPOWER=y +CONFIG_HID_LENOVO=y +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MALTRON=y +CONFIG_HID_MAYFLASH=y +CONFIG_HID_REDRAGON=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +CONFIG_HID_MULTITOUCH=y +CONFIG_HID_NTI=y +CONFIG_HID_ORTEK=y +CONFIG_HID_PANTHERLORD=y +CONFIG_PANTHERLORD_FF=y +CONFIG_HID_PETALYNX=y +CONFIG_HID_PICOLCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PLANTRONICS=y +CONFIG_HID_PRIMAX=y +CONFIG_HID_SAITEK=y +CONFIG_HID_SPEEDLINK=y +CONFIG_HID_STEAM=y +CONFIG_HID_SUNPLUS=y +CONFIG_HID_RMI=y +CONFIG_HID_GREENASIA=y +CONFIG_GREENASIA_FF=y +CONFIG_HID_SMARTJOYPLUS=y +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_HID_TIVO=y +CONFIG_HID_TOPSEED=y +CONFIG_HID_THINGM=y +CONFIG_HID_UDRAW_PS3=y +CONFIG_HID_WIIMOTE=y +CONFIG_HID_XINMO=y +CONFIG_HID_ZEROPLUS=y +CONFIG_ZEROPLUS_FF=y +CONFIG_HID_ZYDACRON=y +CONFIG_HID_SENSOR_HUB=y +CONFIG_HID_SENSOR_CUSTOM_SENSOR=y +CONFIG_HID_ALPS=y CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_VHOST_VSOCK=y # CONFIG_FILE_LOCKING is not set # CONFIG_DNOTIFY is not set # CONFIG_INOTIFY_USER is not set @@ -82,114 +149,6 @@ CONFIG_NLS_MAC_INUIT=y CONFIG_NLS_MAC_ROMANIAN=y CONFIG_NLS_MAC_TURKISH=y CONFIG_NLS_UTF8=y -CONFIG_HZ_100=y -CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_PRINTK_TIME=y -CONFIG_DEBUG_INFO=y -CONFIG_DEBUG_INFO_REDUCED=y -# CONFIG_ENABLE_WARN_DEPRECATED is not set -# CONFIG_ENABLE_MUST_CHECK is not set - -# -# HID support -# -CONFIG_HID=y -CONFIG_HID_BATTERY_STRENGTH=y -CONFIG_HIDRAW=y -CONFIG_UHID=y -CONFIG_HID_GENERIC=y -# -# Special HID drivers -# -CONFIG_HID_A4TECH=y -CONFIG_HID_ACRUX=y -CONFIG_HID_ACRUX_FF=y -CONFIG_HID_APPLE=y -CONFIG_HID_ASUS=y -CONFIG_HID_AUREAL=y -CONFIG_HID_BELKIN=y -CONFIG_HID_CHERRY=y -CONFIG_HID_CHICONY=y -CONFIG_HID_COUGAR=y -CONFIG_HID_MACALLY=y -CONFIG_HID_CMEDIA=y -CONFIG_HID_CYPRESS=y -CONFIG_HID_DRAGONRISE=y -CONFIG_DRAGONRISE_FF=y -CONFIG_HID_EMS_FF=y -CONFIG_HID_ELECOM=y -CONFIG_HID_EZKEY=y -CONFIG_HID_GEMBIRD=y -CONFIG_HID_GFRM=y -CONFIG_HID_KEYTOUCH=y -CONFIG_HID_KYE=y -CONFIG_HID_WALTOP=y -CONFIG_HID_VIEWSONIC=y -CONFIG_HID_GYRATION=y -CONFIG_HID_ICADE=y -CONFIG_HID_ITE=y -CONFIG_HID_JABRA=y -CONFIG_HID_TWINHAN=y -CONFIG_HID_KENSINGTON=y -CONFIG_HID_LCPOWER=y -CONFIG_HID_LED=y -CONFIG_HID_LENOVO=y -CONFIG_HID_LOGITECH=y -CONFIG_HID_LOGITECH_HIDPP=y -CONFIG_LOGITECH_FF=y -CONFIG_LOGIRUMBLEPAD2_FF=y -CONFIG_LOGIG940_FF=y -CONFIG_LOGIWHEELS_FF=y -CONFIG_HID_MAGICMOUSE=y -CONFIG_HID_MALTRON=y -CONFIG_HID_MAYFLASH=y -CONFIG_HID_REDRAGON=y -CONFIG_HID_MICROSOFT=y -CONFIG_HID_MONTEREY=y -CONFIG_HID_MULTITOUCH=y -CONFIG_HID_NTI=y -CONFIG_HID_ORTEK=y -CONFIG_HID_PANTHERLORD=y -CONFIG_PANTHERLORD_FF=y -CONFIG_HID_PETALYNX=y -CONFIG_HID_PICOLCD=y -CONFIG_HID_PICOLCD_BACKLIGHT=y -CONFIG_HID_PICOLCD_LCD=y -CONFIG_HID_PICOLCD_LEDS=y -CONFIG_HID_PLANTRONICS=y -CONFIG_HID_PRIMAX=y -CONFIG_HID_SAITEK=y -CONFIG_HID_SAMSUNG=y -CONFIG_HID_SPEEDLINK=y -CONFIG_HID_STEAM=y -CONFIG_HID_STEELSERIES=y -CONFIG_HID_SUNPLUS=y -CONFIG_HID_RMI=y -CONFIG_HID_GREENASIA=y -CONFIG_GREENASIA_FF=y -CONFIG_HID_SMARTJOYPLUS=y -CONFIG_SMARTJOYPLUS_FF=y -CONFIG_HID_TIVO=y -CONFIG_HID_TOPSEED=y -CONFIG_HID_THINGM=y -CONFIG_HID_THRUSTMASTER=y -CONFIG_THRUSTMASTER_FF=y -CONFIG_HID_UDRAW_PS3=y -CONFIG_HID_WIIMOTE=y -CONFIG_HID_XINMO=y -CONFIG_HID_ZEROPLUS=y -CONFIG_ZEROPLUS_FF=y -CONFIG_HID_ZYDACRON=y -CONFIG_HID_SENSOR_HUB=y -CONFIG_HID_SENSOR_CUSTOM_SENSOR=y -CONFIG_HID_ALPS=y -# end of Special HID drivers -# end of HID support - -CONFIG_KASAN=y -CONFIG_KASAN_STACK_ENABLE=y -CONFIG_KASAN_GENERIC=y -CONFIG_KASAN_OUTLINE=y CONFIG_FRAME_WARN=0 - -CONFIG_DEVTMPFS=y +CONFIG_KASAN=y From cdd533f5410e6d0dbb4669be93867b9ab048e1a6 Mon Sep 17 00:00:00 2001 From: Ruihan Li Date: Sun, 6 Apr 2025 00:54:36 +0800 Subject: [PATCH 2/2] lkl: Drop unnecessary config selects LKL can work without network support. The current Kconfig forces all LKL builds to enable CONFIG_NET, which is not necessary. LKL tests may still expect such features to be enabled by default, so this commit removes the selects in Kconfig, but specifies them as enabled in defconfigs. End users using defconfigs should not be affected by this patch, but end users with their own configs or allnoconfig may benefit from this patch by having a minified kernel image. Signed-off-by: Ruihan Li --- arch/lkl/Kconfig | 20 -------------------- arch/lkl/configs/defconfig | 15 +++++++++++++++ arch/lkl/configs/fuzzing_defconfig | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/arch/lkl/Kconfig b/arch/lkl/Kconfig index e6d1cf03b84d..aa9fe54c632f 100644 --- a/arch/lkl/Kconfig +++ b/arch/lkl/Kconfig @@ -10,26 +10,6 @@ config LKL select NO_HZ_IDLE select NO_PREEMPT select ARCH_WANT_FRAME_POINTERS - select NET - select MULTIUSER - select INET - select IPV6 - select IP_PNP - select IP_PNP_DHCP - select TCP_CONG_ADVANCED - select TCP_CONG_BBR - select HIGH_RES_TIMERS - select NET_SCHED - select NET_SCH_FQ - select IP_MULTICAST - select IPV6_MULTICAST - select IP_MULTIPLE_TABLES - select IPV6_MULTIPLE_TABLES - select IP_ROUTE_MULTIPATH - select IPV6_ROUTE_MULTIPATH - select IP_ADVANCED_ROUTER - select IPV6_ADVANCED_ROUTER - select BLK_DEV_NVME select UACCESS_MEMCPY select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER diff --git a/arch/lkl/configs/defconfig b/arch/lkl/configs/defconfig index b7908d31471c..fc42217354ea 100644 --- a/arch/lkl/configs/defconfig +++ b/arch/lkl/configs/defconfig @@ -1,5 +1,6 @@ # CONFIG_LOCALVERSION_AUTO is not set CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y CONFIG_EXPERT=y # CONFIG_SYSFS_SYSCALL is not set # CONFIG_BASE_FULL is not set @@ -12,9 +13,23 @@ CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_USE_DATA_SECTION=y # CONFIG_COMPAT_BRK is not set # CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_NET=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BBR=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ=y # CONFIG_WIRELESS is not set # CONFIG_FW_LOADER is not set CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_NVME=y CONFIG_NETDEVICES=y CONFIG_VIRTIO_NET=y # CONFIG_ETHERNET is not set diff --git a/arch/lkl/configs/fuzzing_defconfig b/arch/lkl/configs/fuzzing_defconfig index 410e67e61b58..47acf2ff9270 100644 --- a/arch/lkl/configs/fuzzing_defconfig +++ b/arch/lkl/configs/fuzzing_defconfig @@ -1,5 +1,6 @@ # CONFIG_LOCALVERSION_AUTO is not set CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y CONFIG_EXPERT=y # CONFIG_SYSFS_SYSCALL is not set # CONFIG_BASE_FULL is not set @@ -12,12 +13,26 @@ CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_USE_DATA_SECTION=y # CONFIG_COMPAT_BRK is not set # CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_NET=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BBR=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ=y CONFIG_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS=y # CONFIG_WIRELESS is not set CONFIG_DEVTMPFS=y # CONFIG_FW_LOADER is not set CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_NVME=y CONFIG_NETDEVICES=y CONFIG_VIRTIO_NET=y # CONFIG_ETHERNET is not set