2019-12-02 21:19:36

by Enric Balletbo i Serra

[permalink] [raw]
Subject: [PATCH 0/2] Standard x86_64 defconfig for KernelCI or Chromebooks

Hi x86 maintainers,

For testing purposes it'd be useful have a standard/mainline config that
supports the devices that we're testing in KernelCI. For Chromebooks we
try to take care of have multi_v7_defconfig and arm64 defconfig up to
date supporting different devices, that way, we don't need to deal with
out-of-tree kernel configs or fragments. We'd like to do the same for
x86 architecture, hence this patch series.

I am unsure if the x86_64_defconfig is the right place to do it, if not,
maybe we can add a chromebooks.config (like xen.config) or even better,
a kernelci.config, so take this as a RFC if that's the case.

Thanks,

Enric Balletbo i Serra (2):
x86_64_defconfig: Normalize x86_64 defconfig
x86_64_defconfig: Enable support for Chromebooks devices

arch/x86/configs/x86_64_defconfig | 156 +++++++++++++++++++-----------
1 file changed, 97 insertions(+), 59 deletions(-)

--
2.20.1


2019-12-02 21:20:45

by Enric Balletbo i Serra

[permalink] [raw]
Subject: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

make savedefconfig result in some difference, lets normalize the
defconfig

Signed-off-by: Enric Balletbo i Serra <[email protected]>
---

arch/x86/configs/x86_64_defconfig | 90 +++++++++++--------------------
1 file changed, 30 insertions(+), 60 deletions(-)

diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index 0b9654c7a05c..a95291c89717 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -1,36 +1,26 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
+CONFIG_AUDIT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_FHANDLE=y
-CONFIG_AUDIT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_CGROUPS=y
+CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CPUSETS=y
CONFIG_CGROUP_CPUACCT=y
-CONFIG_CGROUP_SCHED=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
-CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_SMP=y
-CONFIG_NR_CPUS=64
-CONFIG_SCHED_SMT=y
-CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
-CONFIG_X86_MCE=y
-CONFIG_MICROCODE=y
CONFIG_MICROCODE_AMD=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
@@ -38,30 +28,29 @@ CONFIG_NUMA=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
# CONFIG_MTRR_SANITIZER is not set
CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+CONFIG_EFI_MIXED=y
CONFIG_HZ_1000=y
CONFIG_KEXEC=y
CONFIG_CRASH_DUMP=y
-CONFIG_RANDOMIZE_BASE=y
-CONFIG_RANDOMIZE_MEMORY=y
-# CONFIG_COMPAT_VDSO is not set
CONFIG_HIBERNATION=y
CONFIG_PM_DEBUG=y
CONFIG_PM_TRACE_RTC=y
CONFIG_ACPI_DOCK=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
+CONFIG_ACPI_BGRT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_X86_ACPI_CPUFREQ=y
-CONFIG_PCI=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_PCCARD=y
-CONFIG_YENTA=y
-CONFIG_HOTPLUG_PCI=y
-CONFIG_BINFMT_MISC=y
CONFIG_IA32_EMULATION=y
+CONFIG_EFI_VARS=y
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_UNUSED_SYMBOLS is not set
+CONFIG_BINFMT_MISC=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
@@ -80,16 +69,12 @@ CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_SYN_COOKIES=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_DIAG is not set
CONFIG_TCP_CONG_ADVANCED=y
# CONFIG_TCP_CONG_BIC is not set
# CONFIG_TCP_CONG_WESTWOOD is not set
# CONFIG_TCP_CONG_HTCP is not set
CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
CONFIG_INET6_AH=y
CONFIG_INET6_ESP=y
CONFIG_NETLABEL=y
@@ -100,6 +85,7 @@ CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_CONNTRACK_SIP=y
CONFIG_NF_CT_NETLINK=y
+CONFIG_NF_NAT=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
@@ -107,14 +93,11 @@ CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_POLICY=y
CONFIG_NETFILTER_XT_MATCH_STATE=y
-CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
-CONFIG_NF_NAT=y
-CONFIG_IP_NF_TARGET_MASQUERADE=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_MANGLE=y
-CONFIG_NF_CONNTRACK_IPV6=y
CONFIG_IP6_NF_IPTABLES=y
CONFIG_IP6_NF_MATCH_IPV6HEADER=y
CONFIG_IP6_NF_FILTER=y
@@ -128,6 +111,11 @@ CONFIG_CFG80211=y
CONFIG_MAC80211=y
CONFIG_MAC80211_LEDS=y
CONFIG_RFKILL=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_PCCARD=y
+CONFIG_YENTA=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DEBUG_DEVRES=y
@@ -166,13 +154,11 @@ CONFIG_8139TOO=y
CONFIG_R8169=y
CONFIG_FDDI=y
CONFIG_INPUT_POLLDEV=y
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TABLET=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_INPUT_MISC=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_NONSTANDARD=y
CONFIG_SERIAL_8250=y
@@ -199,19 +185,15 @@ CONFIG_DRM_I915=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
CONFIG_FB_EFI=y
-# CONFIG_LCD_CLASS_DEVICE is not set
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
+CONFIG_SND_HRTIMER=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_HRTIMER=y
CONFIG_SND_HDA_INTEL=y
CONFIG_SND_HDA_HWDEP=y
CONFIG_HIDRAW=y
@@ -232,7 +214,6 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_MON=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_PRINTER=y
@@ -245,7 +226,6 @@ CONFIG_EEEPC_LAPTOP=y
CONFIG_AMD_IOMMU=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
-CONFIG_EFI_VARS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
@@ -271,28 +251,18 @@ CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
CONFIG_PRINTK_TIME=y
CONFIG_MAGIC_SYSRQ=y
-# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_SCHED_DEBUG is not set
CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-CONFIG_DEBUG_STACK_USAGE=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
CONFIG_EARLY_PRINTK_DBGP=y
-CONFIG_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_RODATA_TEST is not set
CONFIG_DEBUG_BOOT_PARAMS=y
-CONFIG_OPTIMIZE_INLINING=y
-CONFIG_UNWINDER_ORC=y
-CONFIG_SECURITY=y
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_EFI_STUB=y
-CONFIG_EFI_MIXED=y
-CONFIG_ACPI_BGRT=y
--
2.20.1

