From nobody Sat Oct 25 08:57:49 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 152028158580060.29588579896938; Mon, 5 Mar 2018 12:26:25 -0800 (PST) Received: from localhost ([::1]:51399 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eswgf-0001kU-EF for importer@patchew.org; Mon, 05 Mar 2018 15:26:21 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34902) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eswZM-00054A-2T for qemu-devel@nongnu.org; Mon, 05 Mar 2018 15:18:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eswZI-000116-Ae for qemu-devel@nongnu.org; Mon, 05 Mar 2018 15:18:48 -0500 Received: from mail-bn3nam01on0088.outbound.protection.outlook.com ([104.47.33.88]:45611 helo=NAM01-BN3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eswZI-00010z-4d for qemu-devel@nongnu.org; Mon, 05 Mar 2018 15:18:44 -0500 Received: from linux-pyp0.amd.com (165.204.77.1) by BN6PR12MB1763.namprd12.prod.outlook.com (10.175.101.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.548.13; Mon, 5 Mar 2018 20:18:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=45xGr1ZN+d4cisceS2s/SdZHTZUbDpZ/jUt8eRR6b9o=; b=tGLnQ13rJSD9NgpDubsgVHVT5dYMqOgzLLmrG36dXnHNndW1MAH0QZrk51qDi/R/RUAAAhb/TMIicALw99xoCGZrIRuGDtugSEnthEHXhCCqgRJX8y265gtG1D7NgrepJV4WjjR6JZX9RUGvbg8p32ubDGrKjAOc4M7O/q+XXJg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, rkrcmar@redhat.com Date: Mon, 5 Mar 2018 15:18:24 -0500 Message-Id: <1520281107-5115-3-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1520281107-5115-1-git-send-email-babu.moger@amd.com> References: <1520281107-5115-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR1801CA0014.namprd18.prod.outlook.com (10.171.252.27) To BN6PR12MB1763.namprd12.prod.outlook.com (10.175.101.136) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: cc7daacc-c2ca-4c33-0cbe-08d582d649f0 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:BN6PR12MB1763; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1763; 3:njjX5EZRpV4NMix2YkoFahmAhV9H4Kv7jVjS9rX/F+fQOMMiBYP0pnHLqWbcb/1BsQ1gzRCpJTA0KzYAJty2wlv9ia4zLTB9+2qnbBnZ+AH8JbhezFHFt3LcTQ11++Iy2dEVWMe6ecvm08gaaJ8kp5O5cuZrFQ9U/qpVP9QnU/87zJESLRVsEZTqWayv7Aw8P0rQlxnh51kcccBBpbYCOrlr/e4lGVzivw9gy1f+Bbigh2FvcFsE6yiHrjpfPT8M; 25:pK86A3WnHw5GRjH8hYIQj1MPcb1GOFpvijJdrL6Ahk77YCCRcrLoZa2Zzqh4huz/fkexFZZYMI2f1ft7ezITIfNRgHa+NEpPr35FaOPBtH8gK6vbvaxiTJVue0MamRKe4L6a9wRqPCu8HmJ+wZtPVwXwJ3yvNWL/W46mWc9CKRlrPSoICApQ4sRlVfQ3vwfTkR8IRox2Tp5XIbiF8lGMfDAI+LE8XAI2DoPTFot//O331cBDlyG5rMUkAblugjsSMcu7sz6fjg3Xl+L70TL20hq9Yr5ZxGKImqND6mlboG+ywnafPeKKBgMy/+5xWR0I5DT3zp5cd8CK9jTLCiLs1Q==; 31:fGHy81ZtC3PDb39MsMi0d6IoRWMO/Crm2b1XwJ0FQup7fuE65HGSK/8PCeok9v6X366IiSJzezEJf1e/w6zFVMoW0JEtiVR3+zKehP1lI5rqXhl8uHme/ATEkupguXbm08QimqS82CXL3ZoeH8067u/Nj16PGj0XNqrGJ2MFqxJ/iwSLchebS3iqRKMgX0y3aVfJzjtdZO8rU152FZdqrGw0Fz7bWjOSByqT853/FLA= X-MS-TrafficTypeDiagnostic: BN6PR12MB1763: X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1763; 20:lWYggM0YFYq5hxTpUDR0C4f440JPEBD5uCZHHARYR6vJ/o1eo7IoeVewUTS47zjcCavavv8GE8K4irVdMYV2C1yWQ5GDKs8QUxmZ1a+XsxYoyEIO90qMmZJEFxszJGRxLSTRX8QEe7i/nl4b10QdHzLF1ZKdsXIUh4jCA3wxgUbNNNTBtnVrZeFxHN7+5iQCf4zxPBaB6UKGxpmDz79bOgwgJQ8ZP0SojuhMessH2vrFrtAbRNyBvrtXUDz+w/5+yJfbXA+M5F7XuI5Et15V36rGRShh0E1QEeLl7VJBLeG8LilHsMeqEpLhyUtrdjcQ7uwFJjDeeLaUfZKjDhcw7H6Y4546rnOKTJ7YOQfGvAkP5GnwnvS3sO2k7+Kls7M8lI4Oi0al3OeQvGtapgN7R8VCqCP2KvXVP5ViZghBS/3ELQzgaPbDREPx5yq+QH7qaVxUIX8+nMV4MRwfLVyG+yXMiikG0aQxpktULYw15Y6k86msdZ81wQ/kCYU20hpk; 4:YoSr4g/VpgR6/MNaM497z6DtvI1xHfifDHhYbI+qc6CnbAo04eRosUzMcJ/527a1sszUB2pbxDk+5GIM1xZOfYNsXqLz8Pjg940XANI2YtPD88qjzQJkN3yX1S6SIbs+WDXKNLtoLZm6yLVMbmN37eBA4v0QyQpNAS1+AUjtCPw6I4C5uvgwI3JX7Uy8UsPGus+iQvIV+s/fuVvUfekPl5sYqsFNgApKEM5xh9t2yGAARQcSE4q1fCWtEnVAzNlxmwU/IwSvB4XE06w/c3b5qcLa8PHVOF467oLsslKPO+GI441AUHurTF1ReFBWdr6V X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(5005006)(8121501046)(10201501046)(3231220)(944501244)(52105095)(3002001)(93006095)(93001095)(6055026)(6041288)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123564045)(6072148)(201708071742011); SRVR:BN6PR12MB1763; BCL:0; PCL:0; RULEID:; SRVR:BN6PR12MB1763; X-Forefront-PRVS: 06022AA85F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39860400002)(39380400002)(396003)(366004)(376002)(346002)(189003)(199004)(2950100002)(4720700003)(2906002)(106356001)(66066001)(6666003)(97736004)(25786009)(36756003)(5660300001)(478600001)(48376002)(81166006)(81156014)(8676002)(72206003)(47776003)(8936002)(50226002)(4326008)(105586002)(50466002)(26005)(6486002)(305945005)(16586007)(186003)(16526019)(316002)(52116002)(53936002)(7696005)(68736007)(53416004)(3846002)(6116002)(386003)(51416003)(7736002)(76176011)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1763; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1763; 23:yaVQ1zqSi1j00NmBytmBhFCFx1P+55dE+6U8KQMTp?= =?us-ascii?Q?Nrq89woOIO+7ET6/wm9L7qCRgZrIJMos6Uj5NtkCZuoaMxcs4VbP/VKlCx6k?= =?us-ascii?Q?zBnvmrP8ytCZJM5WKpqZyhvJFovfJco9kA4Cja6uhu5fGa5iL4X+Ya3st6mL?= =?us-ascii?Q?AzDK1mpPZu5pAayXBA6Iq8pC1wLpEOgS7TKUbWVUiWufiHXK0lXBD/A4mPfH?= =?us-ascii?Q?uqmy4NdwnpTbNaESShZQFowWRdCOMd+0XufepOCoN8NLbOzw25OzJZMrmDb+?= =?us-ascii?Q?kK1vlx2o3b3CCt3Kje/SkSJA9dRh0DSNOq1hvj+3sDuiESyWRCPGyMAqimAw?= =?us-ascii?Q?FSPMXACRtHXxRrpawkSXM46irRt6IxifFKzIwb/qKJ9o1SM74touVOzrXSw2?= =?us-ascii?Q?7jmdOIt5wkGoc2ftwyt9+nMyd9ojZVhQTMgaBJwGErz35hYC9guvju2tFu9X?= =?us-ascii?Q?ea5BRqy/7gwW/+Gy8hHhosPMZo0vGbQo45noDQqafJZcg+OhT5DThg3lOPpB?= =?us-ascii?Q?Q4IsLPjy8DyKDu+Axkyv83lzEs/L9r86eusVPhqbyZM/+rK+8TDuM4KZW6HS?= =?us-ascii?Q?ggAoFaHP+oCwe0laIe9m3XlB5LGLORA2d58Oi37c4CpUdEayLPywS1Z6PKQw?= =?us-ascii?Q?K3n9uwqbdaL1ohdRwTxEWeertzlSMgltM3zM3FJm39HBREwtCgJclsOX6ne9?= =?us-ascii?Q?1M9G3fEeKrUjxljU5Qb50gOioD01EVDZ42ciaEXF4Zx3XAepEzhcF9unxMUX?= =?us-ascii?Q?cS92u70dPeJ449afSe0xNKW59l3f068HAnn/8ffDKbeZbjchWK3cU7Iszrz9?= =?us-ascii?Q?TXyKUMplqQaLMRCedjmeOaIhonkQsHrZYR1BSMKCufJRo0FLXYGHGr+kJWt8?= =?us-ascii?Q?aOKtxohx+enTzSBogj0QRYYaLkVCxAmy0Uil/Cy7hvNT+fLhVga6/XnB45SI?= =?us-ascii?Q?2g0nv4hRdFkBEYP5bawnrtU9k7/iD2gxTP9I5LFzp+eeaDZJABrzt3q2yYff?= =?us-ascii?Q?oTRmv/Ru5y3elYY7OWDHFauWmPjvM2+IdKPpeDIDIJqCM8ESpE+qOrd5dDb2?= =?us-ascii?Q?NP4Hp1lFoNr9jgNTl/2v3sLUKL8yGMCHXFFl7eoP/4WXleQeVahiSAx3brII?= =?us-ascii?Q?9jipyfixMX69+IpWSuGNzG/bbK1JfZy?= X-Microsoft-Antispam-Message-Info: tl5orkDLU3MeSr43doX+1BKxm9S0HttcnqB7vxu+fTRIP381N7lCQAEh5VE1vyX1QWQ4GQrwO5JUllknx2EV3tiDUBY3tdYGJsSYw0r81hkFdHjA3FvtWSDIQNxGXg34sIovOAzrg/wBdSXKDV7pXH8EaJYzcL9CJlEmTBOW++8fQr5Qb/vstYwDrSrYqRPQ X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1763; 6:smGFcYR+vu6JD64i1KzqQZKPfL1uV3SV6U61dTBMtjGwcXpdNALn1DjcAwmRTYyHNEV5eXghjYg7zZNgUrco7ezuVoypD4TEPsTSyn+JHji8Sjd1zQFUciUorv+3b1H2Qt5V4IDYgbA4BZIv/nIWxDkZLN+SPW596AyWMG5W74aDwpDN9HCyUCjf2eoCGWgWHYA4Ls10lvQ+eZ8SlV+RgJyAxE0w3iXxuqOkUO52y//YQcJwYd3mKTQUHFMdfGM6joM4zeEUaIiL1FElYk3KsMl4H5jo6KbRc/Mr3vONM09vblLbX7ePDQETgdyxKZDnqnVhEx6F66RfVagomSYlCisQ0dI0Ap/cnRd26EBstHw=; 5:nF8l6UaPkPm2E4DP/ay9sN8bMAc9gNgOKZnXLIAyv1LeN/MfUO9YxAOc4HhpOg9iD4MVP/wgyqS6i+adWVFyaYFSITAZN6iktVpf9a2qW9RTaqUmdQjXGiZf8Y0sUYmHtm19fE1adtJ860gGVLmkCzeyXW+GWljHaSNFAkDWDkQ=; 24:OYghSmyABNb7guiLJii8qC7q9cWxRq5MMzsz9KAo2U55W8n5mwdLGAdNAO0gXtxKXMZ9EbHA5X+B4Q3i1KrITtesssGZE8T/4aL/Jwl1dFk=; 7:Jxtu/rIzFBUOHGgXs4hsiVseWMeodAd8fEsbJo6omVlcPLIAdw5w/U3yLC7yzsQMxGm8GCmghH6pOqCGquDEpNsIdjZkaZYGQdpwDVBBOXd6JpP/8WvYaL9499Pj+mT+FlhQsKlmG9TxdQliJkuECSiKAp8gJ+5yvX33RGTWSiCt4izogSBmelVqgdsp+/XDPdtofK+SAzD1//ouPzcSA+O18TxNKbTKgVEjna6CHahUmzN6DDnDl05VA9JBZ2Fs SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1763; 20:ekq7b7fDHgcz8SR8UoJsdjNn8ivM5OHDTmgHUDtzkvmaxly4gJu9GDdsDtwsNdFwo438fGmeW383L6aS3/FFOhm7SWV/ccpmlvi580+yLG4j7OD91w1V7DSm/I/2uLfE9+i5mt1HKSid2k2pXWhbCuXtEdPuc9lMp92c0rYzfwC2H0uDcelRiyxQghdRZFZUXBAOXIzj9B6jRdnLnZMZDG9O0fnlJja1Uq3S5Bzz9dQXhO7Wa2tBWiBldc8YTWFX X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2018 20:18:40.7092 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cc7daacc-c2ca-4c33-0cbe-08d582d649f0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1763 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.88 Subject: [Qemu-devel] [PATCH v3 2/5] target/i386: Populate AMD Processor Cache Information X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas.Lendacky@amd.com, kvm@vger.kernel.org, mtosatti@redhat.com, Gary.Hook@amd.com, qemu-devel@nongnu.org, babu.moger@amd.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Stanislav Lanci Add information for cpuid 0x8000001D leaf. Populate cache topology informat= ion for different cache types(Data Cache, Instruction Cache, L2 and L3) support= ed by 0x8000001D leaf. Please refer Processor Programming Reference (PPR) for = AMD Family 17h Model for more details. Signed-off-by: Stanislav Lanci Signed-off-by: Babu Moger --- target/i386/cpu.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ target/i386/kvm.c | 29 ++++++++++++++++++--- 2 files changed, 102 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 42dd381..1485175 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -118,6 +118,7 @@ #define L1I_LINE_SIZE 64 #define L1I_ASSOCIATIVITY 8 #define L1I_SETS 64 +#define L1I_SETS_AMD 256 #define L1I_PARTITIONS 1 /* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 32KiB */ #define L1I_DESCRIPTOR CPUID_2_L1I_32KB_8WAY_64B @@ -129,7 +130,9 @@ /* Level 2 unified cache: */ #define L2_LINE_SIZE 64 #define L2_ASSOCIATIVITY 16 +#define L2_ASSOCIATIVITY_AMD 8 #define L2_SETS 4096 +#define L2_SETS_AMD 1024 #define L2_PARTITIONS 1 /* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 4MiB */ /*FIXME: CPUID leaf 2 descriptor is inconsistent with CPUID leaf 4 */ @@ -146,6 +149,7 @@ #define L3_N_LINE_SIZE 64 #define L3_N_ASSOCIATIVITY 16 #define L3_N_SETS 16384 +#define L3_N_SETS_AMD 8192 #define L3_N_PARTITIONS 1 #define L3_N_DESCRIPTOR CPUID_2_L3_16MB_16WAY_64B #define L3_N_LINES_PER_TAG 1 @@ -3590,6 +3594,78 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, *edx =3D 0; } break; + case 0x8000001D: /* AMD TOPOEXT cache info */ + if (cpu->cache_info_passthrough) { + host_cpuid(index, count, eax, ebx, ecx, edx); + break; + } else if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT)= { + *eax =3D 0; + switch (count) { + case 0: /* L1 dcache info */ + *eax |=3D TYPE_DCACHE | \ + CACHE_LEVEL(1) | \ + CACHE_SELF_INIT_LEVEL | \ + ((cs->nr_threads - 1) << 14); + *ebx =3D (L1D_LINE_SIZE - 1) | \ + ((L1D_PARTITIONS - 1) << 12) | \ + ((L1D_ASSOCIATIVITY - 1) << 22); + *ecx =3D L1D_SETS - 1; + *edx =3D 0; + break; + case 1: /* L1 icache info */ + *eax |=3D TYPE_ICACHE | \ + CACHE_LEVEL(1) | \ + CACHE_SELF_INIT_LEVEL | \ + ((cs->nr_threads - 1) << 14); + *ebx =3D (L1I_LINE_SIZE - 1) | \ + ((L1I_PARTITIONS - 1) << 12) | \ + ((L1I_ASSOCIATIVITY_AMD - 1) << 22); + *ecx =3D L1I_SETS_AMD - 1; + *edx =3D 0; + break; + case 2: /* L2 cache info */ + *eax |=3D TYPE_UNIFIED | \ + CACHE_LEVEL(2) | \ + CACHE_SELF_INIT_LEVEL | \ + ((cs->nr_threads - 1) << 14); + *ebx =3D (L2_LINE_SIZE - 1) | \ + ((L2_PARTITIONS - 1) << 12) | \ + ((L2_ASSOCIATIVITY_AMD - 1) << 22); + *ecx =3D L2_SETS_AMD - 1; + *edx =3D CACHE_INCLUSIVE; + break; + case 3: /* L3 cache info */ + if (cpu->enable_l3_cache) { + *eax |=3D TYPE_UNIFIED | \ + CACHE_LEVEL(3) | \ + CACHE_SELF_INIT_LEVEL | \ + ((cs->nr_cores * cs->nr_threads - 1) << 14); + *ebx =3D (L3_N_LINE_SIZE - 1) | \ + ((L3_N_PARTITIONS - 1) << 12) | \ + ((L3_N_ASSOCIATIVITY - 1) << 22); + *ecx =3D L3_N_SETS_AMD - 1; + *edx =3D CACHE_NO_INVD_SHARING; + } else { + *eax =3D 0; + *ebx =3D 0; + *ecx =3D 0; + *edx =3D 0; + } + break; + default: /* end of info */ + *eax =3D 0; + *ebx =3D 0; + *ecx =3D 0; + *edx =3D 0; + break; + } + } else { + *eax =3D 0; + *ebx =3D 0; + *ecx =3D 0; + *edx =3D 0; + } + break; case 0xC0000000: *eax =3D env->cpuid_xlevel2; *ebx =3D 0; diff --git a/target/i386/kvm.c b/target/i386/kvm.c index ad4b159..0eb39b52 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -909,9 +909,32 @@ int kvm_arch_init_vcpu(CPUState *cs) } c =3D &cpuid_data.entries[cpuid_i++]; =20 - c->function =3D i; - c->flags =3D 0; - cpu_x86_cpuid(env, i, 0, &c->eax, &c->ebx, &c->ecx, &c->edx); + switch (i) { + case 0x8000001d: + /* Query for all AMD cache information leaves */ + for (j =3D 0; ; j++) { + c->function =3D i; + c->flags =3D KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + c->index =3D j; + cpu_x86_cpuid(env, i, j, &c->eax, &c->ebx, &c->ecx, &c->ed= x); + + if (c->eax =3D=3D 0) { + break; + } + if (cpuid_i =3D=3D KVM_MAX_CPUID_ENTRIES) { + fprintf(stderr, "cpuid_data is full, no space for " + "cpuid(eax:0x%x,ecx:0x%x)\n", i, j); + abort(); + } + c =3D &cpuid_data.entries[cpuid_i++]; + } + break; + default: + c->function =3D i; + c->flags =3D 0; + cpu_x86_cpuid(env, i, 0, &c->eax, &c->ebx, &c->ecx, &c->edx); + break; + } } =20 /* Call Centaur's CPUID instructions they are supported. */ --=20 1.8.3.1