From nobody Sat Jan 15 01:30:34 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 527571943AF5; Sat, 15 Jan 2022 01:30:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4JbLG26yRMz3KyD; Sat, 15 Jan 2022 01:30:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1642210235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HvxtOhS0rtKg6Xz20BviAn3r7F5f1x1N+qdsj/OkzJA=; b=UKKh+wxuj6zI6hurmS0AukLkMZxGsDiKToHU4o6QiN8wW27KmccpjrUwZgBc9ZHsNOkHI2 uMA33WPgTXS6LycVDCJDq6SokFednPDqBp3zAlo5z4Iccu2wkydUaKrDWTBCB8XIMK5rb2 2izLC0A4e/c3iGW98zqy5T/9oG7XWY85JjcnNLdQRXbOaZ/6Mpn0yMumdGmrmxwhkO++by VhQLUBFAqvQ6pHD+CHSuW/J/bORT/OXqkpQqIbxFeTULwCZRmSVAq2qaJweYOwyEVGzEbX /unT7JEHGuMvvr7eCh+vwaQf9h3U2dAqs9fM1lBmELxv4QesVZqRGgXl89b4eA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A48F91E605; Sat, 15 Jan 2022 01:30:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 20F1UYiw083092; Sat, 15 Jan 2022 01:30:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 20F1UYvv083091; Sat, 15 Jan 2022 01:30:34 GMT (envelope-from git) Date: Sat, 15 Jan 2022 01:30:34 GMT Message-Id: <202201150130.20F1UYvv083091@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Colin Percival Subject: git: fd980feb574d - main - Detect CPU type before asking VMWare for TSC freq List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fd980feb574d0924918b42cd449cedf557dfb9e0 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1642210235; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HvxtOhS0rtKg6Xz20BviAn3r7F5f1x1N+qdsj/OkzJA=; b=Aq9/hV7Zuy99M+xVvSTDa3y9UOTfPL/yIxqOT4p9aJKdYBmvWKt6tsT8OqeaAYdwDexYIS T+xsWdh88wSvvrUfdLMv9myZ8TY+klEq1wWYEz+Uf7HedXDSV9e+hyOiFpBWaze80NNvJt RgMv1P5j7MuV9zPq9lq2iCKGQXe3QOQFQAvU9vBNAhzrXyR2/3MJll01KyLMTLHwIBRRMu D9jnD3zxFebSbnJICWHIayRDn/Kw37TH2cbVGv/24VCuh3RMGNIfoGXh/71hWeJXAjgE6L BX7jsNi5pHZX7amLXxGObXRibJ8lXvxBDwRik6ZXO2psQsiftgWZAy6Nzbtwrw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1642210235; a=rsa-sha256; cv=none; b=FAEjas8Om1WuU39u11A8vPhbUYDkRakPcPDw4GnTnEguX9M1OoVOeQgcgliIsvrrmzpg05 VREXS2J5RZppO5YVj5bRgOAlQMXNo4nSwvBeKA71Dez1Rt8e5iSFrr+Ng9NzQr595P60t4 D6lDJx0BgNFfn2/dW+2+RVah6QZGF13FrdYgmVveMKMQOWD700K5ghgHi/Xfu50rGXH85+ z4bHO0GE1MxjtK7RGxbiFlKBilSiYTI0wP9myYy2eaUN/h3r0IOhPtDQjwudvQJhKORoRt 4AG8CbCVFYRl/EecrLg36KvVxUb3wAyKJoJJVi3ttKc2i3W1G8CRjmNY2dvAfA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=fd980feb574d0924918b42cd449cedf557dfb9e0 commit fd980feb574d0924918b42cd449cedf557dfb9e0 Author: Colin Percival AuthorDate: 2022-01-04 07:00:39 +0000 Commit: Colin Percival CommitDate: 2022-01-15 01:30:17 +0000 Detect CPU type before asking VMWare for TSC freq This allows us to set tsc_is_invariant and select appropriately fenced versions of RDTSC based on the CPU type. Reviewed by: markj Sponsored by: https://www.patreon.com/cperciva --- sys/x86/x86/tsc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/sys/x86/x86/tsc.c b/sys/x86/x86/tsc.c index fa21d9c51fcb..75c452f365cf 100644 --- a/sys/x86/x86/tsc.c +++ b/sys/x86/x86/tsc.c @@ -134,7 +134,6 @@ tsc_freq_vmware(void) if (regs[1] != UINT_MAX) tsc_freq = regs[0] | ((uint64_t)regs[1] << 32); } - tsc_is_invariant = 1; tsc_early_calib_exact = 1; } @@ -268,11 +267,6 @@ probe_tsc_freq(void) tsc_perf_stat = 1; } - if (vm_guest == VM_GUEST_VMWARE) { - tsc_freq_vmware(); - return; - } - switch (cpu_vendor_id) { case CPU_VENDOR_AMD: case CPU_VENDOR_HYGON: @@ -311,6 +305,11 @@ probe_tsc_freq(void) break; } + if (vm_guest == VM_GUEST_VMWARE) { + tsc_freq_vmware(); + return; + } + if (tsc_freq_cpuid(&tsc_freq)) { /* * If possible, use the value obtained from CPUID as the initial