2019-12-02 21:21:04

by Enric Balletbo i Serra

[permalink] [raw]
Subject: [PATCH 2/2] x86_64_defconfig: Enable support for Chromebooks devices

As part of KernelCI we plan to add different x86 based Chromebooks to do
test boot and runtime testing. It will be useful have an upstream
defconfig supporting this kind of devices like we have for ARM
(multi_v7_defconfig) and ARM64 (defconfig). So add different options to
enable different Chromebooks.

Signed-off-by: Enric Balletbo i Serra <[email protected]>
---

arch/x86/configs/x86_64_defconfig | 68 +++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)

diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index a95291c89717..4ed7a5de1a5a 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -20,6 +20,7 @@ CONFIG_BLK_DEV_INITRD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
CONFIG_SMP=y
+CONFIG_X86_INTEL_LPSS=y
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_MICROCODE_AMD=y
CONFIG_X86_MSR=y
@@ -43,6 +44,12 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_IA32_EMULATION=y
+CONFIG_GOOGLE_FIRMWARE=y
+CONFIG_GOOGLE_SMI=m
+CONFIG_GOOGLE_COREBOOT_TABLE=m
+CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY=m
+CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=m
+CONFIG_GOOGLE_VPD=m
CONFIG_EFI_VARS=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
@@ -153,11 +160,15 @@ CONFIG_FORCEDETH=y
CONFIG_8139TOO=y
CONFIG_R8169=y
CONFIG_FDDI=y
+CONFIG_USB_RTL8152=m
+CONFIG_USB_USBNET=m
CONFIG_INPUT_POLLDEV=y
CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_CROS_EC=m
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TABLET=y
CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ATMEL_MXT=m
CONFIG_INPUT_MISC=y
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_NONSTANDARD=y
@@ -176,7 +187,22 @@ CONFIG_NVRAM=y
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_I2C_I801=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_DESIGNWARE_PCI=y
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
+CONFIG_I2C_CROS_EC_TUNNEL=m
+CONFIG_SPI=y
+CONFIG_PINCTRL_SX150X=y
+CONFIG_PINCTRL_BAYTRAIL=y
+CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_WILCO=m
CONFIG_WATCHDOG=y
+CONFIG_MFD_INTEL_LPSS_ACPI=m
+CONFIG_MFD_INTEL_LPSS_PCI=m
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
CONFIG_AGP=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
@@ -191,11 +217,26 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
CONFIG_SND_HRTIMER=y
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_DUMMY=m
CONFIG_SND_HDA_INTEL=y
CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_CODEC_HDMI=m
+CONFIG_SND_HDA_GENERIC=m
+CONFIG_SND_SOC=m
+CONFIG_SND_DESIGNWARE_I2S=m
+CONFIG_SND_DESIGNWARE_PCM=y
+CONFIG_SND_SOC_INTEL_HASWELL=m
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+CONFIG_SND_SIMPLE_CARD=m
CONFIG_HIDRAW=y
CONFIG_HID_GYRATION=y
CONFIG_LOGITECH_FF=y
@@ -209,6 +250,8 @@ CONFIG_HID_SUNPLUS=y
CONFIG_HID_TOPSEED=y
CONFIG_HID_PID=y
CONFIG_USB_HIDDEV=y
+CONFIG_I2C_HID=m
+CONFIG_INTEL_ISH_HID=m
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_MON=y
@@ -218,14 +261,39 @@ CONFIG_USB_OHCI_HCD=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_PRINTER=y
CONFIG_USB_STORAGE=y
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ACPI=y
CONFIG_EDAC=y
CONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_DMADEVICES=y
CONFIG_EEEPC_LAPTOP=y
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CHROMEOS_TBMC=m
+CONFIG_CROS_EC=m
+CONFIG_CROS_EC_I2C=m
+CONFIG_CROS_EC_ISHTP=m
+CONFIG_CROS_EC_SPI=m
+CONFIG_CROS_EC_LPC=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_WILCO_EC=m
+CONFIG_WILCO_EC_DEBUGFS=m
+CONFIG_WILCO_EC_EVENTS=m
+CONFIG_WILCO_EC_TELEMETRY=m
CONFIG_AMD_IOMMU=y
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
+CONFIG_IIO=m
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
+CONFIG_IIO_CROS_EC_BARO=m
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
--
2.20.1

