From nobody Sat Jul 25 13:16:51 2026 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 4h6lkX0MSDz6lPkg for ; Sat, 25 Jul 2026 13:16:52 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h6lkW3l0Mz3rj8 for ; Sat, 25 Jul 2026 13:16:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1784985411; 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=xnfnZfF01mbC8bSg7qXn9qMzeQ17MKUnleeWTNwIUVQ=; b=QLQxA/t4HYxDdOPaTx70PDwngm0X4ZZx/hfefgnnHl+h2F5cDtvthH5bl4nMVKIS/bA4X9 ZKd4xH03UIhwkLLiRSfGIUjLyFxriX+S9wcSd4AaZHjpVDTXGvHzygz7XRLnCBbznCIEkt grSm6y+MyLT5oL0pb9RUHn0V/KIdonOd9uA07VTo8oveUxmDXP7W6743a7HR1cI/a+2hW6 gv9ej2D2zMwXFXieeAzIatKT3hLn5clQzjcO89q+O1RG5iiTME4yfONzcrstU/NVC7W0jN Q3wB+CDSnHLIJh+3g6Z2hZ8PWFAGLkrK5X3P8/K+KNbKarUgVme/kgufMM+c3g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1784985411; a=rsa-sha256; cv=none; b=LkI+R0Tmsv609v0nGubezu/df4lkBXvkbxPiYLcSmCz5H+8rym9syA1ZBm2/fcNPvIAXVo XVxtQeOehoCNpxY2mMsL9cldYkWWGkQtpCvsKIMkDPvu6R6L3c3wgQ1QMyEV+0YZ+sMXXL bHkpgn2gv7QfPlyHckyf6B2TKna6Sgiegqc+gUdvBnitLxAeyXoTkmadPqPBdaeWtefHjD w+16OvHM4vmN+F/YfnT0xKdZg3a60YOWgfydtIjcZ8triMUhYZp2ZDyu4F8Cmy6ehzcwaS 2QV5zbnYiOZuCiCPUKQUelPWepARFf7yxwnutk2SLpghFUDxwIgjIKcorraeGg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1784985411; 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=xnfnZfF01mbC8bSg7qXn9qMzeQ17MKUnleeWTNwIUVQ=; b=j1Sp65AKJgTjVMMX2T36pFjNwvW7TH7yby3WyFxTe+RKVvi4avVDI/FVO4wqB3bbpHddGw /5gdLk2XsbUSinP2fZtxWo0yJ0ZMO9H9pTK5FgDjiYp8r6HbtyKu5US1MLg23pbvqcehc+ yShiEj3778oFskLC0u+r9tQBiWe/jLyxd/2j2HsBJLFYga9xiXILLmDDToBEDGECtsXQ08 q6IOzBjCTDbSxEsDep7cMZJbLB/2EWFm/25/3IYlq2CssJOrv0maXmdJan6v2eTMDuZh9A ua30CdL+xJhIruylKVSgavEUQPV6KS8l3pZJKdNOZUW96HAfDRyrKZYpVIKlFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h6lkW2Yn3zf3h for ; Sat, 25 Jul 2026 13:16:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27035 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 25 Jul 2026 13:16:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: ShengYi Hung Subject: git: 493676d3b271 - stable/15 - kvm: Support non-default CPUID leaf 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: aokblast X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 493676d3b2717c12ee09d84a5b73758f75a66278 Auto-Submitted: auto-generated Date: Sat, 25 Jul 2026 13:16:51 +0000 Message-Id: <6a64b743.27035.4c5559dc@gitrepo.freebsd.org> The branch stable/15 has been updated by aokblast: URL: https://cgit.FreeBSD.org/src/commit/?id=493676d3b2717c12ee09d84a5b73758f75a66278 commit 493676d3b2717c12ee09d84a5b73758f75a66278 Author: ShengYi Hung AuthorDate: 2026-07-10 09:21:11 +0000 Commit: ShengYi Hung CommitDate: 2026-07-25 13:13:24 +0000 kvm: Support non-default CPUID leaf KVM does not always use 0x40000000 as its CPUID base. For example, QEMU adds a 0x100 offset when nested virtualization is detected and the host exposes Hyper-V enlightenment hints. To accommodate this behavior, switch the detection logic to use the CPUID leaf returned by do_cpuid(), making the implementation more flexible. See: https://github.com/qemu/qemu/blob/master/target/i386/kvm/kvm.c#L2300 Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D58146 (cherry picked from commit 86691d52a6d3796ad36ba474cf0a9493f6d99202) --- sys/x86/include/kvm.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/x86/include/kvm.h b/sys/x86/include/kvm.h index 83dd20fa8d23..5414075f89d6 100644 --- a/sys/x86/include/kvm.h +++ b/sys/x86/include/kvm.h @@ -45,7 +45,7 @@ #include #define KVM_CPUID_SIGNATURE 0x40000000 -#define KVM_CPUID_FEATURES_LEAF 0x40000001 +#define KVM_CPUID_FEATURES_LEAF(base) ((base) + 1) #define KVM_FEATURE_CLOCKSOURCE 0x00000001 #define KVM_FEATURE_CLOCKSOURCE2 0x00000008 @@ -63,8 +63,7 @@ static inline bool kvm_cpuid_features_leaf_supported(void) { return (vm_guest == VM_GUEST_KVM && - KVM_CPUID_FEATURES_LEAF > hv_base && - KVM_CPUID_FEATURES_LEAF <= hv_high); + KVM_CPUID_FEATURES_LEAF(hv_base) <= hv_high); } static inline void @@ -73,7 +72,7 @@ kvm_cpuid_get_features(u_int *regs) if (!kvm_cpuid_features_leaf_supported()) regs[0] = regs[1] = regs[2] = regs[3] = 0; else - do_cpuid(KVM_CPUID_FEATURES_LEAF, regs); + do_cpuid(KVM_CPUID_FEATURES_LEAF(hv_base), regs); } #endif /* !_X86_KVM_H_ */