From nobody Tue Feb 10 14:49:51 2026 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 1522186610636458.9149908367309; Tue, 27 Mar 2018 14:36:50 -0700 (PDT) Received: from localhost ([::1]:36223 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wGv-0006Qa-Rj for importer@patchew.org; Tue, 27 Mar 2018 17:36:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45042) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBn-0002Nv-DY for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBj-0003xB-UU for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:31 -0400 Received: from mail-bn3nam01on0052.outbound.protection.outlook.com ([104.47.33.52]:30064 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 1f0wBj-0003wo-PD for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:27 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:25 +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=gy/01DyXFDVPlZj3OfvyMa/J+2WCaRjOcxHsEswsEcA=; b=FOyKYtpatZa4H1zIfwk30Uv3tKEcLsQ8jMLi9mpNGWp6Tmio2fgK64+xoh2eYoueLJWqhIsh2jR3Qhe8guJ9cd+f8pk1QaxMpTFfYxL8bqhmQQYDQFLcRU4IOb488UxmMuNeWlapJYKiIj8IozV2FH3c6DqFt6EZOyIMWLeA1aw= From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:08 -0400 Message-Id: <1522186271-27743-7-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7fc37b2c-cb64-4103-58ac-08d5942a1844 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:X70vjAAkTz3L3lBpPI2jjRDaihvBSNVG368C7saZpho6AzkPb2XfeR41i3uG8MKqQWj9PCXR/fDt72HSE/JHHhmxt95vMo68hTX/U3XKFq6swGMAxhNkHDdg0Hvq13/QIiKwrN+jAjqFSOnCfioNpfrKP4TpRU+Sr2TRjnDXfdKj2y6BzBRQjR8G0ofQTfi9xdImHj2UW5OJ/h1Z5yZ5AClC//fQ/AXxPeOvecUTOAx72C9jF9VXQr9OlF5uPin1; 25:HuUXLmPZ84+3JiZGh/S1BEEwh2llZPySQNtbS3OVo/y6GQelJRJI4swqln0T8p+nlZlAUuukZUKCs9UTjsO8bqpKdce3/9wzn5qjp3+Ok64Qkigg7cIbvzsW5Oh59AB64C+HWm22w8piE1zsW+0VB0sCAAob/6W2zzSDTVEeqp9mSDO9VN9UC1gq3V04Bw3rAglTymnlh1++D66DAdRXI+KZdayZh1nyY+e+DmWL3suuWqBtReorNPsaKVel6qqR6hQNPSWnh3Y/BltUswgstgmy2N41+UBsgo3b7oSpI9BmUcPtZpYTXXAPjGer0hl9fF4vsEptP3CsaJhcS8S3VA==; 31:gG45XUTXeVvGRqm5pQ7RC4pigZlaTak/3bPd3sGSW308CMdBu/is2lWIGjOxgdk13vInQQeGLFhhE/iAjzeZRM71Tb3cMdMli340zvdKMiio4h53sJuc8Jk2g9Ku5ogfHYvoKTPsZbBZ9tWTWxjm2IHdGS7dwDG6TeNIIMTciASlnTTV2LmaJaykLGBgMbkJayGakM+HVBIAfMiAD6KrRSSXUG/nxl3honuwyl27UYY= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:VTZBVjdtVPnXiSVE5Wg2qIXLrQOpsmG4L3ttF0wIHgCRHxQ6D47TTg4b/PtAEsMU5Jbsrf3xktxuTobXjzlZuEj66Bz2O2In45TNx8juVhwW5RcCYSlp0fjyd5cPLb/SI9NGSHa3Y6pFjy0WRnZeCLgLeCPUSQXWCzSXxQ7Yb+4pgKj6TziSg/owa6RbiJMEutd4oQiHyl7o6TVQKsi/bK81KtsQ9U556jg0Y78z0hM4uUg860k0yeeww8gge06koI3LnxZGmG4fwnOy9gKTGAg20UG8z7savo/7xXhu/D0q49H6hd4DdCYAw+G/nw54YAnKxrtxO7wQPd5gsYSjmdk+3YpEfJqn+L/xxawypPkGK+3EFNe8d6vhNlaKy3BtAIPXzK5tNoipx1HRiH2X7jLTaUsacbPO4KcOHLwlQJvJ9taI7SB9lTtdbBHt+8577lkIuHx3TDuBWJm814Bl17AsslfhNnEmLoYrQV31bqQTKAYrdYYTqQ4aejv3D49e; 4:fASEvgdJbuEGfv95zWcG8TrjjBahBq9h5TKF8d79gnf8iUFRy+L+K1/mX9ZsKSsoHrcwZc66Gu5Z26QskW740DocSZOCNc72OctuK1F62fC4avU6/9EQhLWlHgNh/2RClrt3e2l6CNQ1XXND+Ljo+HriF+0VKeWNeDuXWjL2CyirP3TrItO43ENGtY+wO3XQ0imOflPRoQ3QWLMhVj3d2mqJ5DGQsmAms1GcuV6rTLj+zpCzIIgyhemsupm/E2GSW/WH0xHYzbxpdzMPzlfl7z7NsBK8j8aJRjRAj+ezmOP1fj41k0D7JXtdSGraYz51 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:ffmK6NqcTB7bGLYb9rys/GNirdh2SGUvJRVYw6LoN?= =?us-ascii?Q?qWSMvT+d9iv6KlCh+xZdMuTFGApcCnqZjJo1RVeC+gzPPuH1Un1U+OrGuzAB?= =?us-ascii?Q?9Ij4Qu/vdJau2CdCNLFUESDIf0Zjbuo2X4sywQ3TesqFtLiXXy6NSwqvtqRe?= =?us-ascii?Q?jOK1rpIBpn+VLiIEYZkqu2b8e59dcYXLpIVqtDgHCskZO6jfiJyfPlxW6D1l?= =?us-ascii?Q?ZpOVsZ2k9gkhLeJqO+QTAiXsaNA6L28BZfQsKkdvG5czJ4ZJBwUX7TTy1AuC?= =?us-ascii?Q?K5Q6YtHgN6/ldzRu258Wuhq7dh2kBbsdS8Wkk5N16IncWZkNDrv2y9egSe1U?= =?us-ascii?Q?CcYHIJR2g0hs1VLmrQU/Y9PUVlzAsanIMVsI99H/OiBMwkki7QRjABC6TlqR?= =?us-ascii?Q?df2+S1jLLZYU4HJqxXCb2QvJiPQpOcEE6cKORkKEPYEChO7VNWbaTLBcWEbR?= =?us-ascii?Q?lBfqJEKQAOaTTBLWZxo6N8lGA3wrJIXJe0viI6luWb3z/IisaAj5n2Gre4pG?= =?us-ascii?Q?QxkigR49UCT0KIwKQ481kcGfSsD1VgHHl88sCJ4bIf9nIKUTpbE8ACL7qZwz?= =?us-ascii?Q?3U8xvTuND6sgzlFV7WKRYze/PMnWRZQeLZ7ZuQiHGlLvf4Urnkgpq8GeI3TE?= =?us-ascii?Q?/klQ6CDWvR+vrEt5cgKh+i7weeRU1uRfgwWETHVmYjtPpkNDCUEiD3K/8Bji?= =?us-ascii?Q?EZX9nrelmcI+SdTuksLQu39rDADDsMvs6mIbRtcrO2bK2QBDHT0nK252WSU+?= =?us-ascii?Q?dub94xS05WCF7lVxRz74y84bAkXEbu7rnf/35vsZumv2QJzknJt3ir/FijKD?= =?us-ascii?Q?sxdtsr7zjLgPOAR8/6U1SLro4AFSORvzBJYcqMr3ZaTUkEevKtwSdQ9vM/4L?= =?us-ascii?Q?X1MUgYUHHRogZwZHZPlMhQbBjHOiZ5lzWiFL2bDJ2FxqknBmZA8Ia0YBuNIe?= =?us-ascii?Q?l9pOXTujxuDkXsBaZl2e1asSdoI4IgRnd3BMEZiCwdiFqCWeTNyqpROXIdyL?= =?us-ascii?Q?S/XAi7DERb3XZ4qIkoZ4WxRsvm8LSf36JRn0pwAWQ3d4DEn5JQvEGoYH7ld5?= =?us-ascii?Q?PP57ZdnW+5SgLa/QbD5WvTDyip5x7iYd5pOu3vf0i30c1HmihPTOzWM8ErjI?= =?us-ascii?Q?dP3gnGv0B+v3dd2VABWsI9Ye6SSO0VFWv9gF0S3c4lUomZ+Em/gXIuNmyv2k?= =?us-ascii?Q?eEELbKKgLIqs/hy/MQ56vRZG4Tkoe1p5M7cnndFph8G7aROBvDM0Mwgq9d6G?= =?us-ascii?Q?1jZZ7Z9Unb94g405u0=3D?= X-Microsoft-Antispam-Message-Info: k68C0PQOflGv1bV54iW+vwvlAeTKMWX3f7IIhFxgqA/ZvMBPzPamDa2bMnHLJHiONM+wT31ow5vk5e12zI2zMjdfrOYNnmf3aWS+dRxW7Rx7dYtNjUitXJ1hBbHgrOQZ3GVyjG2s4z6WhCYHf8rM2ECmpdpceKmpibrl1HR7W4ugyTXUV0bALac9KSIV8IwD X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:fGwd3gQWs6j+dgqQVyFwD8Wgexy1NAmtahMm0YvqCQfPG8lUmQkAerdkhlpGaSU6udnfDngqYQpd3dBNvJtuAxXlBSgNs/fPmcBjAgFWZ12Y2GaDDjYkh5WP1Fpni5VItmeCOER/Op2ffvx+7jRPa37amECsGj8yFtTRuW+3CoMoLPfkd02qq5jX6GVK+vMBqzh3KT6LoyMskVDClIAblJWqh3+FNDlGK5Jc44ZiRh8hppoMtOQjqSlnF75oSy3D1XvO7CtmOsPXTZcSvQdU2IOoOZh5HRfF88xOW1mBXGHRj3cfrGB9tGhLxDwe2m6HFfvDC+KTJyW7JpVkeIxX88k0sjCgBFHIJLxhcyylmuY2J+iSqm7QatVbvINwbV2MLsZE9zpGTKdZv1Uz8G2GCwh4omTzgw2CY2L+mFN3dIAFHcEbU9Wjpb46yP0FLQkR9apEaX5w16PdFO++/4fmFQ==; 5:F3GsABipOTEZuWcPWiaflnaVKIZh/tC9yBirFZQEm8sn18VF+XMKSyOcUmlcEtifsYhvhAvcrN4IfZYNm1d4WYCsDiaDMlTp10mMGkXpv/fcSTvp0u9/BkyIFvReSUZXmjaVP7HFWri83QIz2srofssu+Tcs2HKQHFKhX6ui638=; 24:wPtS1g/R4enrGfv4HE5Qkdi7usHmiOJZ55COyyJvlzPdWID7HOX44JhHwTRBQeKHSjXwCuqabYUA1WruusuBXKfJuy35qB3uRvKHkJFO9tU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:dFJTMZOFXkTc0fNXN+xHP0vJqga+K8mmGlGkaDtk7YGQEsCsSXXC32ErdzIRAGGOmRNenY5veqPRT3qaQi66nj0cjjheqRmZruxlRU9cQPti5ZQ2cSzIHDlcldDlk/C1ZRWxZe49lfKczOeVDf91RhPmCKTMF0kqAhMh6mefFuLqmCz1B4H9c9prf7ra5kU8kbGDg60A9nLJJDpgs+fSTE21VUOYaWVpxm/lHjz1tUJXZSgqFWLvvP4ibU9OJxat; 20:nKoXziDJHTN2BNvEGSTZcIDlSYey0oblJX9jVetpv39aVl97GvcN3BX+fYvAiaPhhpnkAnmBwFdtu73FGT2uqRHazOT9suN2oOXDCBstXJZ0pspKgOY468BPtoiCkRtQKTVZvKfnfOEEyYPtXYEk64m2DiCsN62CVq3SJZj9HxhMoA7sfbeeBou1Xr6ROPnwpWEUrSnCbfRO4qSoaYbd0j2RN4zxIGoYbZ8yDsEhpZ0izYUXll7KMT77ZXCyDrP+ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:25.3369 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7fc37b2c-cb64-4103-58ac-08d5942a1844 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.52 Subject: [Qemu-devel] [PATCH v5 6/9] 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: 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 --- target/i386/cpu.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ target/i386/kvm.c | 29 ++++++++++++++++-- 2 files changed, 117 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 738927d..f69f551 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 ? \ + (((CORES_IN_CMPLX - 1) * 2) + 1) : \ + (CORES_IN_CMPLX - 1)) + /* * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX * @l3 can be NULL. @@ -336,6 +344,40 @@ 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); + + if (CACHE_TYPE(cache->type) =3D=3D UNIFIED_CACHE) { + *eax |=3D (NUM_SHARING_CACHE(nr_threads - 1) << 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: */ =20 /* L1 data cache: */ @@ -4010,6 +4052,55 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, *edx =3D 0; } break; + case 0x8000001D: + *eax =3D 0; + switch (count) { + case 0: /* L1 dcache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l1d_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l1d_cache_amd, cs->nr_threads, + eax, ebx, ecx, edx); + } + break; + case 1: /* L1 icache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l1i_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l1i_cache_amd, + cs->nr_threads, + eax, ebx, ecx, edx); + } + break; + case 2: /* L2 cache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l2_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l2_cache_amd, cs->nr_threads, + eax, ebx, ecx, edx); + } + break; + case 3: /* L3 cache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l3_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l3_cache, 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 d23fff1..d170d2a 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -937,9 +937,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