On Wed, Feb 10 2021 at 19:39, Hikaru Nishida wrote: > From: Hikaru Nishida <hikalium@xxxxxxxxxxxx> > > This adds a sysfs interface /sys/kernel/boottime_adj to enable advancing > CLOCK_BOOTTIME from the userspace without actual susupend/resume cycles. > > This gives a way to mitigate CLOCK_BOOTTIME divergence between guest > and host on virtualized environments after suspend/resume cycles on > the host. > > We observed an issue of a guest application that expects there is a gap > between CLOCK_BOOTTIME and CLOCK_MONOTONIC after the device is suspended > to detect whether the device went into suspend or not. > Since the guest is paused instead of being actually suspended during the > host's suspension, guest kernel doesn't advance CLOCK_BOOTTIME correctly > and there is no way to correct that. > > To solve the problem, this change introduces a way to modify a gap > between those clocks and align the timer behavior to host's one. That's not a solution, that's a bandaid and just creating a horrible user space ABI which we can't get rid off anymore. The whole approach of virt vs. pausing and timekeeping is busted as I pointed out several times before. Just papering over it with random interfaces which fiddle with the timekeeping internals is not going to happen. Thanks, tglx