From nobody Sat Mar 28 05:56:32 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 4fjRbN5mqTz6XbLM for ; Sat, 28 Mar 2026 05:56:32 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fjRbN1KGLz3qlF for ; Sat, 28 Mar 2026 05:56:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774677392; 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=l+jNC/HJLBz6YZSRl3rNx/Z+KDjBnMdi9oWXXtmmJE4=; b=owKQEV2nSq6xVUaueaJK8R2ySocP5aN7Qpbo66BB2RZSv0MPF6FlHAx1+hQ0eAOygcN9kb msnK+iqe8nVXLWrRuoQDuoO7ysuWvDaNRJJR3XVfbRQjJriLwE5es9KuikHsBDENvalzBI IsT6tHrVpbK8FgYQrpNAqVyeaRcAOBY8aseXnGzy3TWoRR8jO0IIj1LYGr1zH+sc512nIt zN4Z7ylFKTUUGSkfuJrO/3VD9xUlcjLMyQ1pkU3XoZdamuoZF9vPJKN6+Q7be9dIHNqHhe 1ZzieKfxPh3nNp/F36gt6sgwK+b6wzvanuaCczDlOcBdTPkGJ7jbKoEnFFMx+Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774677392; a=rsa-sha256; cv=none; b=KMam9GwZ0OFQgcoD8ZTB+f33dxKiDgXLymosudp6yyDTzhur5PPALcFV6ZZIax4UdMChKQ pyjVYMo2n9VxnROVA9Z0e4yPHp1dgxyyR5+Lohcc+hutvN9+sae8pquIfkDmjp1yJE3Lkq DLXUs5GmWb7n2ZtA5SinykpP4jG6Vc3DRgPj5J4CL6XnNEYh7C0tAC8XiHda02PDI5P9e3 lEAZoIOJn38xaYDHNBnVyyCpFRjIObKaWnaLipqT1AKEdnGkqKtPJX2MGFipqKDxEsr/fU dItk712N/5u/sPuGTH7wcP/0m1YOQ+xC1kPP2z2scf3eydUflTErfqhFNMsKSg== 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=1774677392; 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=l+jNC/HJLBz6YZSRl3rNx/Z+KDjBnMdi9oWXXtmmJE4=; b=DYvCso4rV63j2Ee7kpMjvN4vLS+yMG1fJKO9dkTtkN4e7GzZFTZMr/H1LqpZHTzJ1m3+mE Jmbxcuc1GjsxJChfc7W2eEODsIUVgzJ+3BZV0oWrTKVd1rHZ9PQsSzE2gevxUTMWu93Gip GOKjxon2BzLhZiJUDXl+wfpgRAOPdKoqKkwOA418Ejc9FSd8xXaKkQoeMjTZnT0ezCjK0e woM9CLwPOINcKEwf8vJBhWOlxktDlXvYKdBZzmsI54ZBbOKZbSd6Sdt2SAZX1aenAGCS71 8W7hzILAXTUFRmGbBtxP3paNwiPjUu/otMftjoDUNfdDWjKoEmh7bLQSj9W6Lg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fjRbN0v1Hz1BDv for ; Sat, 28 Mar 2026 05:56:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40547 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 28 Mar 2026 05:56:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Colin Percival Subject: git: 9ab5aa3d4c78 - main - KVM: Detect Extended Destination ID support 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 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: 9ab5aa3d4c7879d5518afc7587a864ba880e7ee9 Auto-Submitted: auto-generated Date: Sat, 28 Mar 2026 05:56:32 +0000 Message-Id: <69c76d90.40547.85037f2@gitrepo.freebsd.org> The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=9ab5aa3d4c7879d5518afc7587a864ba880e7ee9 commit 9ab5aa3d4c7879d5518afc7587a864ba880e7ee9 Author: Colin Percival AuthorDate: 2026-02-22 04:09:00 +0000 Commit: Colin Percival CommitDate: 2026-03-28 05:54:35 +0000 KVM: Detect Extended Destination ID support KVM advertises support for the Extended Destination ID standard via bit 15 of the value returned in the EAX register when KVM features are queried via CPUID. Tested on: EC2 r8i.96xlarge MFC after: 3 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D55427 --- sys/x86/include/kvm.h | 1 + sys/x86/x86/local_apic.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/sys/x86/include/kvm.h b/sys/x86/include/kvm.h index fef26bde226a..83dd20fa8d23 100644 --- a/sys/x86/include/kvm.h +++ b/sys/x86/include/kvm.h @@ -49,6 +49,7 @@ #define KVM_FEATURE_CLOCKSOURCE 0x00000001 #define KVM_FEATURE_CLOCKSOURCE2 0x00000008 +#define KVM_FEATURE_MSI_EXT_DEST_ID 0x00008000 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 0x01000000 /* Deprecated: for the CLOCKSOURCE feature. */ diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c index 21934b41ea62..fb3b93e4164f 100644 --- a/sys/x86/x86/local_apic.c +++ b/sys/x86/x86/local_apic.c @@ -72,6 +72,7 @@ #include #include #include +#include #ifdef DDB #include @@ -2095,6 +2096,16 @@ SYSCTL_INT(_machdep, OID_AUTO, apic_ext_dest_id, CTLFLAG_RDTUN, &apic_ext_dest_i static void detect_extended_dest_id(void) { + u_int regs[4]; + + /* Check if we support extended destination IDs. */ + switch (vm_guest) { + case VM_GUEST_KVM: + kvm_cpuid_get_features(regs); + if (regs[0] & KVM_FEATURE_MSI_EXT_DEST_ID) + apic_ext_dest_id = 1; + break; + } } /*