Message ID | 20231030063652.68675-13-nikunj@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Secure TSC support for SNP guests | expand |
On 10/30/23 01:36, Nikunj A Dadhania wrote: > For AMD SNP guests having Secure TSC enabled, skip using the kvmclock. > The guest kernel will fallback and use Secure TSC based clocksource. > > Signed-off-by: Nikunj A Dadhania <nikunj@amd.com> > --- > arch/x86/kernel/kvmclock.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c > index fb8f52149be9..779e7311fa6f 100644 > --- a/arch/x86/kernel/kvmclock.c > +++ b/arch/x86/kernel/kvmclock.c > @@ -288,7 +288,7 @@ void __init kvmclock_init(void) > { > u8 flags; > > - if (!kvm_para_available() || !kvmclock) > + if (!kvm_para_available() || !kvmclock || cc_platform_has(CC_ATTR_GUEST_SECURE_TSC)) And is setting X86_FEATURE_TSC_RELIABLE, as Dave Hansen suggests, enough to prevent usage of kvmclock? There was a discussion here: https://lore.kernel.org/lkml/20230808162320.27297-1-kirill.shutemov@linux.intel.com/ Thanks, Tom > return; > > if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE2)) {
On 10/31/2023 2:30 AM, Tom Lendacky wrote: > On 10/30/23 01:36, Nikunj A Dadhania wrote: >> For AMD SNP guests having Secure TSC enabled, skip using the kvmclock. >> The guest kernel will fallback and use Secure TSC based clocksource. >> >> Signed-off-by: Nikunj A Dadhania <nikunj@amd.com> >> --- >> arch/x86/kernel/kvmclock.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c >> index fb8f52149be9..779e7311fa6f 100644 >> --- a/arch/x86/kernel/kvmclock.c >> +++ b/arch/x86/kernel/kvmclock.c >> @@ -288,7 +288,7 @@ void __init kvmclock_init(void) >> { >> u8 flags; >> - if (!kvm_para_available() || !kvmclock) >> + if (!kvm_para_available() || !kvmclock || cc_platform_has(CC_ATTR_GUEST_SECURE_TSC)) > > And is setting X86_FEATURE_TSC_RELIABLE, as Dave Hansen suggests, enough > to prevent usage of kvmclock? No that wasn't sufficient. kvmclock was always selected before SecureTSC even when X86_FEATURE_TSC_RELIABLE was selected. > > There was a discussion here: > https://lore.kernel.org/lkml/20230808162320.27297-1-kirill.shutemov@linux.intel.com/ > > Thanks, > Tom Regards Nikunj
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c index fb8f52149be9..779e7311fa6f 100644 --- a/arch/x86/kernel/kvmclock.c +++ b/arch/x86/kernel/kvmclock.c @@ -288,7 +288,7 @@ void __init kvmclock_init(void) { u8 flags; - if (!kvm_para_available() || !kvmclock) + if (!kvm_para_available() || !kvmclock || cc_platform_has(CC_ATTR_GUEST_SECURE_TSC)) return; if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE2)) {
For AMD SNP guests having Secure TSC enabled, skip using the kvmclock. The guest kernel will fallback and use Secure TSC based clocksource. Signed-off-by: Nikunj A Dadhania <nikunj@amd.com> --- arch/x86/kernel/kvmclock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)