Re: [RFC] CONFIG_FORCE_MINIMALLY_SANE_CONFIG=y (was: Re: [RFC PATCH] x86/kconfig: Sanity-check config file during oldconfig)

From: Ingo Molnar
Date: Tue Jan 19 2016 - 04:14:26 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Tue, Jan 19, 2016 at 09:20:22AM +0100, Ingo Molnar wrote:
> > + # newer systemd silently relies on the presence of the epoll system call:
> > + select EPOLL
> > + select ANON_INODES
> > +
> > + # newer systemd silently hangs durig early init without these:
> > + select PROC_SYSCTL
> > + select SYSCTL
> > + select POSIX_MQUEUE
> > + select POSIX_MQUEUE_SYSCTL
> > +
> > + # systemd needs this syscall:
> > + select FHANDLE
> > +
> > + # systemd needs devtmpfs: "systemd[1]: Failed to mount devtmpfs at /dev: No such device"
> > + select DEVTMPFS
> > +
> > + # systemd needs tmpfs: "systemd[1]: Failed to mount tmpfs at /sys/fs/cgroup: No such file or directory"
> > + select SHMEM
> > + select TMPFS
> > +
> > + # systemd needs timerfd syscalls: "[ 8.198625] systemd[1]: Failed to create timerfd: Function not implemented^"
> > + select TIMERFD
> > +
> > + # systemd needs signalfd support: "[ 45.536725] systemd[1]: Failed to allocate manager object: Function not implemented"
> > + select SIGNALFD
> > +
> > + # systemd hangs during bootup without cgroup support:
> > + select CGROUPS
> > +
> > + # systemd fails during bootup without this option, with a nonsensical message: "[DEPEND] Dependency failed for File System Check on /dev/sda1."
> > + select FILE_LOCKING
> > +
> > + # systemd fails during bootup without this option:
> > + select FSNOTIFY
> > + select INOTIFY_USER
>
> > And yes, many of these options are members of the 'SystemD debuggability Hall Of
> > Shame'... It cost me many, many days of painful config-bisection to figure the
> > often obscure dependencies out, so we might as well upstream this information.
> >
> > Many braincells died to bring us this information!
>
> So why not group those under CONFIG_SYSTEMD_BLOWS? I still dont have a
> machine with that turd on.

I'd definitely (try to) list the reasons for each quirk in the Kconfig lines (as I
did above), but I'd still keep a single generic option not tied to systemd in
particular, for the following reasons:

- I am using many systemd systems, so the quirks are naturally mostly systemd
related. There might be more non-systemd quirks that I never triggered
personally. They can be added once people trigger them.

- Also, even that considered, not all of the options I listed are systemd quirks,
as I still have a single (albeit simple) non-systemd test machine.

- I'd like to have a single superset option that principally makes the kernel
'just work' for newbie testers - without them having to be even aware of
whether their distro version uses systemd or something else.

Thanks,

Ingo