2019-12-03 02:16:59

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

On Tue, 3 Dec 2019 at 05:18, Enric Balletbo i Serra
<[email protected]> wrote:
>
> make savedefconfig result in some difference, lets normalize the
> defconfig
>

No, for two reasons:
1. If running savedefconfig at all, split reordering items from
removal of non needed options. This way we can see exactly what is
being removed. This patch moves things around so it is not possible to
understand what exactly you're doing here...
2. Do not remove options just because other select them in a blind way
- via savedefconfig. As it turns out, some developers have different
view on dependencies and they expect that defconfig *explicitly* pulls
out necessary functions. IOW, they can safely remove any visible
symbol dependency assuming that defconfigs are selecting this removed
symbol explicitly. See:
https://patchwork.kernel.org/patch/11260361/
(commit which removed DEBUG_FS - Marek Szyprowski will bring it back,
I think, and Steven Rostedt answer)

Best regards,
Krzysztof

> Signed-off-by: Enric Balletbo i Serra <[email protected]>
> ---
>
> arch/x86/configs/x86_64_defconfig | 90 +++++++++++--------------------
> 1 file changed, 30 insertions(+), 60 deletions(-)
>

2019-12-03 09:06:19

by Enric Balletbo i Serra

[permalink] [raw]
Subject: Re: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

Hi Krzysztof,

Many thanks for your quick answer.

On 3/12/19 3:15, Krzysztof Kozlowski wrote:
> On Tue, 3 Dec 2019 at 05:18, Enric Balletbo i Serra
> <[email protected]> wrote:
>>
>> make savedefconfig result in some difference, lets normalize the
>> defconfig
>>
>
> No, for two reasons:
> 1. If running savedefconfig at all, split reordering items from
> removal of non needed options. This way we can see exactly what is
> being removed. This patch moves things around so it is not possible to
> understand what exactly you're doing here...

Ok, makes sense, I can do it, but if you don't really care of having the
defconfig sync with the savedefconfig output for the below reasons or others,
that's fine with me.

The reason I send the patch is because I think that, at least on some arm
defconfigs, they try to have the defconfig sync with the savedefconfig output,
the idea is to try to make patching the file easier, but I know this is usually
a pain.

> 2. Do not remove options just because other select them in a blind way
> - via savedefconfig. As it turns out, some developers have different
> view on dependencies and they expect that defconfig *explicitly* pulls
> out necessary functions. IOW, they can safely remove any visible
> symbol dependency assuming that defconfigs are selecting this removed
> symbol explicitly. See:
> https://patchwork.kernel.org/patch/11260361/
> (commit which removed DEBUG_FS - Marek Szyprowski will bring it back,
> I think, and Steven Rostedt answer)
>

Also makes sense, and I didn't know this. My purpose is only add support for the
options missing for Chromebooks. If patch 2 alone is fine and enough for that
purpose, that works for me, and I can just drop this patch from the series. I
only tried to do the right thing to add new options.

Thanks,
Enric

> Best regards,
> Krzysztof
>
>> Signed-off-by: Enric Balletbo i Serra <[email protected]>
>> ---
>>
>> arch/x86/configs/x86_64_defconfig | 90 +++++++++++--------------------
>> 1 file changed, 30 insertions(+), 60 deletions(-)
>>
>

