From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web11.12664.1653414642706770471 for ; Tue, 24 May 2022 10:50:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=CFXenBQO; spf=pass (domain: redhat.com, ip: 170.10.133.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1653414641; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=loGG8FgGM+lU22QgvS3d5jEas+u2Q27xmBZi2Ur6Urs=; b=CFXenBQO29DI2gC+ijFUrAUbvxKMcEpe3tXJMK4B2+tyF/128bh+nuSdnYYRqIHiTyjfSX gXi5EKrlsooFBTB+W2+sxHG+wJm7ee9Lu95P3DRC2rn424pBXJlfUfjQBZvILEL2NO8cOX 3mFHsMrr0PyW66n3mzTd5wqRBkA3TWE= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-668-zvXfn_6VMgmNjMDRikDR-w-1; Tue, 24 May 2022 13:50:40 -0400 X-MC-Unique: zvXfn_6VMgmNjMDRikDR-w-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 860A7185A7BA for ; Tue, 24 May 2022 17:50:40 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (unknown [10.39.192.29]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9539D401198F; Tue, 24 May 2022 17:50:39 +0000 (UTC) Subject: Re: [PATCH 1/1] OvmfPkg: fix PcdFSBClock To: Gerd Hoffmann , devel@edk2.groups.io Cc: Pawel Polawski , Oliver Steffen References: <20220523134504.1304459-1-kraxel@redhat.com> From: "Laszlo Ersek" Message-ID: <458b6bad-9c46-92c7-0684-f3a9075dd737@redhat.com> Date: Tue, 24 May 2022 19:50:38 +0200 MIME-Version: 1.0 In-Reply-To: <20220523134504.1304459-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 05/23/22 15:45, Gerd Hoffmann wrote: > kvm FSB clock is 1GHz, not 100 MHz. Timings are off by factor 10. > Fix all affected build configurations. Not changed: Microvm and > Cloudhw (they have already have the correct value), and Xen (has > no fixed frequency, the PCD is configured at runtime by platform > initialization code). > > Fixes: c37cbc030d96 ("OvmfPkg: Switch timer in build time for OvmfPkg") Consider adding "Fixes: 44a53a3bdd9c7" too, on a separate line; commit 44a53a3bdd9c ("OvmfPkg: Introduce IntelTdxX64 for TDVF Config-B", 2022-04-02) copied the wrong setting when creating "OvmfPkg/IntelTdx/IntelTdxX64.dsc". (Obviously it needs no repost.) > Reported-by: Laszlo Ersek > Signed-off-by: Gerd Hoffmann > --- > OvmfPkg/AmdSev/AmdSevX64.dsc | 2 +- > OvmfPkg/IntelTdx/IntelTdxX64.dsc | 2 +- > OvmfPkg/OvmfPkgIa32.dsc | 2 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- > OvmfPkg/OvmfPkgX64.dsc | 2 +- > 5 files changed, 5 insertions(+), 5 deletions(-) Using "OvmfPkg/OvmfPkgX64.dsc": Tested-by: Laszlo Ersek By the way: "kvm FSB clock is 1GHz" -- where is that constant set in KVM? ... is it "target/i386/kvm/kvm.c" in QEMU: > /* From arch/x86/kvm/lapic.h */ > #define KVM_APIC_BUS_CYCLE_NS 1 > #define KVM_APIC_BUS_FREQUENCY (1000000000ULL / KVM_APIC_BUS_CYCLE_NS) FWIW, APIC_BUS_CYCLE_NS=1 goes back to historical KVM commit 97222cc83163 ("KVM: Emulate local APIC in kernel", 2007-10-13). The commit does not say anything about this particular choice. (Maybe I should look at the QEMU source from 2007 -- perhaps the KVM commit was inspired by QEMU practice back then. And now we've come full circle: the definitive constant lives in the kernel, which is where QEMU is taking it from...) ... I think these macros are pretty difficult to find, unless one knows already what they're looking for! BTW is there a chance that TCG uses a different frequency? Thanks! Laszlo > > diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc > index bead9722eab8..fc1fdb2e2297 100644 > --- a/OvmfPkg/AmdSev/AmdSevX64.dsc > +++ b/OvmfPkg/AmdSev/AmdSevX64.dsc > @@ -578,7 +578,7 @@ [PcdsDynamicDefault] > > !include OvmfPkg/OvmfTpmPcds.dsc.inc > > - gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000 > + gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 > > [PcdsDynamicHii] > !include OvmfPkg/OvmfTpmPcdsHii.dsc.inc > diff --git a/OvmfPkg/IntelTdx/IntelTdxX64.dsc b/OvmfPkg/IntelTdx/IntelTdxX64.dsc > index 00bc1255bc4e..dd8d446f4a56 100644 > --- a/OvmfPkg/IntelTdx/IntelTdxX64.dsc > +++ b/OvmfPkg/IntelTdx/IntelTdxX64.dsc > @@ -511,7 +511,7 @@ [PcdsDynamicDefault] > # Set ConfidentialComputing defaults > gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0 > > - gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000 > + gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 > > ################################################################################ > # > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index c16a840fff16..a9841cbfc3ca 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -651,7 +651,7 @@ [PcdsDynamicDefault] > gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0 > > !if $(CSM_ENABLE) == FALSE > - gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000 > + gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 > !endif > > [PcdsDynamicHii] > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index d3a80cb56892..f7949780fa38 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -659,7 +659,7 @@ [PcdsDynamicDefault] > gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0 > > !if $(CSM_ENABLE) == FALSE > - gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000 > + gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 > !endif > > [PcdsDynamicDefault.X64] > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 7b3d48aac430..1448f925b782 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -684,7 +684,7 @@ [PcdsDynamicDefault] > gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr|0 > > !if $(CSM_ENABLE) == FALSE > - gEfiMdePkgTokenSpaceGuid.PcdFSBClock|100000000 > + gEfiMdePkgTokenSpaceGuid.PcdFSBClock|1000000000 > !endif > > [PcdsDynamicHii] >