From nobody Thu Oct 30 15:22:14 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 1525985053767199.96414243207482; Thu, 10 May 2018 13:44:13 -0700 (PDT) Received: from localhost ([::1]:35553 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGsQ8-0007ih-Rn for importer@patchew.org; Thu, 10 May 2018 16:44:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57194) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGsOD-0005QV-3K for qemu-devel@nongnu.org; Thu, 10 May 2018 16:42:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGsO9-0004Xd-2k for qemu-devel@nongnu.org; Thu, 10 May 2018 16:42:13 -0400 Received: from mail-sn1nam01on0069.outbound.protection.outlook.com ([104.47.32.69]:27968 helo=NAM01-SN1-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 1fGsO8-0004XC-SB for qemu-devel@nongnu.org; Thu, 10 May 2018 16:42:09 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2478.namprd12.prod.outlook.com (2603:10b6:802:29::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Thu, 10 May 2018 20:42:06 +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=eqoyprUe59e+4Tiah5V/KvZBNBCmKYto6UD3e0qOC88=; b=2ZzeMi6vB8AtxImeH6BI/loP1by2fWwmbGSmdrmpFnZh4HN5od2dAU7RE7ktIIt9QA8jr1OhKAZgCGkYA9t77gagh4/WcD9xyNnVtm1rggMwvpdV2jqC4TcwhPpTmFHLsd79LyzVG0pazMely5+2s5cYJh9iDGEHNn7J2K5ivVQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel.apfelbaum@gmail.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 10 May 2018 15:41:45 -0500 Message-Id: <20180510204148.11687-6-babu.moger@amd.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180510204148.11687-1-babu.moger@amd.com> References: <20180510204148.11687-1-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0801CA0024.namprd08.prod.outlook.com (2603:10b6:803:29::34) To SN1PR12MB2478.namprd12.prod.outlook.com (2603:10b6:802:29::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2478; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2478; 3:92YyKZhyE+1GpZK5NPze2BJ6ttjVfzWuL6tuq+haTVsY9IywmhvthaKV8WRMyic/MOXQ44wL1gGeTXdGzkBavRU8H1iKcAXdOT8F1bA23/jM5nYFEU0GWguK671sHOpoZpA6mNtBof1YSdBL/OBO1Rlas80UE512iAl9qVa+qu7FDBAVOjfR/LNWlPBjE4OaB3cnHxZoH7v/fipQIHag6BFC5lVeqvQjG9TrWTislGTRryXctuNZmKQv5RAlaUPr; 25:7usgp40DBjUfmffrSOYw6rk9CtBGvPTlhxL0XQWnzxf2dKDZJxaW3M7WnI4GYwDLQDL+3K5KVW79Uh+G/NRJWPmB07n/EDapo1Cm8eZkeExZs2oTs30e3uQlMvIABgAL/TtUSoON0fqbhKy/e0TNcJ/S1OGNckm39Ml1SIxrde6IajEAqElSBWME2QXnB/sJaKf9ZG66dYoj6DtYqJBAeDUhBXVn0lZEMtP1XKb/tzYf0svWCkKGxjudhTqQNiL2MZrO0+1YkZTLbm8vBImjmr1yBGo4wfIhE9nqBl8uNx1BX2mTe6FZ7JOcFt87qLw66Cse+iwDky2+HbLmr1g9eg==; 31:uz29f84e5EQlHMEQpuhPOvbbOjhS9vfxxi/npFPUAuO+hnkE0m+oVtnOJIIEPbAXSW/0jxHNy/tpkFzDnnUV2u/W/vEtgOqdBefcng5UV/cUtddsOT8r0Gj/U+pCdWS2epcWtY55yWFlfQgFx1ilGqSWUnejZMwCVteurNOVbjGxtMAnDsLXTTk75K4qbZ11RukuR98Myeb2V0kqwwtuG9S5HTGKYn60PAo8VcupFk4= X-MS-TrafficTypeDiagnostic: SN1PR12MB2478: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2478; 20:xjnS7dlNNXGGdWLoXRiwvX+3dfkBq4TRB9wB38F2L4UwAnFnikX0TOTcE/91JBaIwv1nWaMKLrE6ttpJMu38LzNeMXjvs/eKir7CCaF5zp17I+zIv9GhKLsHxDcCdtUc4oVrU9vFbqZP1z5Hm5ENsKoAuydCHa7/rgB084utkouq6q69BS+2r0p+xs5zqlx02REaLKk05kgWiDr5Jo2u+LuFJf2VDZC+oHsEbuSA1BEbsVPMLrSZH59rnyJ8NFM8BSkXUK/xEgs7RCwc80H4NSokMmgFEFkLRLhdXHBgtzt2UH7Cnh89kjcZE2yTftvC/xYQ9OG3cT3S9Y4cQG+eHdPfMmxYjVdu4SjnQubFfwqtxV+quEtWG8rZhq6dJAy27tqE3JuQw9riUu/5R8MArZorxk2LNoHFrDuk1J/uzPCOpiNG/7vndcHePk5NbjuF3IwsR/fHrGpfziQH3hwPUcgalpjDaV1U1x9ory1sfisvQxrsSlvqF8D3c2hAx8sn; 4:LMGD1+zR/2Yb2tF5PhOiwBzWnhVbDcmZjYiJ++QzFMLR5Zb/kUoWyE3Ut6MIBtgVJ00AgF8tNSsZuHclbeD2c15noCobbvvSlKWaRhP7PkX2p9AQeb7fkaKINevK2srUUX9TOoN5ghqpIoEliSnStOjyjLZa80Au0EhrdY9lntTsbImQOc5xvZYmaijCcuFow2afkidQ0+eT75q/sChZTAD0OX2xfH1ikcLiBIFG832AXnx+Nl2ilsFNKE9oReTPxuAZ/LhN7xs65XWjYkK4whMmuiYMhJhjB9Wxmj/cK4yP39waUO/eg0Gm5SHzgVy1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123562045)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:SN1PR12MB2478; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2478; X-Forefront-PRVS: 066898046A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(366004)(376002)(396003)(39860400002)(39380400002)(189003)(199004)(476003)(446003)(48376002)(50466002)(50226002)(2616005)(53936002)(76176011)(97736004)(4326008)(11346002)(16526019)(8676002)(86362001)(186003)(7736002)(956004)(44832011)(305945005)(6486002)(81156014)(2906002)(8936002)(52116002)(7696005)(486006)(81166006)(386003)(3846002)(26005)(25786009)(68736007)(51416003)(106356001)(5660300001)(316002)(36756003)(16586007)(105586002)(53416004)(7416002)(6666003)(6116002)(39060400002)(72206003)(66066001)(478600001)(47776003)(1076002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2478; H:bmoger-ubuntu.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; 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; SN1PR12MB2478; 23:1tMrs8KbswL4ASQuXlHraJr3BCnc0s/EFzE4V+uQA?= =?us-ascii?Q?30SZuQcPKl0VQ17lMcLvkSJPQkUE0cmcp3E9vL6TKyWPzpEa5VSSG2jerJ7N?= =?us-ascii?Q?OBCeIrXhZwkFYcBeczdjQ4oE69bJDRdFwuKOlzwQpHjpV+rIQR7VWd9hjrcl?= =?us-ascii?Q?l6mMOiP7UsFoW2qBaZ+TX5b8qnI+RQ5qXH+qWRGzOIXiySsMGbqP7kAVInN8?= =?us-ascii?Q?P7waP+fIoQ3S1Uk39YhZABj/bE5YZW7Zn84LUeXCPO9Recm1qAPPTIehTjwi?= =?us-ascii?Q?E8aRQrL695cMJg2ncFfKNU7/A6HBX/rJx75ijGWYmCIINl0B/zm7jHW44D22?= =?us-ascii?Q?mRi1CMgJerU9ioelMW19A9y12mhUpt8UdjWhL4LEMvZ7FMSBSZtoLhTyGF/7?= =?us-ascii?Q?fTIEXRomV/buIZlHKzOXWz17nDmrqtGyhOTffprd0qFSXfUGfstNwkyU9bFd?= =?us-ascii?Q?iMt+KyCZAN8V9gjN51Ivdb+aQxfXhrFf1gAHUjqRR8bofdXKrU1CWKg7hQIW?= =?us-ascii?Q?I/HcX+cZ4XNtRpm8hO6VuwsTPX3DR/4q5OeOgqmy1aQAhkS450Kaj8QUBOtH?= =?us-ascii?Q?oyGjJDX0fiT/8pTlnXHs6v7TN51XWUquQT9LLS5XeUjbL79Jqt03InZRAC2n?= =?us-ascii?Q?sQ7Ict41/A+0pe0nrtvco10SuaY8GphkHWlEJyqEvYSuIbOxAoCnYL5QSfbX?= =?us-ascii?Q?YhwHZZGnUelwMYnQEb7bHnnW0UPtMjr4hVojc5imhOkg1kEQYRfUHLBhA3ob?= =?us-ascii?Q?Bly6Zw5RFR+kUbnyIFaal6UCFfPWe6PGHiX2Rg7z+zA9EVohqV9SRcaAndna?= =?us-ascii?Q?k210AeFMvca4byWC8j+NRYaIe0mDctApTtNdDVc9AslyALTfA0XtzXFsbINT?= =?us-ascii?Q?Zs7hXZtqCM6ZRIOpgf8zRuckcySQvY9LkPmXTf61Xzkg3Y5rUB76EW+R0Wpb?= =?us-ascii?Q?lOwKt5ZscgG6H4PWs87LaRd2iaiDYiDN1VT2uFN9s6Q/AxNn9xDqsJ2oh6jB?= =?us-ascii?Q?bFornS444GqZptDipaNop1hVjvaN/VxzfH4IRCIw+PjtT4EMfUIOMK4DkmOw?= =?us-ascii?Q?grDk+5KXoxW7I4jVDCR6Kx1lawiwLGg83xAUoOT1HWWzuwnI8+a6ucFdVXZu?= =?us-ascii?Q?AWeP2Ff/NVPze72odQKJJmUzgwnH42s42S4cscnB5VUTFrMkp1ES0G9SgY+k?= =?us-ascii?Q?rbV7Uaq9cr4ESpKijw0+g2w2uedX9BN7auzdayJGDBxX02NfqNLj521TcY7C?= =?us-ascii?Q?f/5hk2dFRRYeQjL5MQT2UXaRN4Z85kTUtJP+7Jf?= X-Microsoft-Antispam-Message-Info: Mywu+LTDA09rMWEyWHHDSPjDlq3WqqP+imlVM1tmClaRcWp/03ssqm11LF4jOALXYVaM+OzRhAJMzs2uBKKwVgjYa/ahs+RNFc1gx2kdWA9+zEIwQqKeVgp3PUlW55/ErMteUmpkZ2aY9KLMFamGyBwW2FH5AWN4sBD1L16EFc8x8l3CA6Jg2oNk5wjbm7Wx X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2478; 6:8NEQfeyWabO5ilFGiXIwScB9ow6zvnBP0DA5jCiHZzlRc4NENTlEU7BiOLHRWHiM16hwedGSyTFGJUPvKzw55KJwt0kyuO2P5r53RKFbWvcXvLT7vFhojrvO3p2yX8z0xY1mMGaWxvYAaJo7t7Q+HLyeQFO/O0xk45QYtUfL9DhW/eAkPzK8483nzjJEa9sDo8wOEJv9TMbu29gzVb/h9BO4rynvJhFXrMM57HPL+RMNROQEmufrQ2vxDiVYNGol2BJO0v9XY3TqBn25bZ2C6UIdF78R44BCsyrAZXh5m6wNncs0l5RQ7RiydscvzGWVJ2i3hrDkQgOX/l42p29UFdb4m5CmKajlJy0hlC5y5eI2ygbyg6ziStPH5+4embfUjKCCy19yM6rv+GvLpOdc7F6Fs6xlMFc9hAtez5mmm+TSJhuRYFEZt8ywUFscXLYotdh6Vf+ZyWSAzKI7HWIxOg==; 5:3XBPmV/ARGKc95Er6q1d7cwlhg6lSQ4a/NEyPHlfQnDpEa0DUDM0Ngd/M9C4CKZy1UJbLz25VuFF96zbjwHqlRvoAW/Qwqg0r32tJJgsP6ajtsQ1ZcjwoV2ScYz5ZJbqiWJLfugbCfa8DrLdYL3w62uYjGyBzSdKYyCi7ZnD+z4=; 24:BeKfegqddH1S1WIacW2VYjjhE6oCj+bff/Hy3j6q7NlcMKQ0lLqI6HkWxoiXqaWZqYn6zuETmi+rJvauCuW61Hr2/sU7d/hYVOxBrcNW3kA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2478; 7:4QSu2bIRNP8jBoqsoZcTqCW+uYVdu0Cpmo99Bwz+La3FqxiLurM71lXjIB3SJyVpzOZKtvSlFzDqrbE2UPZrK7hEg4YodIdC4mLO+Jrgkx8BkLXdjBzeRszG6XQ714e6wIkB4Kejf7hc/aIt+gGr7NicRNdc+jUrUUDNzK9jXnT8cxdG195OEIsLjWiKiAd0oW61I8/kzU5l9nRnS1ysFGSU/Vsvprgo259PaFYzZZYNytvDJiUsWOfGzTVBBO0J; 20:zcazavk0D0eFjGue+5+Zvp7CZDTAvuM02/l2DcaBawK5j768GrbHZZEkoF9J2S7BovWm1rzZjeXT7plnpn6Xvo3jSFmMYEbW9s4vpuYcX7vESvG89JLVOaigJV2309erfWcBQD8V/V0mQxNzwD5zDiZKelAWJpEJ30DB+txf60B7UEHAoIoy7jIuMcjh/EoSXHCEPCz2tA93d3/wIm/HlDeDwOhVOKeKXd+HcHMqxwtEB1iQZGprEvkhsWTOR3m6 X-MS-Office365-Filtering-Correlation-Id: 13b58c26-07c7-4ca2-0a1f-08d5b6b67e61 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 May 2018 20:42:06.0416 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 13b58c26-07c7-4ca2-0a1f-08d5b6b67e61 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2478 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.69 Subject: [Qemu-devel] [PATCH v8 5/8] i386: Populate AMD Processor Cache Information for cpuid 0x8000001D 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: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org 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" 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: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++ target/i386/kvm.c | 29 +++++++++++++++-- 2 files changed, 105 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index b20b8691a7..6898042787 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -307,6 +307,14 @@ static uint32_t encode_cache_cpuid80000005(CPUCacheInf= o *cache) a =3D=3D ASSOC_FULL ? 0xF : \ 0 /* invalid value */) =20 +/* Definitions used on CPUID Leaf 0x8000001D */ +/* Number of logical cores in a complex */ +#define CORES_IN_CMPLX 4 +/* Number of logical processors sharing cache */ +#define NUM_SHARING_CACHE(threads) ((threads > 1) ? \ + (((CORES_IN_CMPLX - 1) * threads) + 1) : \ + (CORES_IN_CMPLX - 1)) + /* * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX * @l3 can be NULL. @@ -336,6 +344,41 @@ static void encode_cache_cpuid80000006(CPUCacheInfo *l= 2, } } =20 +/* Encode cache info for CPUID[8000001D] */ +static void encode_cache_cpuid8000001d(CPUCacheInfo *cache, int nr_threads, + uint32_t *eax, uint32_t *ebx, + uint32_t *ecx, uint32_t *edx) +{ + assert(cache->size =3D=3D cache->line_size * cache->associativity * + cache->partitions * cache->sets); + + *eax =3D CACHE_TYPE(cache->type) | CACHE_LEVEL(cache->level) | + (cache->self_init ? CACHE_SELF_INIT_LEVEL : 0); + + /* L3 is shared among multiple cores */ + if (cache->level =3D=3D 3) { + *eax |=3D (NUM_SHARING_CACHE(nr_threads) << 14); + } else { + *eax |=3D ((nr_threads - 1) << 14); + } + + assert(cache->line_size > 0); + assert(cache->partitions > 0); + assert(cache->associativity > 0); + /* We don't implement fully-associative caches */ + assert(cache->associativity < cache->sets); + *ebx =3D (cache->line_size - 1) | + ((cache->partitions - 1) << 12) | + ((cache->associativity - 1) << 22); + + assert(cache->sets > 0); + *ecx =3D cache->sets - 1; + + *edx =3D (cache->no_invd_sharing ? CACHE_NO_INVD_SHARING : 0) | + (cache->inclusive ? CACHE_INCLUSIVE : 0) | + (cache->complex_indexing ? CACHE_COMPLEX_IDX : 0); +} + /* * Definitions of the hardcoded cache entries we expose: * These are legacy cache values. If there is a need to change any @@ -3993,6 +4036,42 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, *edx =3D 0; } break; + case 0x8000001D: + *eax =3D 0; + CPUCacheInfo *l1d, *l1i, *l2, *l3; + if (env->cache_info && !cpu->legacy_cache) { + l1d =3D &env->cache_info->l1d_cache; + l1i =3D &env->cache_info->l1i_cache; + l2 =3D &env->cache_info->l2_cache; + l3 =3D &env->cache_info->l3_cache; + } else { + l1d =3D &legacy_l1d_cache_amd; + l1i =3D &legacy_l1i_cache_amd; + l2 =3D &legacy_l2_cache_amd; + l3 =3D &legacy_l3_cache; + } + switch (count) { + case 0: /* L1 dcache info */ + encode_cache_cpuid8000001d(l1d, cs->nr_threads, + eax, ebx, ecx, edx); + break; + case 1: /* L1 icache info */ + encode_cache_cpuid8000001d(l1i, cs->nr_threads, + eax, ebx, ecx, edx); + break; + case 2: /* L2 cache info */ + encode_cache_cpuid8000001d(l2, cs->nr_threads, + eax, ebx, ecx, edx); + break; + case 3: /* L3 cache info */ + encode_cache_cpuid8000001d(l3, cs->nr_threads, + eax, ebx, ecx, edx); + break; + default: /* end of info */ + *eax =3D *ebx =3D *ecx =3D *edx =3D 0; + break; + } + break; case 0xC0000000: *eax =3D env->cpuid_xlevel2; *ebx =3D 0; diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 6c49954e68..6e66f9c51d 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -967,9 +967,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 2.17.0