From nobody Sat Nov 15 12:47:39 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=1751271263; cv=none; d=zohomail.com; s=zohoarc; b=Y7ESF4QjuuSnRSMrQzgl3urNBW2f48inBoQ+AjtasvgMRrOoUsJALyGDz4uT8g+8PkrlhSiKuOvj07Uq/N1BlpIO0IqIbsYv2FmYjU4jyiiSHgBXAm3cdpjcGz5fKfi1+s+FeQ4aDRbVctR8cmqJoBvZKBxMttE1ZmQKDe4gfic= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751271263; 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=tXA6FkqoiJt9kdd4Ol8MyCBVN2oyBrm6uoXkES+QYF0=; b=QHaY5PbRd3yB2TpMkutQ0+3pDeH3UHR7TxD938UdNy56K2phNoE90S192vx/p9RNWxHtbtTNvaPUGY1YjlYmKa6FU+bUEyqcRNWSxjGZKP0oKmh91uM6+TSlU2hUS+nXdq4+eKu/OWbFdm0TPsvNCCu1jFKnIRhUlpuFWpyGbko= 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 175127126387734.76399185947241; Mon, 30 Jun 2025 01:14:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uW9eB-0003yz-BO; Mon, 30 Jun 2025 04:13:51 -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 1uW9eA-0003vd-24 for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:50 -0400 Received: from mgamail.intel.com ([192.198.163.15]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uW9e3-0008Fh-CM for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:49 -0400 Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2025 01:13:37 -0700 Received: from lxy-clx-4s.sh.intel.com ([10.239.48.52]) by orviesa010.jf.intel.com with ESMTP; 30 Jun 2025 01:13:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1751271223; x=1782807223; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=huJnZK6/VFdFTS+MtsTCfXogRK27ANF61hUOOHmIvh0=; b=GHKUw2Jf1g+xa8govwK9PHBcbtiflgFf5efEI+zSxNSsMW3ty61sypMb Az4mKeJtT9u6cFTXB+UPX68q87GXpj8vQicwX5CpzXQAVgf5UGD30UQi0 brn6CH1XeRyOJusYS+tV4W9bBnP55FTgB7Eo0oSJ+9mpoNY7mZ9USHOtF dr6966EIhFZ6vrvrTNQyy3KQf2ljdp61VGTp+jKplzkQj+zby1SzLoejH envGmQf1Mte4gZEec8u/eRcIJK+6+lULPfbU18xyOOjvYf7i7oXg2S6Ap BIVJfwJ6M7r6Vyh3qzqSObn+UpnwpMWOP7X0Z21jUDUHk7XrrwANe9IY/ g==; X-CSE-ConnectionGUID: 9DaoTr13QQe61R1YEw95CA== X-CSE-MsgGUID: hDs72dupTN+2eW0jbHcHnw== X-IronPort-AV: E=McAfee;i="6800,10657,11479"; a="53637397" X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="53637397" X-CSE-ConnectionGUID: KrpeSJEhTNqnmt//GeESdA== X-CSE-MsgGUID: qNkGmzTSTTaNHEGwCXxPzw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="152777285" From: Xiaoyao Li To: Paolo Bonzini Cc: Zhao Liu , Marcelo Tosatti , Richard Henderson , qemu-devel@nongnu.org, xiaoyao.li@intel.com Subject: [PATCH 1/4] i386/cpu: Use CPUID_MODEL_ID_SZ instead of hardcoded 48 Date: Mon, 30 Jun 2025 16:06:07 +0800 Message-ID: <20250630080610.3151956-2-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250630080610.3151956-1-xiaoyao.li@intel.com> References: <20250630080610.3151956-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.15; envelope-from=xiaoyao.li@intel.com; helo=mgamail.intel.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 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.999, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1751271265331116600 Content-Type: text/plain; charset="utf-8" There is already the MACRO CPUID_MODEL_ID_SZ defined in QEMU. Use it to replace all the hardcoded 48. Opportunistically fix the indentation of CPUID_VENDOR_SZ. Signed-off-by: Xiaoyao Li Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/i386/cpu.c | 8 ++++---- target/i386/cpu.h | 3 ++- target/i386/host-cpu.c | 1 - 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 0d35e95430fe..d80e57d0cc0d 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6468,11 +6468,11 @@ static char *x86_cpuid_get_model_id(Object *obj, Er= ror **errp) char *value; int i; =20 - value =3D g_malloc(48 + 1); - for (i =3D 0; i < 48; i++) { + value =3D g_malloc(CPUID_MODEL_ID_SZ + 1); + for (i =3D 0; i < CPUID_MODEL_ID_SZ; i++) { value[i] =3D env->cpuid_model[i >> 2] >> (8 * (i & 3)); } - value[48] =3D '\0'; + value[CPUID_MODEL_ID_SZ] =3D '\0'; return value; } =20 @@ -6487,7 +6487,7 @@ static void x86_cpuid_set_model_id(Object *obj, const= char *model_id, model_id =3D ""; } len =3D strlen(model_id); - memset(env->cpuid_model, 0, 48); + memset(env->cpuid_model, 0, CPUID_MODEL_ID_SZ); for (i =3D 0; i < 48; i++) { if (i >=3D len) { c =3D '\0'; diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 51e10139dfdf..b83c521d9fbb 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1159,7 +1159,8 @@ uint64_t x86_cpu_get_supported_feature_word(X86CPU *c= pu, FeatureWord w); /* PMM enabled */ #define CPUID_C000_0001_EDX_PMM_EN (1U << 13) =20 -#define CPUID_VENDOR_SZ 12 +#define CPUID_VENDOR_SZ 12 +#define CPUID_MODEL_ID_SZ 48 =20 #define CPUID_VENDOR_INTEL_1 0x756e6547 /* "Genu" */ #define CPUID_VENDOR_INTEL_2 0x49656e69 /* "ineI" */ diff --git a/target/i386/host-cpu.c b/target/i386/host-cpu.c index 7512567298bc..16c236478e2b 100644 --- a/target/i386/host-cpu.c +++ b/target/i386/host-cpu.c @@ -80,7 +80,6 @@ bool host_cpu_realizefn(CPUState *cs, Error **errp) return true; } =20 -#define CPUID_MODEL_ID_SZ 48 /** * cpu_x86_fill_model_id: * Get CPUID model ID string from host CPU. --=20 2.43.0 From nobody Sat Nov 15 12:47:39 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=1751271263; cv=none; d=zohomail.com; s=zohoarc; b=f3LYM62KVgrH/eA08w0ldD7zgBXa5cAn78/SfmkXkK0j8vzsSEDyJJKHnMqBVjshODHH1w5Upvt+OvV5TdnU2Q4e0AvXtnTWDaW3XGSwddsnHTNBZly9RJwuhnIYJuVvSN9M5yYtSVUQDz0b5wv2NCBYKwA05UjOIoo7rNDtacc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751271263; 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=baxyphS/LBC3vN7c84n5ZnbDFZuDBSLTs9xJ4YMqPaE=; b=hoxxyQz1GfaVvbQf7iPv4UE/YNndESxZtRo0crIXyIQRfJcxjsnhXp8HjzchGuu1wcZGOrtXvKC0euHJUMQOHVx5Xmt+m25byNdIODWfRaaIzlpqnCx2LDu9dKA19OUS/F3/clGbPP2rZ0AtVLuOqKUC8GsFYR03eyqdSVphTLE= 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 1751271263413446.8075213286123; Mon, 30 Jun 2025 01:14:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uW9eD-00041w-E3; Mon, 30 Jun 2025 04:13:53 -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 1uW9eB-0003yy-0P for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:51 -0400 Received: from mgamail.intel.com ([192.198.163.15]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uW9e4-0008Fu-PQ for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:50 -0400 Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2025 01:13:39 -0700 Received: from lxy-clx-4s.sh.intel.com ([10.239.48.52]) by orviesa010.jf.intel.com with ESMTP; 30 Jun 2025 01:13:38 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1751271225; x=1782807225; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=yQgKgn2Ex9EvBdQ8riuYt22CkUp1eI23OAyzDnMSZkw=; b=ZtSYHAXxnx39IJpKdDPVmGxI1BeR839YhdRex09+/UY3pxZEGEWOjUkO wDQ6/UgPdk3eSRd06P5nfLmcg0XV0aA9eHPEvWq/hMMe9E3uCc9HUWURV ZAXnIQvduio8HftKVenmfMr+A1wp0k+G2kqyBkTL1RgWCLnQNrCycaCvn WGjWo1Jiu5vouIHHwxf5d4OaI+JU2HX+IQSqSXuwMMtzkmpvQAbVk206m cZRkUiBgp0i4Vj9q6MZf7yIpIJItKjaWn6ftwOPWr8eBxxrl7PZxzQXY7 OoEwr+l4PO64lLYTgdzaHT0dvT3C7xFHOifbvJpws6FimHMQkfDt53uh8 A==; X-CSE-ConnectionGUID: m8SeCVJyQvaU8B/KY88gtQ== X-CSE-MsgGUID: 9uJZh4nuSheX2Wp27vLlIw== X-IronPort-AV: E=McAfee;i="6800,10657,11479"; a="53637401" X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="53637401" X-CSE-ConnectionGUID: TF7/saBLTPmbty4ccvWQ6g== X-CSE-MsgGUID: VmayMKPESu+teMMwxiCvqg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="152777291" From: Xiaoyao Li To: Paolo Bonzini Cc: Zhao Liu , Marcelo Tosatti , Richard Henderson , qemu-devel@nongnu.org, xiaoyao.li@intel.com Subject: [PATCH 2/4] i386: Cleanup the usage of CPUID_VENDOR_INTEL_1 Date: Mon, 30 Jun 2025 16:06:08 +0800 Message-ID: <20250630080610.3151956-3-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250630080610.3151956-1-xiaoyao.li@intel.com> References: <20250630080610.3151956-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.15; envelope-from=xiaoyao.li@intel.com; helo=mgamail.intel.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 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.999, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1751271265329116600 Content-Type: text/plain; charset="utf-8" There are code using "env->cpuid_vendor1 =3D=3D CPUID_VENDOR_INTEL_1" to check if it is Intel vcpu. Cleanup them to just use IS_INTEL_CPU() Signed-off-by: Xiaoyao Li --- target/i386/cpu.c | 2 +- target/i386/tcg/decode-new.c.inc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index d80e57d0cc0d..83858358f5ec 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -7760,7 +7760,7 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, = uint32_t count, *ecx =3D env->features[FEAT_8000_0001_ECX]; *edx =3D env->features[FEAT_8000_0001_EDX]; =20 - if (tcg_enabled() && env->cpuid_vendor1 =3D=3D CPUID_VENDOR_INTEL_= 1 && + if (tcg_enabled() && IS_INTEL_CPU(env) && !(env->hflags & HF_LMA_MASK)) { *edx &=3D ~CPUID_EXT2_SYSCALL; } diff --git a/target/i386/tcg/decode-new.c.inc b/target/i386/tcg/decode-new.= c.inc index 55216e0d2490..853b1c8bf95e 100644 --- a/target/i386/tcg/decode-new.c.inc +++ b/target/i386/tcg/decode-new.c.inc @@ -2722,14 +2722,14 @@ static void disas_insn(DisasContext *s, CPUState *c= pu) if (decode.e.check & X86_CHECK_i64) { goto illegal_op; } - if ((decode.e.check & X86_CHECK_i64_amd) && env->cpuid_vendor1= !=3D CPUID_VENDOR_INTEL_1) { + if ((decode.e.check & X86_CHECK_i64_amd) && !IS_INTEL_CPU(env)= ) { goto illegal_op; } } else { if (decode.e.check & X86_CHECK_o64) { goto illegal_op; } - if ((decode.e.check & X86_CHECK_o64_intel) && env->cpuid_vendo= r1 =3D=3D CPUID_VENDOR_INTEL_1) { + if ((decode.e.check & X86_CHECK_o64_intel) && IS_INTEL_CPU(env= )) { goto illegal_op; } } --=20 2.43.0 From nobody Sat Nov 15 12:47:39 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=1751271286; cv=none; d=zohomail.com; s=zohoarc; b=Mm8HTsc/LREUPjCXbHkSTKeozeuwS//1qLDKOUofHINXS7qfQowu4OCZ48/arQrtw9bRP+gGCKPFYL01rzEZN/PGd4hebBqUc4cbFweYeciMY4yGxMXwVdOVdHSLewgBT+2DxHQvvHgXw5ONQrnAnaYf8wTAOj/zRorfLY4JHSc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751271286; 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=i4YH6A6JiIJzCQpPBczISkke0Rsq4aRKtEJR/HxR/N4=; b=lCRGwKfehMum9cCPRX/+ghBu+bPEKLXzI8XIB5dFSI++sAxW8U+uPktgWFM16DDLaMWFrIaAchxw+C9hYCRkvGCxrHFn0AJ7sKkkkRkbUYogaM9xMXmM0ZJyDpxo2NDGuMdq4G5/e3+PCdUNbTQ4F8J4qjj4LGpR+UbHPcbA2PE= 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 1751271286199211.0613862581472; Mon, 30 Jun 2025 01:14:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uW9eC-00040W-Ef; Mon, 30 Jun 2025 04:13:52 -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 1uW9eA-0003wc-Dv for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:50 -0400 Received: from mgamail.intel.com ([192.198.163.15]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uW9e7-0008FC-8H for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:50 -0400 Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2025 01:13:41 -0700 Received: from lxy-clx-4s.sh.intel.com ([10.239.48.52]) by orviesa010.jf.intel.com with ESMTP; 30 Jun 2025 01:13:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1751271227; x=1782807227; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nCRHuUYhe42P6UuwE38kZ1hSX8NACPLufNZ+MC6x+3s=; b=FSdyjsypCD9fwhcN82UWAvZLEpO0NM2QSPOCWmlmGWx2k6VVTz5iu/wi KM5qRhWGy+TAESA/BQ0u9IdBwvCT6Bdn9LTy1/7nS1EJI5mV0/OtQwz+x R6wEx1KzVVpxAY/1ctp0CWXdopLL8pdd8aT0CyaYnX3iAXUHU0e9EnOtn R5QYkxgsrTvVD2yoW/pYMR0iC/UIRKbNz7MzOljgfhZfZ0cvtweLmEV+F sLie6TjHRAtSgcc6sBWc3+K3gCKCdnSDDWv2Let8RN41ox2ZXPd1Kkscb sHC6IooBuzuroHuxGKk8s2vvN2RZ5IrMDS2oCg+H/rYmM/ZMhLc5Z0hoo w==; X-CSE-ConnectionGUID: 8WPZonCHRDOZdnXe+A3vzw== X-CSE-MsgGUID: 7GKb5hkBQeuQCeZfC25wRA== X-IronPort-AV: E=McAfee;i="6800,10657,11479"; a="53637405" X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="53637405" X-CSE-ConnectionGUID: otzw2sJqRgSlhlujdF7OSA== X-CSE-MsgGUID: m44nY6AmR6Wkl0r5QVa0vA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="152777295" From: Xiaoyao Li To: Paolo Bonzini Cc: Zhao Liu , Marcelo Tosatti , Richard Henderson , qemu-devel@nongnu.org, xiaoyao.li@intel.com Subject: [PATCH 3/4] i386/kvm-cpu: Fix the indentation inside kvm_cpu_realizefn() Date: Mon, 30 Jun 2025 16:06:09 +0800 Message-ID: <20250630080610.3151956-4-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250630080610.3151956-1-xiaoyao.li@intel.com> References: <20250630080610.3151956-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.15; envelope-from=xiaoyao.li@intel.com; helo=mgamail.intel.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 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.999, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1751271287601116600 Content-Type: text/plain; charset="utf-8" The indentation of one of the } inside kvm_cpu_realizefn() isn'f correct. fix it. Signed-off-by: Xiaoyao Li --- target/i386/kvm/kvm-cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/kvm/kvm-cpu.c b/target/i386/kvm/kvm-cpu.c index 16bde4de01e5..6df92dc6d703 100644 --- a/target/i386/kvm/kvm-cpu.c +++ b/target/i386/kvm/kvm-cpu.c @@ -72,7 +72,7 @@ static bool kvm_cpu_realizefn(CPUState *cs, Error **errp) if (env->features[FEAT_1_ECX] & CPUID_EXT_MONITOR) { host_cpuid(5, 0, &cpu->mwait.eax, &cpu->mwait.ebx, &cpu->mwait.ecx, &cpu->mwait.edx); - } + } } if (cpu->ucode_rev =3D=3D 0) { cpu->ucode_rev =3D --=20 2.43.0 From nobody Sat Nov 15 12:47:39 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=1751271286; cv=none; d=zohomail.com; s=zohoarc; b=jW7K/CoH/oV+dR52K8yPNv6ecFc4Z0mM+ZRLfsKO+CvtHuq8iF5Xn7SeD01YYcGI++N8wrbwSAQ1iiSYsXH3kPuVxqjJcf1EChWK0+xmF7o5aszyM/E2XGtc1/my+D/LsOl+iWCjgmLq5i0Kt4rjOe8JHRYKoUuT3D9VXnMk1t4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1751271286; 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=du/nXjVkXQl9z6UB6L8V4I/+FZAsCh3Ls408DW1x/7A=; b=G8WK7HracglOR5BHCtR1RNUukv3X+ztOoGHqAD6rHoyoUSLMSfkyBbWCjffosfkZhh0CZhspiGYIaMksGPfrFwKD9rgImf+YJAGcF/JVlrLZIkr22gD0ac1ZqD+abHpnKWsjWm9aFDGPJSwlC8qt1aXsnkxWocUZaaDcgEIXP08= 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 1751271286157432.405553148055; Mon, 30 Jun 2025 01:14:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uW9eF-00042Y-9L; Mon, 30 Jun 2025 04:13:55 -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 1uW9eC-00040i-Hm for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:52 -0400 Received: from mgamail.intel.com ([192.198.163.15]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uW9eA-0008Fh-FG for qemu-devel@nongnu.org; Mon, 30 Jun 2025 04:13:52 -0400 Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa109.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2025 01:13:43 -0700 Received: from lxy-clx-4s.sh.intel.com ([10.239.48.52]) by orviesa010.jf.intel.com with ESMTP; 30 Jun 2025 01:13:41 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1751271230; x=1782807230; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wbnYOcHpb08DaNDk4xqwBS52v0jf+Fk+vZfKyddt4bk=; b=jMcgLZE5hLx3jKteij4dhAxaOhqHmyRPd0QjcLHEBKjFjJhuktBO3WuG z/CRSYg0XnzmeDvdjXazKukS/nltDboSjdJ8WG91vBoBpxhg/1Yy8PHHo WKHbkihIqgMD2TCmsfgssAewKMHX6bWrKam8xkpeGm2VnVq6YbvOFUNrf MIDcKQ/37QlSYwhbElXKWHEeTm35Fc5GsCycbi32ioGBUCSWVPLllFZQQ pX/BJ+XNRdXMt9VsZcxV3mJNNAGQjxPAEMG/HG5HZmc4uG2GY+jMQj12h gC0WTwP54+12KRMlTjsROdMdW8h9+gYn+WaOmwOM5+yD14yobNlkGh89w A==; X-CSE-ConnectionGUID: kzNr7SKRT1iL6ykjtFX4dw== X-CSE-MsgGUID: dvPhy3c7SFiE0DPXUeL7WA== X-IronPort-AV: E=McAfee;i="6800,10657,11479"; a="53637410" X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="53637410" X-CSE-ConnectionGUID: MNl0pe2VTpy75SF2gQiotg== X-CSE-MsgGUID: NZNABDqURWixCRQd3azYkw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.16,277,1744095600"; d="scan'208";a="152777301" From: Xiaoyao Li To: Paolo Bonzini Cc: Zhao Liu , Marcelo Tosatti , Richard Henderson , qemu-devel@nongnu.org, xiaoyao.li@intel.com Subject: [PATCH 4/4] i386/cpu: Unify family, model and stepping calculation for x86 CPU Date: Mon, 30 Jun 2025 16:06:10 +0800 Message-ID: <20250630080610.3151956-5-xiaoyao.li@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250630080610.3151956-1-xiaoyao.li@intel.com> References: <20250630080610.3151956-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.15; envelope-from=xiaoyao.li@intel.com; helo=mgamail.intel.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 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.999, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_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: 1751271287778116600 Content-Type: text/plain; charset="utf-8" There are multiple places where CPUID family/model/stepping info are retrieved from env->cpuid_version. Besides, the calculation of family and model inside host_cpu_vendor_fms() doesn't comply to what Intel and AMD define. For family, both Intel and AMD define that Extended Family ID needs to be counted only when (base) Family is 0xF. For model, Intel counts Extended Model when (base) Family is 0x6 or 0xF, while AMD counts EXtended MOdel when (base) Family is 0xF. Introduce generic helper functions to get family, model and stepping from the EAX value of CPUID leaf 1, with the correct calculation formula. Signed-off-by: Xiaoyao Li --- Note, for the calculation of model, it uses the same algorithm as Linux kernel that counts Extended model when (base) Family is >=3D 6. To me, this has the assumption that AMD always has a (base) Family of 0xF and Intel doens't have processor with (base) Family between (0x6, 0xF). I'm not sure about the rule on Zhaoxin and Hygon so that not sure if the contidition of base Family >=3D 6 works for them or not. For Zhaoxin, there is "YongFeng" defined in QEMU, which has Family 7 and model 11. The model 11 doesn't require the Extended model field. So I'm not sure the rule on Zhaoxin. For Hygon, there is "Dhyana" defined in QEMU, which has Family 24 and model 0. The model 0 doens't requrie the Extended model field as well. --- target/i386/cpu.c | 12 ++++-------- target/i386/cpu.h | 30 ++++++++++++++++++++++++++++++ target/i386/host-cpu.c | 6 +++--- target/i386/kvm/kvm.c | 2 +- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 83858358f5ec..51fcc8ba9867 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -6324,10 +6324,7 @@ static void x86_cpuid_version_get_family(Object *obj= , Visitor *v, CPUX86State *env =3D &cpu->env; uint64_t value; =20 - value =3D (env->cpuid_version >> 8) & 0xf; - if (value =3D=3D 0xf) { - value +=3D (env->cpuid_version >> 20) & 0xff; - } + value =3D x86_cpu_family(env->cpuid_version); visit_type_uint64(v, name, &value, errp); } =20 @@ -6365,8 +6362,7 @@ static void x86_cpuid_version_get_model(Object *obj, = Visitor *v, CPUX86State *env =3D &cpu->env; uint64_t value; =20 - value =3D (env->cpuid_version >> 4) & 0xf; - value |=3D ((env->cpuid_version >> 16) & 0xf) << 4; + value =3D x86_cpu_model(env->cpuid_version); visit_type_uint64(v, name, &value, errp); } =20 @@ -6400,7 +6396,7 @@ static void x86_cpuid_version_get_stepping(Object *ob= j, Visitor *v, CPUX86State *env =3D &cpu->env; uint64_t value; =20 - value =3D env->cpuid_version & 0xf; + value =3D x86_cpu_stepping(env->cpuid_version); visit_type_uint64(v, name, &value, errp); } =20 @@ -8154,7 +8150,7 @@ static void mce_init(X86CPU *cpu) CPUX86State *cenv =3D &cpu->env; unsigned int bank; =20 - if (((cenv->cpuid_version >> 8) & 0xf) >=3D 6 + if (x86_cpu_family(cenv->cpuid_version) >=3D 6 && (cenv->features[FEAT_1_EDX] & (CPUID_MCE | CPUID_MCA)) =3D=3D (CPUID_MCE | CPUID_MCA)) { cenv->mcg_cap =3D MCE_CAP_DEF | MCE_BANKS_DEF | diff --git a/target/i386/cpu.h b/target/i386/cpu.h index b83c521d9fbb..b589a00c80d7 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -2671,6 +2671,36 @@ static inline int32_t x86_get_a20_mask(CPUX86State *= env) } } =20 +static inline uint32_t x86_cpu_family(uint32_t eax) +{ + uint32_t family =3D (eax >> 8) & 0xf; + + if (family =3D=3D 0xf) { + family +=3D (eax >> 20) & 0xff; + } + + return family; +} + +static inline uint32_t x86_cpu_model(uint32_t eax) +{ + uint32_t family, model; + + family =3D x86_cpu_family(eax); + model =3D (eax >> 4) & 0xf; + + if (family >=3D 0x6) { + model +=3D ((eax >> 16) & 0xf) << 4; + } + + return model; +} + +static inline uint32_t x86_cpu_stepping(uint32_t eax) +{ + return eax & 0xf; +} + static inline bool cpu_has_vmx(CPUX86State *env) { return env->features[FEAT_1_ECX] & CPUID_EXT_VMX; diff --git a/target/i386/host-cpu.c b/target/i386/host-cpu.c index 16c236478e2b..383c42d4ae3d 100644 --- a/target/i386/host-cpu.c +++ b/target/i386/host-cpu.c @@ -117,13 +117,13 @@ void host_cpu_vendor_fms(char *vendor, int *family, i= nt *model, int *stepping) =20 host_cpuid(0x1, 0, &eax, &ebx, &ecx, &edx); if (family) { - *family =3D ((eax >> 8) & 0x0F) + ((eax >> 20) & 0xFF); + *family =3D x86_cpu_family(eax); } if (model) { - *model =3D ((eax >> 4) & 0x0F) | ((eax & 0xF0000) >> 12); + *model =3D x86_cpu_model(eax); } if (stepping) { - *stepping =3D eax & 0x0F; + *stepping =3D x86_cpu_stepping(eax); } } =20 diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 234878c613f6..650d96210192 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -2259,7 +2259,7 @@ int kvm_arch_init_vcpu(CPUState *cs) cpuid_i =3D kvm_x86_build_cpuid(env, cpuid_data.entries, cpuid_i); cpuid_data.cpuid.nent =3D cpuid_i; =20 - if (((env->cpuid_version >> 8)&0xF) >=3D 6 + if (x86_cpu_family(env->cpuid_version) >=3D 6 && (env->features[FEAT_1_EDX] & (CPUID_MCE | CPUID_MCA)) =3D=3D (CPUID_MCE | CPUID_MCA)) { uint64_t mcg_cap, unsupported_caps; --=20 2.43.0