Please revert the commit 5c899e1bcda02c755a5327353ed66f0768771644.
How to verify vDSO is working: "strace date 2>&1 | grep time" should not show the time related syscalls, e.g. clock_gettime()
With 5.4.0-1075-azure and newer, I see the time related syscalls.
****************************************************************
More info:
The buggy commit 5c899e1bcda02c755a5327353ed66f0768771644 was backported from the mainline commit:
e4ab4658f1cf ("clocksource/drivers/hyper-v: Handle vDSO differences inline")
but due to the differences between the mainline kernel and the 5.4.0-107x-azure kernel, we actually should not simply remove hv_set_clocksource_vdso().
FWIW, the mainline commit is actually buggy and is fixed by this later mainline path:
clocksource/drivers/hyper-v: Re-enable VDSO_CLOCKMODE_HVCLOCK on X86
Mohammed reports (https://bugzilla.kernel.org/show_bug.cgi?id=213029)
the commit e4ab4658f1cf ("clocksource/drivers/hyper-v: Handle vDSO
differences inline") broke vDSO on x86. The problem appears to be that
VDSO_CLOCKMODE_HVCLOCK is an enum value in 'enum vdso_clock_mode' and
'#ifdef VDSO_CLOCKMODE_HVCLOCK' branch evaluates to false (it is not
a define).
Use a dedicated HAVE_VDSO_CLOCKMODE_HVCLOCK define instead.
SRU Justification
[Impact] /git.launchpad. net/~canonical- kernel/ ubuntu/ +source/ linux-azure/ +git/bionic/ commit/ ?h=Ubuntu- azure-5. 4-5.4.0- 1075.78_ 18.04.1& id=5c899e1bcda0 2c755a5327353ed 66f0768771644
vDSO works with the 5.4.0-1074-azure kernel, but is broken in 5.4.0-1075-azure and newer due to this commit
https:/
Please revert the commit 5c899e1bcda02c7 55a5327353ed66f 0768771644.
How to verify vDSO is working: "strace date 2>&1 | grep time" should not show the time related syscalls, e.g. clock_gettime()
With 5.4.0-1075-azure and newer, I see the time related syscalls.
******* ******* ******* ******* ******* ******* ******* ******* ******* * 55a5327353ed66f 0768771644 was backported from the mainline commit: drivers/ hyper-v: Handle vDSO differences inline") clocksource_ vdso().
More info:
The buggy commit 5c899e1bcda02c7
e4ab4658f1cf ("clocksource/
but due to the differences between the mainline kernel and the 5.4.0-107x-azure kernel, we actually should not simply remove hv_set_
FWIW, the mainline commit is actually buggy and is fixed by this later mainline path:
commit 3486d2c9be652a3 1033363bdd50391 b0c8a8fe21
Author: Vitaly Kuznetsov <email address hidden>
Date: Thu May 13 09:32:46 2021 +0200
clocksource/ drivers/ hyper-v: Re-enable VDSO_CLOCKMODE_ HVCLOCK on X86
Mohammed reports (https:/ /bugzilla. kernel. org/show_ bug.cgi? id=213029) drivers/ hyper-v: Handle vDSO HVCLOCK is an enum value in 'enum vdso_clock_mode' and HVCLOCK' branch evaluates to false (it is not
the commit e4ab4658f1cf ("clocksource/
differences inline") broke vDSO on x86. The problem appears to be that
VDSO_CLOCKMODE_
'#ifdef VDSO_CLOCKMODE_
a define).
Use a dedicated HAVE_VDSO_ CLOCKMODE_ HVCLOCK define instead.
Fixes: e4ab4658f1cf ("clocksource/ drivers/ hyper-v: Handle vDSO differences inline")
Reported-by: Mohammed Gamal <email address hidden>
Suggested-by: Thomas Gleixner <email address hidden>
Signed-off-by: Vitaly Kuznetsov <email address hidden>
Signed-off-by: Thomas Gleixner <email address hidden>
Reviewed-by: Michael Kelley <email address hidden>
Link: https://<email address hidden>
PS, Ubunt 20.04’s 5.13.0-1026-azure is not affected.
After some discussion it was decided that the revert is the solution.
[Test Case]
strace date 2>&1 | grep time
also Microsoft tested
[Where things could go wrong]
vDSO entry point could stop working altogether
[Other Info]
SF: #00338309