2019-12-03 09:27:33

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

On Tue, 3 Dec 2019 at 17:05, Enric Balletbo i Serra
<[email protected]> wrote:
>
> Hi Krzysztof,
>
> Many thanks for your quick answer.
>
> On 3/12/19 3:15, Krzysztof Kozlowski wrote:
> > On Tue, 3 Dec 2019 at 05:18, Enric Balletbo i Serra
> > <[email protected]> wrote:
> >>
> >> make savedefconfig result in some difference, lets normalize the
> >> defconfig
> >>
> >
> > No, for two reasons:
> > 1. If running savedefconfig at all, split reordering items from
> > removal of non needed options. This way we can see exactly what is
> > being removed. This patch moves things around so it is not possible to
> > understand what exactly you're doing here...
>
> Ok, makes sense, I can do it, but if you don't really care of having the
> defconfig sync with the savedefconfig output for the below reasons or others,
> that's fine with me.
>
> The reason I send the patch is because I think that, at least on some arm
> defconfigs, they try to have the defconfig sync with the savedefconfig output,
> the idea is to try to make patching the file easier, but I know this is usually
> a pain.

Till I saw DEBUG_FS removal and Steven's answer, I was all in in such
patches from time to time. However now I think it's risky and instead
manual cleanup of non-visible symbols is better.

Best regards,
Krzysztof

2019-12-03 10:03:13

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

Hi Krzysztof,

On Tue, Dec 3, 2019 at 10:26 AM Krzysztof Kozlowski <[email protected]> wrote:
> On Tue, 3 Dec 2019 at 17:05, Enric Balletbo i Serra
> <[email protected]> wrote:
> > On 3/12/19 3:15, Krzysztof Kozlowski wrote:
> > > On Tue, 3 Dec 2019 at 05:18, Enric Balletbo i Serra
> > > <[email protected]> wrote:
> > >>
> > >> make savedefconfig result in some difference, lets normalize the
> > >> defconfig
> > >>
> > >
> > > No, for two reasons:
> > > 1. If running savedefconfig at all, split reordering items from
> > > removal of non needed options. This way we can see exactly what is
> > > being removed. This patch moves things around so it is not possible to
> > > understand what exactly you're doing here...
> >
> > Ok, makes sense, I can do it, but if you don't really care of having the
> > defconfig sync with the savedefconfig output for the below reasons or others,
> > that's fine with me.
> >
> > The reason I send the patch is because I think that, at least on some arm
> > defconfigs, they try to have the defconfig sync with the savedefconfig output,
> > the idea is to try to make patching the file easier, but I know this is usually
> > a pain.
>
> Till I saw DEBUG_FS removal and Steven's answer, I was all in in such
> patches from time to time. However now I think it's risky and instead
> manual cleanup of non-visible symbols is better.

IMHO, it's the maintainer's responsibility to refresh the defconfig(s)
regularly, from known good config(s).

I.e. you start from a known good .config, run "make oldconfig", verify
the changes by comparing the .config before/after, and run "make
savedefconfig" afterwards.

You do not run blindly "make <my>_defconfig && make savedefconfig", as
that means you'll miss out on new options you may want, and will loose
old options that are no longer selected by other options.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2019-12-04 01:17:13

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

On Tue, 3 Dec 2019 at 18:01, Geert Uytterhoeven <[email protected]> wrote:
>
> Hi Krzysztof,
>
> On Tue, Dec 3, 2019 at 10:26 AM Krzysztof Kozlowski <[email protected]> wrote:
> > On Tue, 3 Dec 2019 at 17:05, Enric Balletbo i Serra
> > <[email protected]> wrote:
> > > On 3/12/19 3:15, Krzysztof Kozlowski wrote:
> > > > On Tue, 3 Dec 2019 at 05:18, Enric Balletbo i Serra
> > > > <[email protected]> wrote:
> > > >>
> > > >> make savedefconfig result in some difference, lets normalize the
> > > >> defconfig
> > > >>
> > > >
> > > > No, for two reasons:
> > > > 1. If running savedefconfig at all, split reordering items from
> > > > removal of non needed options. This way we can see exactly what is
> > > > being removed. This patch moves things around so it is not possible to
> > > > understand what exactly you're doing here...
> > >
> > > Ok, makes sense, I can do it, but if you don't really care of having the
> > > defconfig sync with the savedefconfig output for the below reasons or others,
> > > that's fine with me.
> > >
> > > The reason I send the patch is because I think that, at least on some arm
> > > defconfigs, they try to have the defconfig sync with the savedefconfig output,
> > > the idea is to try to make patching the file easier, but I know this is usually
> > > a pain.
> >
> > Till I saw DEBUG_FS removal and Steven's answer, I was all in in such
> > patches from time to time. However now I think it's risky and instead
> > manual cleanup of non-visible symbols is better.
>
> IMHO, it's the maintainer's responsibility to refresh the defconfig(s)
> regularly, from known good config(s).
>
> I.e. you start from a known good .config, run "make oldconfig", verify
> the changes by comparing the .config before/after, and run "make
> savedefconfig" afterwards.
>
> You do not run blindly "make <my>_defconfig && make savedefconfig", as
> that means you'll miss out on new options you may want, and will loose
> old options that are no longer selected by other options.

