On 07.03.22 11:38, Peter Zijlstra wrote:
On Mon, Mar 07, 2022 at 11:06:46AM +0100, Juergen Gross wrote:diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c index 4420499f7bb4..a1f179ed39bf 100644 --- a/arch/x86/kernel/paravirt.c +++ b/arch/x86/kernel/paravirt.c @@ -145,6 +145,15 @@ DEFINE_STATIC_CALL(pv_sched_clock, native_sched_clock); void paravirt_set_sched_clock(u64 (*func)(void)) { + /* + * Anything with ART on promises to have sane TSC, otherwise the whole + * ART thing is useless. In order to make ART useful for guests, we + * should continue to use the TSC. As such, ignore any paravirt + * muckery. + */ + if (cpu_feature_enabled(X86_FEATURE_ART)) + return; + static_call_update(pv_sched_clock, func); }NAK, this will break live migration of a guest coming from a host without this feature.I thought the whole live-migration nonsense made sure to equalize crud like that. That is, then don't expose ART to the guest.
Oh, right. I managed to confuse host-side and guest-side usage. Sorry for the noise. Juergen
Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature