From nobody Sat Nov 15 06:34:12 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1753770583; cv=none; d=zohomail.com; s=zohoarc; b=NaeKPuybkW7j4NATPOEc96F3aqhCNR7qfzJ0A/Pf+WtHqhRDclzUxDnxv1vazMsBilLAMY1u1ANorwL1Q4G6CIU2nNehJveqg8c9mk5wWTshQ4+C4oEs891ooPUEEqyYRdjKEquoJM+oIoooF8OAMfjeRJGb/11xA08iQfgvURA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753770583; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=L2jQbhDYe70OrjPRbdKoIbFczElrYT+WKl2Ys0IBseY=; b=RaStx2whwv1TbmNf6DvrW7kqOOHRaunoF2y6tfJGGV+hvXQIKThT6j2z6elI6ToYPklLT1OPiZQQK4cCNgVbOAoI4RV3K6yCNXtCmF46a2evqKQFzKjCu3+0BiUrXg/TmdC8AYJQdKck8LR7/CRh0tt3psqvi5HF5IpLFgN4o08= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753770583013643.7677493104669; Mon, 28 Jul 2025 23:29:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugdq3-00036i-63; Tue, 29 Jul 2025 02:29:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ugdpu-0002nO-Rx for qemu-devel@nongnu.org; Tue, 29 Jul 2025 02:29:20 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ugdpn-0007gV-OZ for qemu-devel@nongnu.org; Tue, 29 Jul 2025 02:29:18 -0400 Received: from fmviesa006.fm.intel.com ([10.60.135.146]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2025 23:29:08 -0700 Received: from lxy-clx-4s.sh.intel.com ([10.239.48.52]) by fmviesa006.fm.intel.com with ESMTP; 28 Jul 2025 23:29:07 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1753770551; x=1785306551; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=lR/YY0/aX4syEVym2+itHRV8YlPReKbeqO9r091K3hk=; b=ASgCcKaiWgaK21WjtaoG4p02V5JK1E8STm55jEEO35x8BNxc081q/EJQ bwnnGQrec920eB9+biHEOqNCb74zrUWa14Yy6ORlHVf/gA1pZlL7M3ZFl LE7uSNcZAAqONPXc0JYE9jmGdELgUQ1kVnQ/I1LWc4UsdsQ5MfNNmLVNb twPdnhnj2q4Y/XtWQk51FLhdVC8IWqbmQbifJt2XpXP0bqLMnwTyH0wEB 5M/GFT7tkiBjYRmDpWJgBRq8v8vVaSP6Xb/0lkluY8y4BH3CSiwEP6wI+ JY9hNvOM3Hw10L52iUBHcOwSEqhXr6TqIRVTQgzPsTSGmr4NtPORxBowQ Q==; X-CSE-ConnectionGUID: 7g9biKZZRRCdU9h4M1kc1Q== X-CSE-MsgGUID: 5vRIjW3HR1KnFuu6R0sWtA== X-IronPort-AV: E=McAfee;i="6800,10657,11505"; a="59854973" X-IronPort-AV: E=Sophos;i="6.16,348,1744095600"; d="scan'208";a="59854973" X-CSE-ConnectionGUID: T36iCGCIT9WOYuPdb8zdmQ== X-CSE-MsgGUID: TnrKY6jOQ8ir4pUNpfDEFg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,348,1744095600"; d="scan'208";a="162492678" From: Xiaoyao Li To: Paolo Bonzini Cc: Marcelo Tosatti , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Xiaoyao Li , Chenyi Qiang , qemu-devel@nongnu.org Subject: [PATCH 1/2] i386/kvm: Get X86MachineState in kvm_arch_init() without the cast check Date: Tue, 29 Jul 2025 14:20:13 +0800 Message-ID: <20250729062014.1669578-2-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250729062014.1669578-1-xiaoyao.li@intel.com> References: <20250729062014.1669578-1-xiaoyao.li@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=192.198.163.12; envelope-from=xiaoyao.li@intel.com; helo=mgamail.intel.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.299, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1753770585039116600 Content-Type: text/plain; charset="utf-8" Commit 8f54bbd0b4d9 ("x86: Check for machine state object class before typecasting it") added back the object_dynamic_cast() check before casting MachineState to X86MachineState. And commit 035d1ef26565 ("i386: Add ratelimit for bus locks acquired in guest") followed it. The reason to check object_dynamic_cast(OBJECT(ms), TYPE_PC_MACHINE) before commit 8f54bbd0b4d9 was that smm was not supported for microvm machine at that time. But after commit 8f54bbd0b4d9, smm is supported for all x86 machines (both pc and microvm). And since it's the target-specifc implementation of kvm_arch_init() in target/i386/kvm/kvm.c, I don't see how it would be called for other machines than x86machine, and why the check of object_dynamic_cast() is needed. Drop the object_dynamic_cast() check and simplify the code. Signed-off-by: Xiaoyao Li Reviewed-by: Chenyi Qiang Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/i386/kvm/kvm.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 369626f8c8d7..d145ad49e4e5 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -3230,6 +3230,7 @@ static int kvm_vm_enable_energy_msrs(KVMState *s) =20 int kvm_arch_init(MachineState *ms, KVMState *s) { + X86MachineState *x86ms =3D X86_MACHINE(ms); int ret; struct utsname utsname; Error *local_err =3D NULL; @@ -3311,8 +3312,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } =20 if (kvm_check_extension(s, KVM_CAP_X86_SMM) && - object_dynamic_cast(OBJECT(ms), TYPE_X86_MACHINE) && - x86_machine_is_smm_enabled(X86_MACHINE(ms))) { + x86_machine_is_smm_enabled(x86ms)) { smram_machine_done.notify =3D register_smram_listener; qemu_add_machine_init_done_notifier(&smram_machine_done); } @@ -3326,18 +3326,14 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } } =20 - if (object_dynamic_cast(OBJECT(ms), TYPE_X86_MACHINE)) { - X86MachineState *x86ms =3D X86_MACHINE(ms); - - if (x86ms->bus_lock_ratelimit > 0) { - ret =3D kvm_vm_enable_bus_lock_exit(s); - if (ret < 0) { - return ret; - } - ratelimit_init(&bus_lock_ratelimit_ctrl); - ratelimit_set_speed(&bus_lock_ratelimit_ctrl, - x86ms->bus_lock_ratelimit, BUS_LOCK_SLICE_= TIME); + if (x86ms->bus_lock_ratelimit > 0) { + ret =3D kvm_vm_enable_bus_lock_exit(s); + if (ret < 0) { + return ret; } + ratelimit_init(&bus_lock_ratelimit_ctrl); + ratelimit_set_speed(&bus_lock_ratelimit_ctrl, + x86ms->bus_lock_ratelimit, BUS_LOCK_SLICE_TIME= ); } =20 if (kvm_check_extension(s, KVM_CAP_X86_NOTIFY_VMEXIT)) { --=20 2.43.0 From nobody Sat Nov 15 06:34:12 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1753770564; cv=none; d=zohomail.com; s=zohoarc; b=bY7hy6jMHLtf4t/E9YcqoeMjnEGl6NrpB6Ej+p3a70tVytrIU9WYANobc6v+tXHFbU2K7W2+RTMPCDIeXtg1OyjDV7Db8mid+VZmL88/JAGvfUCIF+7cpAB1a5Jf122bgeDvr3zt3SZMCcZLkOdiLzAaQCfjKF+TlJ4SkDH7+AA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753770564; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oZexey4uBgww3KFGgBBF26jEZmpLBH7zL+xD5rE+d7s=; b=U6X6zONGjenRLJeyfo+ZKA4Q7KsrJwXPys4JGxcHbUtSKyg9MgYO7VyVOrP8bzx5cTviVpmSZjV48KVl3kn/2JWZekbKJLjoNA1zILYGQVm4gzBziEixZCITGp7UlkkQhwRWwOBKM7MSe9buZuIycuniXLymtS9MHJiznoVbHrc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@intel.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1753770564360518.3665667717054; Mon, 28 Jul 2025 23:29:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugdpt-0002XD-TU; Tue, 29 Jul 2025 02:29:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ugdpq-0002Fd-7B for qemu-devel@nongnu.org; Tue, 29 Jul 2025 02:29:14 -0400 Received: from mgamail.intel.com ([192.198.163.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ugdpn-0007gk-Ok for qemu-devel@nongnu.org; Tue, 29 Jul 2025 02:29:13 -0400 Received: from fmviesa006.fm.intel.com ([10.60.135.146]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jul 2025 23:29:10 -0700 Received: from lxy-clx-4s.sh.intel.com ([10.239.48.52]) by fmviesa006.fm.intel.com with ESMTP; 28 Jul 2025 23:29:08 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1753770551; x=1785306551; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=72OAhHn3J20xzmEDXX9ginwaG9Aopaxd4L/E5HPW3SI=; b=inS4xoh8vw3gD9O8WaNLdNZSxn+p7JCumdjn7wAAQl9dkz0roQ8+Uyj/ hXnZhS5rZtKg63B4SHVJ7qPtvRqshQKVWQQpexXfXEITd8ZdCpkEzhg8Y V8egSiNwb5t5SgXqYVAMjhwD07gGaGHoD/rooYh/+Nuev1PSskZDdxIbv SZun9+V6Ym8436TVOGxajuMVpAT3WNXAxw+u57JqwwSd7exVlrcKzuEzR rOMJcA+J8n/DM3CRDFL4yfuTX1ih9D6y2Q7sxLWWBkrop6Bp65p0waJi/ 2UqaH6rzxI7CWeTpoKhx6U5UhiTkOu+ZVrK9PvOwlXikGF1Sc6ZjdERcB Q==; X-CSE-ConnectionGUID: Lx4PiFhKQ6OfI7+/9PoqQw== X-CSE-MsgGUID: 7RlLwkhBRSeCQT2lP57XkQ== X-IronPort-AV: E=McAfee;i="6800,10657,11505"; a="59854979" X-IronPort-AV: E=Sophos;i="6.16,348,1744095600"; d="scan'208";a="59854979" X-CSE-ConnectionGUID: SWJfxwcQSn6eBUIYAY2hQw== X-CSE-MsgGUID: dA0lcgUdTOy6txxwCsSQRA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,348,1744095600"; d="scan'208";a="162492697" From: Xiaoyao Li To: Paolo Bonzini Cc: Marcelo Tosatti , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Xiaoyao Li , Chenyi Qiang , qemu-devel@nongnu.org Subject: [PATCH 2/2] i386/kvm: Drop KVM_CAP_X86_SMM check in kvm_arch_init() Date: Tue, 29 Jul 2025 14:20:14 +0800 Message-ID: <20250729062014.1669578-3-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250729062014.1669578-1-xiaoyao.li@intel.com> References: <20250729062014.1669578-1-xiaoyao.li@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=192.198.163.12; envelope-from=xiaoyao.li@intel.com; helo=mgamail.intel.com X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.299, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @intel.com) X-ZM-MESSAGEID: 1753770564845116600 Content-Type: text/plain; charset="utf-8" x86_machine_is_smm_enabled() checks the KVM_CAP_X86_SMM for KVM case. No need to check KVM_CAP_X86_SMM specifically. One benefit of checking it specifically is that it can return early when KVM_CAP_X86_SMM is not supported. But considering KVM_CAP_X86_SMM was added in KVM 10 year ago, it's unlikely the case. So just drop the check of KVM_CAP_X86_SMM to simplify the code. Signed-off-by: Xiaoyao Li --- target/i386/kvm/kvm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index d145ad49e4e5..92025b8fcae9 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -3311,8 +3311,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) return ret; } =20 - if (kvm_check_extension(s, KVM_CAP_X86_SMM) && - x86_machine_is_smm_enabled(x86ms)) { + if (x86_machine_is_smm_enabled(x86ms)) { smram_machine_done.notify =3D register_smram_listener; qemu_add_machine_init_done_notifier(&smram_machine_done); } --=20 2.43.0