Instead of keeping this known good config somewhere outside it should
be just equal to defconfig. There is no point to trim it with
savedefconfig and then later experience missing options (because some
option was a dependency but now is not). Instead, all visible options
(possible to select) should be explicitly defined by defconfig to
avoid what happened with DEBUG_FS. I assume here that when removing
non-visible options from dependency, all defconfigs would be updated.

Best regards,
Krzysztof

2019-12-04 01:22:52

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

On Wed, 4 Dec 2019 09:15:12 +0800
Krzysztof Kozlowski <[email protected]> wrote:

> Instead of keeping this known good config somewhere outside it should
> be just equal to defconfig. There is no point to trim it with
> savedefconfig and then later experience missing options (because some
> option was a dependency but now is not). Instead, all visible options
> (possible to select) should be explicitly defined by defconfig to
> avoid what happened with DEBUG_FS.

I totally agree.

-- Steve

2019-12-04 08:06:00

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH 1/2] x86_64_defconfig: Normalize x86_64 defconfig

Hi Krzysztof,

On Wed, Dec 4, 2019 at 2:15 AM Krzysztof Kozlowski <[email protected]> wrote:
> On Tue, 3 Dec 2019 at 18:01, Geert Uytterhoeven <[email protected]> wrote:
> > On Tue, Dec 3, 2019 at 10:26 AM Krzysztof Kozlowski <[email protected]> wrote:
> > > On Tue, 3 Dec 2019 at 17:05, Enric Balletbo i Serra
> > > <[email protected]> wrote:
> > > > On 3/12/19 3:15, Krzysztof Kozlowski wrote:
> > > > > On Tue, 3 Dec 2019 at 05:18, Enric Balletbo i Serra
> > > > > <[email protected]> wrote:
> > > > >>
> > > > >> make savedefconfig result in some difference, lets normalize the
> > > > >> defconfig
> > > > >>
> > > > >
> > > > > No, for two reasons:
> > > > > 1. If running savedefconfig at all, split reordering items from
> > > > > removal of non needed options. This way we can see exactly what is
> > > > > being removed. This patch moves things around so it is not possible to
> > > > > understand what exactly you're doing here...
> > > >
> > > > Ok, makes sense, I can do it, but if you don't really care of having the
> > > > defconfig sync with the savedefconfig output for the below reasons or others,
> > > > that's fine with me.
> > > >
> > > > The reason I send the patch is because I think that, at least on some arm
> > > > defconfigs, they try to have the defconfig sync with the savedefconfig output,
> > > > the idea is to try to make patching the file easier, but I know this is usually
> > > > a pain.
> > >
> > > Till I saw DEBUG_FS removal and Steven's answer, I was all in in such
> > > patches from time to time. However now I think it's risky and instead
> > > manual cleanup of non-visible symbols is better.
> >
> > IMHO, it's the maintainer's responsibility to refresh the defconfig(s)
> > regularly, from known good config(s).
> >
> > I.e. you start from a known good .config, run "make oldconfig", verify
> > the changes by comparing the .config before/after, and run "make
> > savedefconfig" afterwards.
> >
> > You do not run blindly "make <my>_defconfig && make savedefconfig", as
> > that means you'll miss out on new options you may want, and will loose
> > old options that are no longer selected by other options.
>
> Instead of keeping this known good config somewhere outside it should
> be just equal to defconfig. There is no point to trim it with
> savedefconfig and then later experience missing options (because some
> option was a dependency but now is not). Instead, all visible options
> (possible to select) should be explicitly defined by defconfig to
> avoid what happened with DEBUG_FS.

While I agree that would fix the issue, it would revert to the situation
before we had savedefconfig. Hence it would cause much more churn to the
checked-in defconfig files, which is the reason why savedefconfig was
introduced in the first place....

> I assume here that when removing
> non-visible options from dependency, all defconfigs would be updated.

I'm afraid that part will never happen...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds