[systemd-devel] Antw: [EXT] Re: [systemd‑devel] version bump of minimal kernel version supported by systemd?

Lennart Poettering lennart at poettering.net
Fri Apr 1 12:18:41 UTC 2022


On Fr, 01.04.22 13:54, Greg Kroah-Hartman (gregkh at linuxfoundation.org) wrote:

> > While it is true that the syscall interface is kept reasonably stable,
> > almost everything else gets monkeyed with a lot, because a lot of
> > kernel developers only consider the syscall interface a program
> > interface. This is a problem because a *lot* of things are only
> > accessible through other means (procfs, sysfs, uevents, etc.).
> >
> > Unfortunately, that means that in practice, the kernel interfaces that
> > userspace *must* depend on break far more than anyone likes.
>
> The above example is an interesting case.  A new feature was added, was
> around for a while, and a few _years later_ it was found out that some

That's not quite true. The breakages were actually reported pretty
quickly to the kernel people who added the offending patches, and they
even changed some things around (an incomplete patch for udev was
posted, which we merged), but the issue was still not properly
addressed. It died down then, nothing much happened, and udev
maintainers didn't bring this up again for a while, as they had other
stuff to do. The issue became more and more visible though as more
subsystems in the kernel started generating these uevents, to a point
where ignoring the issue wasn't sustainable. At that point kernel
people were pretty dismissive though (not that they were particularly
helpful in the beginning either), partly because the change was in now
for so long. So we reworked how udev worked.

> people had userspace "scripts" that broke because the feature was
> added.

nah, this broke C code all over the place, too. Not just "scripts".

I am not even disagreeing though that bind/unbind uevents made
sense to add. I just want to correct how things happened here. There
was a general disinterest from the kernel people who broke things to
fix things, and in particular major disinterest in understanding how
udev actually works and how udev rules are used IRL. (I mean, that
early patch we got and merged literally just changed udev to drop
messages with bind/unbind entirely, thus not fixing anything, just
hiding the problem with no prospect of actually making it useful for
userspace. I figure the kernel devs involved actually cared about
Android, and not classic Linux userspace, i.e. udev.)

I know the kernel people like to carry that mantra of not breaking
userspace quite like a monstrance, but IRL it's broken all the
time. Often for good reasons, quite often also for no reason but lack
of testing. Things like that will happen. But I also think that
Windows for example is probably better at not breaking their
interfaces than Linux is.

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list