Re: 4.18-rc* regression: x86-32 troubles (with timers?)

From: Arnd Bergmann
Date: Wed Jul 04 2018 - 17:02:23 EST


On Wed, Jul 4, 2018 at 1:41 PM, Meelis Roos <mroos@xxxxxxxx> wrote:
> I tried 4.18.0-rc1-00023-g9ffc59d57228 and now
> 4.18.0-rc3-00113-gfc36def997cf on a 32-bit server and then some other
> 32-bit machines, and got half-failed bootup - kernel and userspace come
> up but some services fail to start, including network and
> systemd-journald:
>
> systemd-journald[85]: Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at ../src/basic/time-util.c:53, function now(). Aborting.
>
> I then tried multiple other machines. All x86-64 machines seem
> unaffected, some x86-32 machines are affected (Athlon with AMD750
> chipset, Fujitsu RX100-S2 with P4-3.4, and P4 with Intel 865 chipset),
> some very similar x86-32 machines are unaffected. I have different
> customized kernel configuration on them, so far I have not pinpointed
> any configuration option to be at fault.
>
> All machines run Debian unstable.
>
> 4.17.0 was working fine.
>
> Will continue with bisecting between 4.17.0 and
> 4.18.0-rc1-00023-g9ffc59d57228.

That does sound like it is related to my patches indeed. If you are not
yet done bisecting, please checkout commit e27c49291a7f ("x86: Convert
x86_platform_ops to timespec64") before you try anything else, that
one is the top of the branch with my changes. If that fails, the bisection
will be much quicker. Unfortunately I don't see anything right away,
and haven't come across that bug in my own testing using Debian Stretch
in an x86-32 qemu.

Arnd