From nobody Mon Apr 29 10:24:55 2024 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 152340232888318.624427196149327; Tue, 10 Apr 2018 16:18:48 -0700 (PDT) Received: from localhost ([::1]:54629 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62XH-0004YL-Py for importer@patchew.org; Tue, 10 Apr 2018 19:18:47 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33733) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V1-0003By-ID for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62Uy-0005fj-8g for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:27 -0400 Received: from mail-bn3nam01on0065.outbound.protection.outlook.com ([104.47.33.65]:27472 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 1f62Ux-0005et-Bt for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:24 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:19 +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=mJH4Pg0qEhNRu4ktOwvvK9sFg8rWZFAM8zzTrtNKCso=; b=yBK/gd3CL2ky3iQ1fihM7WzawmQrwd/bR0QFuadmuteHYrb56AJQ92weF36aZCfaODs6FQhozvA8czvMLLbQjIvd4BSrz5mRs+FOgZTG9RXwbRULVFbrEF1rojEGfYY1vLJY2T71bFCFexJv5vdRC2nF4JO2aJ7VwZ9dYSKlksw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:01 -0400 Message-Id: <1523402169-113351-2-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:TQmoYtk8pQ0a4RuLWT0AMRBUSYzhdkQ5ziH8BgaTMOhF8UChEM2uZmtV788Ozmk0fZknsvpKQ/5Wbn2HkA8IKNO4Q1fptYiRv78PJXK3asJXfSx16oVUu/pnr+/JDu6l69me3GBpt2jIfBADV6cWuSwPYx7M6i2JbqkSXwwPUgA7UZQ6muMbPDJrVXQyoChQ8EPOeXcPPWnCXoLCeMPA5p6Sb0JTj+C0TpHD0pFs0kBmcBIuLwLHiPsBYa5VzU71; 25:8NKLWCvzCFKrPNQNpXaUbA50CskjALiGI6wUhX1G+hj11uHSguI9ozj3jGepMwXDUlFEKkLmhA+stYABUqyXZd5Dd09grtZuL8tegkUd6UlMV9jbOs4eCBuk3lngBkLnQtaztd9Xr6SzSMpF6FQ4u68acMtSN4vnMiuUSxBDFkWNxLwICaVfgE4QpZPgbbtCFa9FvPI0yL4acXZOuxqIn0CMt2WJuRUCWJL6ipf7Cc/2Sa8QSkO7wKlQP8GpN9z9p27tSLjgUAYX1g7hBtDff1Cx4A1XJh82Gm/u7jOqhSA8rvBHOfSjYkpRGLeKBfKuBGWAa1iio7aD8UFDYL49xg==; 31:aKrsWBDXfQ6rjGUptoMyIVeqCnvQIW6pwSSAN2YYp3pw0fnRsCb5vOvtf/wLhaj493kJ1K7sT+84O7vsmEeBPpYr0eNJKmrkcxsCnYnWnCw9fe4sq1v9q7zp7l8474We9rR6ADo1E5aP/T+7YGNzpKSCn2K4ADsNU63o1Z9qQS8765lnJSVHQ8vnrcNfTW1BX+QXhiXuScSXzgEV3d9RNab1lR4ZtypXQFamcUtmPSI= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:Zy7IiVWyitdvqAzHdZp9nj6MXFi9f2YLGy/aYiaJ2AQy2Y8n0I+QkMjiSfj7/MOQFWFO4HIH9FplxqhgVnh7R8gPQubmxWemqC5Vx5n4gVAk3QtMIkM85XQPT35oZm0MYSjKZV2WcivUilQwMMyRi05tP7f6DtTKuJGEMaQNqHZxk7h0UDgqmArmHXgJzo8rBTWrUePIfII8w92pYsmeG/Muy8CIz0j/axaxZhfKp5TXCVOkif7HCRLdg4uQvgmqjXlTlpOojYqtCMeQzINmaEN4oPDdP0U6ExTwKY5rjO4suekZmlwLhV/0fZaRXjxqgeuTT3Nvcaun7t9BGLthV6ZEokclDqzIXm5mmQq2CuCW5DrW+Upi5l1FAKB2pOM9S1FIS4Bqo+hI9JIYTQ4hTQ/w06ENHsnqkU1+EPjErWcqL+H6qvWZvz/FHf51UM0/mI00zdHul4qYzdbKRtUjuVcRth4qfFRQk3GpkjiHuDvS1J6WF35K10lThI6I+L4k; 4:gz0glMey8LOqC42vND3YMfSd2Vgxu2Lf6oHzeOb8jimrNmcCCRUNVJ0UJd9kWCpfWks7nnnm5JM9cPaG9aBXDEDkpSHt0Wc0LsBpbSvi1THFBi36zBxGuaDuSfMHbRlCVQDiCEuoRI7x9W2ZqcxP2PZX5BFqMbV7XeC973wv7/s9Nv6XBDv12/186bNr5xLv3iK1/KX4z+ZoFX2BcCVM6ZgAQ9P5jn4z5yRwQ8O/uWVPFHtOlJKtWNuIoBMklk8yIFTMkC75pyDDtkx0Dbfr9utuuVJuATcP2njx9sjT0/i2BcVW1fnUdZ5POXBb2CdJ 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(575784001)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(59450400001)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(68736007)(53936002)(486006)(19627235001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:FLsFdUnq+Ntal+ycW90sYDFV5iYxkTYxO151PEZZJ?= =?us-ascii?Q?GApCM5E85EX2qF4481xv3248XJ3AdxoFHnrLh55RMePkV5HYtbKIn2VHXu/O?= =?us-ascii?Q?H3QK8iptNe0skAAEyQF1QhN1BlRL2aGQTLhDLZugS61+OAPaElaqJyMPy9S4?= =?us-ascii?Q?JWUFlTPDAfFdg+zYfQ87XSnD5LGti3gj9y+1L08ME99Xxqq5oFcWQgQtsVEO?= =?us-ascii?Q?rTZKPeh0fWXTvj5NfOh+yzDi4Ebe9DAPPfkSEzTD87WZRD3M6lRGVfy7a+yw?= =?us-ascii?Q?LJ0YfQKguisE7TF6RMhAjhsbciQ2rsHKjN3nDgcQcOlvGeV7kd0ehV1rJ0DN?= =?us-ascii?Q?nsjmcTHFXgcD2uQutTOluwhOXMM6AaI2lrAMreFlJ5IazQkey9HtlfQAKWaL?= =?us-ascii?Q?5oWYVAPpQvY7PRnZmGdXI3fm+KA9qdmrUu2D2dsASZwv5bxYTaQdPrP9/57U?= =?us-ascii?Q?5AFU7arTjwCgwwBQLhXc+Q+GMTRwOAdzeznyi81C1NKsUm+eJm+vLOl+EhSn?= =?us-ascii?Q?BZ3bltItd/Jtpa/1W28MVWeognSLfNtt62MTDnGTxb5JIfFBjKObQ4SL/OD1?= =?us-ascii?Q?FiZVGeIe6tYd2V8P6mpZ7KH2b/VruoP/mJUmcJ59I1xs5minXGCX8YxuideV?= =?us-ascii?Q?ZgA7jL4mUmCmkoNQjzqn7yoDFm509hWHptq8DTyQzsH56G8DvTUQCuTyjAXJ?= =?us-ascii?Q?O84bgTaN2NnJLjEgqyXYEivPHKSr/uoOfUfg0e9DhZwS79WjWFwT4KBwn1Cx?= =?us-ascii?Q?2kkZkHMeTc+YgdUFEnJsGAbIhaevwBSjjinH6rLhp/wzNvVF4bKo0o7zG0HA?= =?us-ascii?Q?jgD/9Z0rOGusWgfhR/7OvFsPaeH/0pwUOiPY/0+BulMfr1Wam0loUNzhr3aw?= =?us-ascii?Q?xWRQu0CUEzUbqrVr1TSEPnd5qISEhBs63+NCQZTQWzPA1ckHFCEpruLdT+h+?= =?us-ascii?Q?dd/hZ9ngs1rhv2gKex5YPQD6NwdE3CjjCIC5VpffO+v7MJsjAjV6hjpEF0TF?= =?us-ascii?Q?dd+zaZhaHbEijzNWCKz7fiq8e98+siqMaZ1UEpIJ1LgpfJwuCR+nGRxw+O6p?= =?us-ascii?Q?zVVz7laT1xeFwDTjfA0JAGkigfjdEp75obzRRXcuC8DwTJop037Gb4JVCjoD?= =?us-ascii?Q?Xy3USkxkajANkO3EEvDXwI9wkSxz13h0AV0NdwOAyOWYRpzRyTQA9ebqvBv1?= =?us-ascii?Q?t9E48LlwjRJI1utJoXf3rnwK6EzAlFCagihRRufocpCJrIcs8+n22q602Glh?= =?us-ascii?Q?Zag9BKi//sDVS84RDv/dC7z6kBg5fFB+gYrpf5Wc9F7LoY+5EUX/cVIrCGYO?= =?us-ascii?Q?POQYViqj/nuEd/nx2ibc+hb3xXzlO0bGzRisOgFxUXIDRtD7cjnP557jvNpk?= =?us-ascii?Q?+lpvhDlTc1TxnimQzOuG6fWXj5eWain05n3CPI4FuZEGcdT?= X-Microsoft-Antispam-Message-Info: O8Y8OkEMrpBX933lVyhz50Ea4bMX5O2SMLSLgoYBrrFeNZQOWn5I2h/PnoqNxgmCqhKwgqa5iuN7/a6QNbgGRMWd+9HmOqPN8Ohlu9Ghs76RsToWaHiOlJQKX9+eq4m+lt0iCqJVoIJlagrxMyGCAwkY3tv3BwOw0SJE0pjy8BILH0r0wvwVge6ZQJLeLi7Y X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:NVetAPNG6jPOrNXHM3vAnMtnK+IzVCqdKIM30A5N9v9D30duDwWVtWLd78hbL2l2sf12I8aB54VL1uhLiAxSuh2RggQ6d8eLsIYiQNmQlQA7NZOo1vhT3cx2Uqoh7ZYlquS50P3V5ASYtJCSoXMConkiwY6mt+3QUGep428skoiF4w+bHv/gNs1qHKQgMfZb0AT0j+R294hXuMJjh05xq1cgu8LK+a91z/oPsanKq0kFlFMSMmwCNRWIBnG+BZjZu7ul+vHXwa5wyJUuxcNoqxau8+vcTCa+dS1iuZWleC6M6jAkgri6ey/5z+4UP6zQdnnsw3mw6KTZEfSXS2IL1lAT94bNtiMuXUnDXvYEMzl+bFkkG/IMMZePlV1GnuQiq2kqQRbkI8mtTLb+Xf4BhOF6ZotLj8w601zDsog8NXjkDkeF/20RaY864AH4AMauiAMb6RljKa4wuKkU03+gCw==; 5:m132OIYsGmImf0zVJbdF0ExkHx+uWiQk9WXS5ZVwvlAc4Rwg/pq0BdFiDI3OPl9YC3/xNmUgBkYfPUxGy0N9A8fQBSO5IQeTosqJXgmt1mxAru0ncKoXQIfxNDq4lV9V7VCjmPXRijztVCHeytTCAqDZPnTdVa93IV0ccDpekJY=; 24:FH5WpxxRgpFNOZEm4D5N82n8ZhNORhYI9e5oRBLZrZroWE60FK0+FbpsQB0ovCgq6DoKyITtp53Rq8BO/wlY6/lh0AnrOHU4jiyZiy6Rdfc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:/WMCMgpuf67Dyh+QCKMi5g3uN/ZwgfcgJu5ohYm/6oJmrTGpoGk/XdogwDRHSDsLQ3htZKXGi0amzz6MZ6me+8zb+oLUfvm+rqO3HAcAtAhVIEN7Llet7QDMOW48qvNNZ+7rbEf5UOk1mfgcxe0GeCFkfTOzABMQEn2IKJMkFPk+Au3026kK+eXMtat0hS4O/wEOwxe9/jgtpOPkDEEW39yeV/D64gdMBpmp/Hlf+PrcrV49UrfSrEzzLc7a50PS; 20:EOmibgl8kTOkz0eEzpYUAWG7djhfWMfzHFZrPP0BbvCMFqdj1rdYHdaLLY1fq3oo6OsKHyQC6RSNsRdyaf3zq3AkvyvfpkHpRfdroSsidcMu+huUUzn0tWTMG28KZwb3jA89Lm01Oy4zV8J8nOhaqjzP734BG1GrF3691Rg2E4kFCxLN6a1I0makFP7iAy9DtbewY0qyj1Ewd1XWxmE5tUcYK5Gr5+Vw1d3brzY7eQYDbs1rrNApOGg7quVbevAD X-MS-Office365-Filtering-Correlation-Id: 7dc1d7ef-6900-4c19-ccfd-08d59f3911ee X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:19.4670 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7dc1d7ef-6900-4c19-ccfd-08d59f3911ee X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.65 Subject: [Qemu-devel] [PATCH v6 1/9] i386: Helpers to encode cache information consistently 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" From: Eduardo Habkost Instead of having a collection of macros that need to be used in complex expressions to build CPUID data, define a CPUCacheInfo struct that can hold information about a given cache. Helper functions will take a CPUCacheInfo struct as input to encode CPUID leaves for a cache. This will help us ensure consistency between cache information CPUID leaves, and make the existing inconsistencies in CPUID info more visible. Signed-off-by: Eduardo Habkost Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 495 ++++++++++++++++++++++++++++++++++++++++----------= ---- target/i386/cpu.h | 53 ++++++ 2 files changed, 424 insertions(+), 124 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 555ae79..2d3d7d8 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -56,33 +56,240 @@ =20 #include "disas/capstone.h" =20 +/* Helpers for building CPUID[2] descriptors: */ + +struct CPUID2CacheDescriptorInfo { + enum CacheType type; + int level; + int size; + int line_size; + int associativity; +}; =20 -/* Cache topology CPUID constants: */ +#define KiB 1024 +#define MiB (1024 * 1024) =20 -/* CPUID Leaf 2 Descriptors */ +/* + * Known CPUID 2 cache descriptors. + * From Intel SDM Volume 2A, CPUID instruction + */ +struct CPUID2CacheDescriptorInfo cpuid2_cache_descriptors[] =3D { + [0x06] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 8 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x08] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x09] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 32 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x0A] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 8 * Ki= B, + .associativity =3D 2, .line_size =3D 32, }, + [0x0C] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x0D] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x0E] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 24 * Ki= B, + .associativity =3D 6, .line_size =3D 64, }, + [0x1D] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 128 * Ki= B, + .associativity =3D 2, .line_size =3D 64, }, + [0x21] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 256 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x22, 0x23 are not included + */ + [0x24] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x25, 0x20 are not included + */ + [0x2C] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 32 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x30] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 32 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x41] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 128 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x42] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 256 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x43] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x44] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x45] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x46] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 4 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x47] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 8 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x48] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 3 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + /* Descriptor 0x49 depends on CPU family/model, so it is not included = */ + [0x4A] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 6 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0x4B] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 8 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0x4C] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 12 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0x4D] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 16 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0x4E] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 6 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, + [0x60] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x66] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 8 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x67] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x68] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 32 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x78] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x79, 0x7A, 0x7B, 0x7C are not included. + */ + [0x7D] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x7F] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 2, .line_size =3D 64, }, + [0x80] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x82] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 256 * Ki= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x83] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x84] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x85] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x86] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x87] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xD0] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0xD1] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + [0xD2] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + [0xD6] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xD7] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xD8] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 4 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xDC] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 1.5 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0xDD] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 3 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0xDE] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 6 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0xE2] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0xE3] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 4 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0xE4] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 8 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0xEA] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 12 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, + [0xEB] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 18 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, + [0xEC] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 24 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, +}; + +/* + * "CPUID leaf 2 does not report cache descriptor information, + * use CPUID leaf 4 to query cache parameters" + */ +#define CACHE_DESCRIPTOR_UNAVAILABLE 0xFF =20 -#define CPUID_2_L1D_32KB_8WAY_64B 0x2c -#define CPUID_2_L1I_32KB_8WAY_64B 0x30 -#define CPUID_2_L2_2MB_8WAY_64B 0x7d -#define CPUID_2_L3_16MB_16WAY_64B 0x4d +/* + * Return a CPUID 2 cache descriptor for a given cache. + * If no known descriptor is found, return CACHE_DESCRIPTOR_UNAVAILABLE + */ +static uint8_t cpuid2_cache_descriptor(CPUCacheInfo *cache) +{ + int i; + + assert(cache->size > 0); + assert(cache->level > 0); + assert(cache->line_size > 0); + assert(cache->associativity > 0); + for (i =3D 0; i < ARRAY_SIZE(cpuid2_cache_descriptors); i++) { + struct CPUID2CacheDescriptorInfo *d =3D &cpuid2_cache_descriptors[= i]; + if (d->level =3D=3D cache->level && d->type =3D=3D cache->type && + d->size =3D=3D cache->size && d->line_size =3D=3D cache->line_= size && + d->associativity =3D=3D cache->associativity) { + return i; + } + } =20 + return CACHE_DESCRIPTOR_UNAVAILABLE; +} =20 /* CPUID Leaf 4 constants: */ =20 /* EAX: */ -#define CPUID_4_TYPE_DCACHE 1 -#define CPUID_4_TYPE_ICACHE 2 -#define CPUID_4_TYPE_UNIFIED 3 +#define CACHE_TYPE_D 1 +#define CACHE_TYPE_I 2 +#define CACHE_TYPE_UNIFIED 3 =20 -#define CPUID_4_LEVEL(l) ((l) << 5) +#define CACHE_LEVEL(l) (l << 5) =20 -#define CPUID_4_SELF_INIT_LEVEL (1 << 8) -#define CPUID_4_FULLY_ASSOC (1 << 9) +#define CACHE_SELF_INIT_LEVEL (1 << 8) =20 /* EDX: */ -#define CPUID_4_NO_INVD_SHARING (1 << 0) -#define CPUID_4_INCLUSIVE (1 << 1) -#define CPUID_4_COMPLEX_IDX (1 << 2) +#define CACHE_NO_INVD_SHARING (1 << 0) +#define CACHE_INCLUSIVE (1 << 1) +#define CACHE_COMPLEX_IDX (1 << 2) + +/* Encode CacheType for CPUID[4].EAX */ +#define CACHE_TYPE(t) (((t) =3D=3D DCACHE) ? CACHE_TYPE_D : \ + ((t) =3D=3D ICACHE) ? CACHE_TYPE_I : \ + ((t) =3D=3D UNIFIED_CACHE) ? CACHE_TYPE_UNIFIED := \ + 0 /* Invalid value */) + + +/* Encode cache info for CPUID[4] */ +static void encode_cache_cpuid4(CPUCacheInfo *cache, + int num_apic_ids, int num_cores, + 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); + + assert(num_apic_ids > 0); + *eax =3D CACHE_TYPE(cache->type) | + CACHE_LEVEL(cache->level) | + (cache->self_init ? CACHE_SELF_INIT_LEVEL : 0) | + ((num_cores - 1) << 26) | + ((num_apic_ids - 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); +} + +/* Encode cache info for CPUID[0x80000005].ECX or CPUID[0x80000005].EDX */ +static uint32_t encode_cache_cpuid80000005(CPUCacheInfo *cache) +{ + assert(cache->size % 1024 =3D=3D 0); + assert(cache->lines_per_tag > 0); + assert(cache->associativity > 0); + assert(cache->line_size > 0); + return ((cache->size / 1024) << 24) | (cache->associativity << 16) | + (cache->lines_per_tag << 8) | (cache->line_size); +} =20 #define ASSOC_FULL 0xFF =20 @@ -100,57 +307,140 @@ a =3D=3D ASSOC_FULL ? 0xF : \ 0 /* invalid value */) =20 +/* + * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX + * @l3 can be NULL. + */ +static void encode_cache_cpuid80000006(CPUCacheInfo *l2, + CPUCacheInfo *l3, + uint32_t *ecx, uint32_t *edx) +{ + assert(l2->size % 1024 =3D=3D 0); + assert(l2->associativity > 0); + assert(l2->lines_per_tag > 0); + assert(l2->line_size > 0); + *ecx =3D ((l2->size / 1024) << 16) | + (AMD_ENC_ASSOC(l2->associativity) << 12) | + (l2->lines_per_tag << 8) | (l2->line_size); + + if (l3) { + assert(l3->size % (512 * 1024) =3D=3D 0); + assert(l3->associativity > 0); + assert(l3->lines_per_tag > 0); + assert(l3->line_size > 0); + *edx =3D ((l3->size / (512 * 1024)) << 18) | + (AMD_ENC_ASSOC(l3->associativity) << 12) | + (l3->lines_per_tag << 8) | (l3->line_size); + } else { + *edx =3D 0; + } +} =20 /* Definitions of the hardcoded cache entries we expose: */ =20 /* L1 data cache: */ -#define L1D_LINE_SIZE 64 -#define L1D_ASSOCIATIVITY 8 -#define L1D_SETS 64 -#define L1D_PARTITIONS 1 -/* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 32KiB */ -#define L1D_DESCRIPTOR CPUID_2_L1D_32KB_8WAY_64B +static CPUCacheInfo l1d_cache =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 32 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 8, + .sets =3D 64, + .partitions =3D 1, + .no_invd_sharing =3D true, +}; + /*FIXME: CPUID leaf 0x80000005 is inconsistent with leaves 2 & 4 */ -#define L1D_LINES_PER_TAG 1 -#define L1D_SIZE_KB_AMD 64 -#define L1D_ASSOCIATIVITY_AMD 2 +static CPUCacheInfo l1d_cache_amd =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 64 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 2, + .sets =3D 512, + .partitions =3D 1, + .lines_per_tag =3D 1, + .no_invd_sharing =3D true, +}; =20 /* L1 instruction cache: */ -#define L1I_LINE_SIZE 64 -#define L1I_ASSOCIATIVITY 8 -#define L1I_SETS 64 -#define L1I_PARTITIONS 1 -/* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 32KiB */ -#define L1I_DESCRIPTOR CPUID_2_L1I_32KB_8WAY_64B +static CPUCacheInfo l1i_cache =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 32 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 8, + .sets =3D 64, + .partitions =3D 1, + .no_invd_sharing =3D true, +}; + /*FIXME: CPUID leaf 0x80000005 is inconsistent with leaves 2 & 4 */ -#define L1I_LINES_PER_TAG 1 -#define L1I_SIZE_KB_AMD 64 -#define L1I_ASSOCIATIVITY_AMD 2 +static CPUCacheInfo l1i_cache_amd =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 64 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 2, + .sets =3D 512, + .partitions =3D 1, + .lines_per_tag =3D 1, + .no_invd_sharing =3D true, +}; =20 /* Level 2 unified cache: */ -#define L2_LINE_SIZE 64 -#define L2_ASSOCIATIVITY 16 -#define L2_SETS 4096 -#define L2_PARTITIONS 1 -/* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 4MiB */ +static CPUCacheInfo l2_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 4 * MiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 16, + .sets =3D 4096, + .partitions =3D 1, + .no_invd_sharing =3D true, +}; + /*FIXME: CPUID leaf 2 descriptor is inconsistent with CPUID leaf 4 */ -#define L2_DESCRIPTOR CPUID_2_L2_2MB_8WAY_64B +static CPUCacheInfo l2_cache_cpuid2 =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 2 * MiB, + .line_size =3D 64, + .associativity =3D 8, +}; + + /*FIXME: CPUID leaf 0x80000006 is inconsistent with leaves 2 & 4 */ -#define L2_LINES_PER_TAG 1 -#define L2_SIZE_KB_AMD 512 +static CPUCacheInfo l2_cache_amd =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 512 * KiB, + .line_size =3D 64, + .lines_per_tag =3D 1, + .associativity =3D 8, + .sets =3D 1024, + .partitions =3D 1, +}; =20 /* Level 3 unified cache: */ -#define L3_SIZE_KB 0 /* disabled */ -#define L3_ASSOCIATIVITY 0 /* disabled */ -#define L3_LINES_PER_TAG 0 /* disabled */ -#define L3_LINE_SIZE 0 /* disabled */ -#define L3_N_LINE_SIZE 64 -#define L3_N_ASSOCIATIVITY 16 -#define L3_N_SETS 16384 -#define L3_N_PARTITIONS 1 -#define L3_N_DESCRIPTOR CPUID_2_L3_16MB_16WAY_64B -#define L3_N_LINES_PER_TAG 1 -#define L3_N_SIZE_KB_AMD 16384 +static CPUCacheInfo l3_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 3, + .size =3D 16 * MiB, + .line_size =3D 64, + .associativity =3D 16, + .sets =3D 16384, + .partitions =3D 1, + .lines_per_tag =3D 1, + .self_init =3D true, + .inclusive =3D true, + .complex_indexing =3D true, +}; =20 /* TLB definitions: */ =20 @@ -3294,85 +3584,53 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index= , uint32_t count, if (!cpu->enable_l3_cache) { *ecx =3D 0; } else { - *ecx =3D L3_N_DESCRIPTOR; + *ecx =3D cpuid2_cache_descriptor(&l3_cache); } - *edx =3D (L1D_DESCRIPTOR << 16) | \ - (L1I_DESCRIPTOR << 8) | \ - (L2_DESCRIPTOR); + *edx =3D (cpuid2_cache_descriptor(&l1d_cache) << 16) | + (cpuid2_cache_descriptor(&l1i_cache) << 8) | + (cpuid2_cache_descriptor(&l2_cache_cpuid2)); break; case 4: /* cache info: needed for Core compatibility */ if (cpu->cache_info_passthrough) { host_cpuid(index, count, eax, ebx, ecx, edx); + /* QEMU gives out its own APIC IDs, never pass down bits 31..2= 6. */ *eax &=3D ~0xFC000000; + if ((*eax & 31) && cs->nr_cores > 1) { + *eax |=3D (cs->nr_cores - 1) << 26; + } } else { *eax =3D 0; switch (count) { case 0: /* L1 dcache info */ - *eax |=3D CPUID_4_TYPE_DCACHE | \ - CPUID_4_LEVEL(1) | \ - CPUID_4_SELF_INIT_LEVEL; - *ebx =3D (L1D_LINE_SIZE - 1) | \ - ((L1D_PARTITIONS - 1) << 12) | \ - ((L1D_ASSOCIATIVITY - 1) << 22); - *ecx =3D L1D_SETS - 1; - *edx =3D CPUID_4_NO_INVD_SHARING; + encode_cache_cpuid4(&l1d_cache, + 1, cs->nr_cores, + eax, ebx, ecx, edx); break; case 1: /* L1 icache info */ - *eax |=3D CPUID_4_TYPE_ICACHE | \ - CPUID_4_LEVEL(1) | \ - CPUID_4_SELF_INIT_LEVEL; - *ebx =3D (L1I_LINE_SIZE - 1) | \ - ((L1I_PARTITIONS - 1) << 12) | \ - ((L1I_ASSOCIATIVITY - 1) << 22); - *ecx =3D L1I_SETS - 1; - *edx =3D CPUID_4_NO_INVD_SHARING; + encode_cache_cpuid4(&l1i_cache, + 1, cs->nr_cores, + eax, ebx, ecx, edx); break; case 2: /* L2 cache info */ - *eax |=3D CPUID_4_TYPE_UNIFIED | \ - CPUID_4_LEVEL(2) | \ - CPUID_4_SELF_INIT_LEVEL; - if (cs->nr_threads > 1) { - *eax |=3D (cs->nr_threads - 1) << 14; - } - *ebx =3D (L2_LINE_SIZE - 1) | \ - ((L2_PARTITIONS - 1) << 12) | \ - ((L2_ASSOCIATIVITY - 1) << 22); - *ecx =3D L2_SETS - 1; - *edx =3D CPUID_4_NO_INVD_SHARING; + encode_cache_cpuid4(&l2_cache, + cs->nr_threads, cs->nr_cores, + eax, ebx, ecx, edx); break; case 3: /* L3 cache info */ - if (!cpu->enable_l3_cache) { - *eax =3D 0; - *ebx =3D 0; - *ecx =3D 0; - *edx =3D 0; + pkg_offset =3D apicid_pkg_offset(cs->nr_cores, cs->nr_thre= ads); + if (cpu->enable_l3_cache) { + encode_cache_cpuid4(&l3_cache, + (1 << pkg_offset), cs->nr_cores, + eax, ebx, ecx, edx); break; } - *eax |=3D CPUID_4_TYPE_UNIFIED | \ - CPUID_4_LEVEL(3) | \ - CPUID_4_SELF_INIT_LEVEL; - pkg_offset =3D apicid_pkg_offset(cs->nr_cores, cs->nr_thre= ads); - *eax |=3D ((1 << pkg_offset) - 1) << 14; - *ebx =3D (L3_N_LINE_SIZE - 1) | \ - ((L3_N_PARTITIONS - 1) << 12) | \ - ((L3_N_ASSOCIATIVITY - 1) << 22); - *ecx =3D L3_N_SETS - 1; - *edx =3D CPUID_4_INCLUSIVE | CPUID_4_COMPLEX_IDX; - break; + /* fall through */ default: /* end of info */ - *eax =3D 0; - *ebx =3D 0; - *ecx =3D 0; - *edx =3D 0; + *eax =3D *ebx =3D *ecx =3D *edx =3D 0; break; } } - - /* QEMU gives out its own APIC IDs, never pass down bits 31..26. = */ - if ((*eax & 31) && cs->nr_cores > 1) { - *eax |=3D (cs->nr_cores - 1) << 26; - } break; case 5: /* mwait info: needed for Core compatibility */ @@ -3576,10 +3834,8 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES); *ebx =3D (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | \ (L1_ITLB_4K_ASSOC << 8) | (L1_ITLB_4K_ENTRIES); - *ecx =3D (L1D_SIZE_KB_AMD << 24) | (L1D_ASSOCIATIVITY_AMD << 16) |= \ - (L1D_LINES_PER_TAG << 8) | (L1D_LINE_SIZE); - *edx =3D (L1I_SIZE_KB_AMD << 24) | (L1I_ASSOCIATIVITY_AMD << 16) |= \ - (L1I_LINES_PER_TAG << 8) | (L1I_LINE_SIZE); + *ecx =3D encode_cache_cpuid80000005(&l1d_cache_amd); + *edx =3D encode_cache_cpuid80000005(&l1i_cache_amd); break; case 0x80000006: /* cache info (L2 cache) */ @@ -3595,18 +3851,9 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L2_DTLB_4K_ENTRIES << 16) | \ (AMD_ENC_ASSOC(L2_ITLB_4K_ASSOC) << 12) | \ (L2_ITLB_4K_ENTRIES); - *ecx =3D (L2_SIZE_KB_AMD << 16) | \ - (AMD_ENC_ASSOC(L2_ASSOCIATIVITY) << 12) | \ - (L2_LINES_PER_TAG << 8) | (L2_LINE_SIZE); - if (!cpu->enable_l3_cache) { - *edx =3D ((L3_SIZE_KB / 512) << 18) | \ - (AMD_ENC_ASSOC(L3_ASSOCIATIVITY) << 12) | \ - (L3_LINES_PER_TAG << 8) | (L3_LINE_SIZE); - } else { - *edx =3D ((L3_N_SIZE_KB_AMD / 512) << 18) | \ - (AMD_ENC_ASSOC(L3_N_ASSOCIATIVITY) << 12) | \ - (L3_N_LINES_PER_TAG << 8) | (L3_N_LINE_SIZE); - } + encode_cache_cpuid80000006(&l2_cache_amd, + cpu->enable_l3_cache ? &l3_cache : NULL, + ecx, edx); break; case 0x80000007: *eax =3D 0; diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 78db1b8..eaed287 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1044,6 +1044,59 @@ typedef enum TPRAccess { TPR_ACCESS_WRITE, } TPRAccess; =20 +/* Cache information data structures: */ + +enum CacheType { + DCACHE, + ICACHE, + UNIFIED_CACHE +}; + +typedef struct CPUCacheInfo { + enum CacheType type; + uint8_t level; + /* Size in bytes */ + uint32_t size; + /* Line size, in bytes */ + uint16_t line_size; + /* + * Associativity. + * Note: representation of fully-associative caches is not implemented + */ + uint8_t associativity; + /* Physical line partitions. CPUID[0x8000001D].EBX, CPUID[4].EBX */ + uint8_t partitions; + /* Number of sets. CPUID[0x8000001D].ECX, CPUID[4].ECX */ + uint32_t sets; + /* + * Lines per tag. + * AMD-specific: CPUID[0x80000005], CPUID[0x80000006]. + * (Is this synonym to @partitions?) + */ + uint8_t lines_per_tag; + + /* Self-initializing cache */ + bool self_init; + /* + * WBINVD/INVD is not guaranteed to act upon lower level caches of + * non-originating threads sharing this cache. + * CPUID[4].EDX[bit 0], CPUID[0x8000001D].EDX[bit 0] + */ + bool no_invd_sharing; + /* + * Cache is inclusive of lower cache levels. + * CPUID[4].EDX[bit 1], CPUID[0x8000001D].EDX[bit 1]. + */ + bool inclusive; + /* + * A complex function is used to index the cache, potentially using all + * address bits. CPUID[4].EDX[bit 2]. + */ + bool complex_indexing; +} CPUCacheInfo; + + + typedef struct CPUX86State { /* standard registers */ target_ulong regs[CPU_NB_REGS]; --=20 1.8.3.1 From nobody Mon Apr 29 10:24:55 2024 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 (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1523402326987427.2233650252532; Tue, 10 Apr 2018 16:18:46 -0700 (PDT) Received: from localhost ([::1]:54627 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62X6-0004Q5-CW for importer@patchew.org; Tue, 10 Apr 2018 19:18:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33730) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V1-0003Bw-H9 for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62Uy-0005gH-Vo for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:27 -0400 Received: from mail-bn3nam01on0065.outbound.protection.outlook.com ([104.47.33.65]:27472 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 1f62Uy-0005et-OJ for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:24 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:20 +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=O2mRPO7hkCOk8gMQ2T+ETBo83mlT9Yr9ZYYDe5omC5s=; b=CHj0/xfKUDJc2nrAFc4End7/iIUCNJj5RnZz5+zWx+I48vdZmpqOoFaK4WKWYyfM3yhHSIYzkd+H0ZQjuH+E9BGInJ33aetnZouH5ngIhMhGIUgcA3sH7o8vN4bZGIkq3mmgqQYl44k4SCq5tUD3iEYekSbNhnbDZ0U1A9Qa9+M= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:02 -0400 Message-Id: <1523402169-113351-3-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:iH0FjFAXukMMbPHZRMUY6zAGIUYW4vt8qRSgzhSyQaVJvNdGSjCNLstEEKZa2Z5iKdp13/KoRbZweMZvqVzQEWfd1dxvPdtMdrQ10gpdeVXg46nV64dj0P4zRy/RLJWGfAF7Hn1maILiCjWeooyPMQ/uiBvlaYCCmc63KA4F3xsBYbeNavpE9wzb7TB/Ds4uv5Yo6Jyp7P/aebzhoU23XJEmReksfwkxPMeh7+cN3sInVCb0AlHa+C69/WG6Km3m; 25:whD65YMhJQIUooyFcwt1TtA1630nZuHYoImFxcidCkpdleKBrnAnLD/Nj7JJJ+/We1pzx/V4NA60CkODcueJPAjsI1lHnstAZ/d1G4B+ZbI0i8UhIw4KNZGTEAbFdM8AU41neHeP3qd8T9+/lOgUhuKUl2ZGvsMlxeW7pMpRExxIMFlRvSb7CSnbI9znJG5/YScfDY4+pmmJRTVY1bstxAF5O/IpyD/SsBBUmEhURvAyyOgx52bVh6BnYjUQLVCKuxDI+IdzyJpOL7gSds+be7Xibu6XSSycJzHNihiey3SvoNJd4Xmc7fHhg1jW0qRkOoK2U3hU52KaHpLWpFaSPw==; 31:oYzE6GglAp0yq2tFCJOiZHTi+HzYdfcOjazE6mNpMEz1VbjnqyYtFqPU4LNe2CV68NsTEPsMjN2jGo6vZlRbsBBHlu2c9+oK4heltbg0UhokVElcJp314Ta7wBhnEaK8XRrPe46Pu9eU8ipap0bFlYsab73QAPaGiWhPHlC1GaMsS0DKVZw6J/exkNxEWHXBLp5gHyFibjlbsLLOs01l4OD0ktC71MAtey122+1Ykys= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:hZl6gEjUTXCjt5SJ+Gd//QsHUjTszJn4e2Lq/CcAuTSFS6U1Z8JeI71l1Rl2tTnNHJLA20mseTElHg5zSPGWFT5mb5OQhJxpWPL4LIT2XUsHEp+OTuo726QaPX5WpYp+E6XxKAJEd6tTymeZdrw5ctA2iPvvNpOnAuQAXZbZ5fAWIz4Itorz7DzGc60pKfpJOiE8LC8BIM7lTBh5wgqudcERaJm8iZNzKaWddJHiKIvdMqTzeWXEaEhM3V38MQMan8QxYgwZxTVm9EFZrqJAsExwgdFQGocznncQHpwDmJqcg276gUGauQLV2cvj3zND7N9OtcjxZLzdXsYgXJdxJEL90cFa5U4D9i5vLNCXc0VUbEENGJ9Vd0ifcRxc2dlU/ZPcsl57iS0Alc1c43COnEjfx4c55qsDcSNHIUwm5AYQqIgfN9mW4XUyB47OKcA5PgXo6zJAeH5J5+rUAwT53O8Lh6FcvGwlVrbIyNbNrA8WJwQlaveWUM2HwZPI93jM; 4:8gkgd35G3gpw5qQVTrFGrGinn8GsTy7xvKLOY1E327+EOoC40OtNmB2ItWNrx5htCQKPEW7fu5IkpzaIVaGzKhnP81QcO0XjSmzMNp6fnNmleuTTpc7fOri8Co2eOTrG3N47wjg4iizQYI/RhG+k8+Ps0m3VXxjEIF4mTaEiR60oyMI6NuC4O8ww3a7y0jvUetrwo/fr4cw1yXsgIO/IKl+d4wQBBrnPLqCOO0Cgpta12t1hVAGdYiE0Y7tbg/iO6Krbz2Rogv+ftYMTkNvNlis47VbnCMoptJ7jtMW+26PJwggFklc6TUPb6Zgs4Zyg 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(59450400001)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(15760500003)(51416003)(68736007)(53936002)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:xa7UZsg0xSlnpCjBAK2HrMHNusSMgNaxPTeTxNZaK?= =?us-ascii?Q?0Jme8aBtFWTQ8BNV3Uh97Crd01dLdva1VhnuCmEj6et09Uq9wT27o1sMVB4D?= =?us-ascii?Q?riyUPkz5lfi1fQX3pxLJ6+ZWxJFVTA7dmv/pfhTx6j8gEBdOdWW0zFg6WpVv?= =?us-ascii?Q?UfStNSv4QEXialb67S51Cgweoz2Bb34KBJ6E6ivpmYaNacnMj3LxMV0AQ+Rc?= =?us-ascii?Q?JWVzEfo3BhRryttcAsSAGox0cf2BT0S1XMVRv0Hh1CTJKQRhghN6WWgammF2?= =?us-ascii?Q?uCNp5MGqxPVAfoz+0RYPcjN8ETF/CmDvlpjFmDdqBwZyjFgL3mKH3iiprNt3?= =?us-ascii?Q?v7Hv0tYxDgid4m3P7eRPm25519IeDzYpnhHT/o+BijBCL+Da4wW6dyOai/xD?= =?us-ascii?Q?MddLZ/WLiI5tBqSKC74SFIAdv20mlk5XeCYMs7rc8GNllzp2kAMPZemxqzZa?= =?us-ascii?Q?VEBYq9cj+mnLKeOB593fGZ/3RpJqv63fdoQRpWJNdMzwMkENtkafV+XpIW3l?= =?us-ascii?Q?chpZEzWv2exZKuCfYc9K98ZkVrpZclFphkH4KuG11bTYodkgyVkNeZJ2MzTc?= =?us-ascii?Q?9V9BWyjR4ffAVSPrIpsHkmFwSM3//Lraz4cwSc2amRGYIA4Y80GlV8YQ621x?= =?us-ascii?Q?ttWPhSBBLYAjx0T2U29LlYiYA1ec43RaChNh/l+gDpeuSHrXH8FbUUTsytP1?= =?us-ascii?Q?QTi/TTDx+VpO8XMjCrqB1F1gnQcMmNUsYP5sjPELDzWFpBhebHlBYKmy/RQD?= =?us-ascii?Q?71rCjiZMu9cnNZaK7FB8gAA5yrxOQWDuc8eQfMg8Sd6oKEMGHhkYosbs/CHR?= =?us-ascii?Q?5A0iAaHOe+2/BNrQH97XEZlGuCU20QFPFL4aU0dB23vxsfXlK91XMSs6JYEN?= =?us-ascii?Q?/QJdj1rnCAUVEsQZbaHBiUuOQQ79FxBg7LCv95bPrJqpMuVK171/WuchhRh3?= =?us-ascii?Q?Vm2XxfakGzjFlks7puBZ/E/KXQbG4WH391YPcTwOUboqX3G/2iU+/6eO1Isx?= =?us-ascii?Q?ic0xLnXGcNEYlErrkKN5LiUyT0i/4EsLCRnMeEEFy1sctxWXFQ91nVfUvS5t?= =?us-ascii?Q?XVHekhKTyUh5CBFOSzh4ZtIz5neDDhw11z3QqSUy0INj2lASwKTBWUYE3xBa?= =?us-ascii?Q?vhOD8VtZlZYepcvsW+FF7z/ryIuy4C9JcLIc/+bj3SaC2xyabyqL7pzg+k02?= =?us-ascii?Q?H/fbqekuWWyv9i6fil4iZ8poDVzt0JzUehHueMSgG1V4/1dG0EFrv8vq8xwS?= =?us-ascii?Q?rtoS/I2Fie6oX1DmuN0C/V3jLSzuKoKdoc/QrayjA6hCkVLysZWfpTufrJ9Z?= =?us-ascii?B?dz09?= X-Microsoft-Antispam-Message-Info: ecDt9/gD6G6PT9axBxIEtQ3CAwR0jENN23YKVloa80ISmisrBGQIlNnmL7dxQCKHbQNPdOcNsjxHAmGjLYfp7lm5xjT0HNNjJHpZsFl0XKh22PjqBOALxHd5aqj/o1TZ0LpEzuFuE3NOAZH++vdzOsrxEFJFKJTXg4PRlJsP5a++sW/hnUxkK7cb5IPE+iGz X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:60Z1k4BH67ko8CppiENGl+4NCS0QUpygooOmADbApbCSFdc2VhSG58h5kBqcVAwOHVLfqj3PIzPjZ0tpf73Ncyw7uhwRCQQHGzJkdtTvcXBLBkkQ5HB0JdUtPxsE44by1BDA7pVJ5UkTNc/VSi812JeQ8wRjPl9yqXg0w3PsQGMtCION9WfNDcxQIFkqwjce9UZ4quZb6MceME44xZ+mvHgNqO8MMmPQEWXkuJaSxMvngrEqF4vN/Z6L5/nWxjHLH8ZvkXqFy9ydQfImRpz/LNdIkdTFrQAusvNHcdVQQtwCyBQxboD6CkJ0kCcF9FCiO7kc9Ycs8mb23SW0bqnxx2/hIlTm9xnIkV1+VXdAAsCHhw6VFpw6aX0yebtWUOlq2U4RtjeSmbzxryDb6rFqDcGzdN9FtEe7tlQ1XBim4Xqj2S5sO6rg4Ko5S0cjxMTnNMXscmmKhLeYHL4dvNt6TA==; 5:ibq0iTn6JGR5CEmekuGhEA6f+dgj1EFiwIawdswzZaNYOCFq0m9vx+2F1JIHUB73vD2V3yoIQ00l+UhMHh9QplSBMpHBQV65vCGZo0xmGlY+JzZax2PqZeerCMszF2JAH3BH7dFU9QEY4lvp+d3jrobbJYp2c5EGdfCQhqx4H1o=; 24:6Bw3IPM4kmK4F3SHMCF5drrRK7ojZbfEp3VkfM+O6twxCQbbet2PL2Zz64u6gn3qM0snmhI4Mq6eJA3FgOkQng90Sili5Z85SA6eCeo1h4o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:cOpIUy8PZvIB6eZf3ph0PqOLPw0+EtVPjaJEXsF58X+9OBzmalWy4o36yLZATpaN1W4FD88blLUPCkbtMAwW4ld8+Be+zVtUMarvtxjT5yiI/m0HoGnkPN5rgDb0O9pCKiECdobfuqip32pxwvHfwHH1eORcE/R5myvTUQ+4s4gdwvYJKo7fT9rBmlxw35IEx8eemQkNshPkdgVH9dyzrMREYDygsFgwVu3ilFwaKi/3WZSzkx95tMq6bC3cSG3Y; 20:r6/5NS0A7cRnv1IsfQLqBcm1BRK8CJLP3A4pCJSK5lVAZ46A2imXtfEct3KEXEx8xTo+cuwsygxlEvYVwdtSNOzFUVlpfW2iP2RfY8uYwpDTrprTjuRliJVA/tiDFUip7jN7wSgWNvRksJJ42uQ7ivuQfjoVDNAIMS/5Nr0bkeoz7fbMg8Wcn+xApJecj1D+1pw4qCHMlsngPTeuOqfrqSpFIW0AaKybQxoP4KUBiNoVgWhzKY5XFXMIuPBMwBu8 X-MS-Office365-Filtering-Correlation-Id: b34d25c1-f8f4-4a93-60fd-08d59f3912c5 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:20.9358 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b34d25c1-f8f4-4a93-60fd-08d59f3912c5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.65 Subject: [Qemu-devel] [PATCH v6 2/9] i386: Add cache information in X86CPUDefinition 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 cache information in X86CPUDefinition and CPUX86State. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 4 ++++ target/i386/cpu.h | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 2d3d7d8..8c84fa2 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1098,6 +1098,7 @@ struct X86CPUDefinition { int stepping; FeatureWordArray features; const char *model_id; + CPUCaches cache_info; }; =20 static X86CPUDefinition builtin_x86_defs[] =3D { @@ -3235,6 +3236,9 @@ static void x86_cpu_load_def(X86CPU *cpu, X86CPUDefin= ition *def, Error **errp) env->features[w] =3D def->features[w]; } =20 + /* Load Cache information from the X86CPUDefinition */ + memcpy(&env->cache_info, &def->cache_info, sizeof(CPUCaches)); + /* Special cases not set in the X86CPUDefinition structs: */ /* TODO: in-kernel irqchip for hvf */ if (kvm_enabled()) { diff --git a/target/i386/cpu.h b/target/i386/cpu.h index eaed287..aff8396 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1096,6 +1096,13 @@ typedef struct CPUCacheInfo { } CPUCacheInfo; =20 =20 +typedef struct CPUCaches { + bool valid; + CPUCacheInfo l1d_cache; + CPUCacheInfo l1i_cache; + CPUCacheInfo l2_cache; + CPUCacheInfo l3_cache; +} CPUCaches; =20 typedef struct CPUX86State { /* standard registers */ @@ -1282,6 +1289,7 @@ typedef struct CPUX86State { /* Features that were explicitly enabled/disabled */ FeatureWordArray user_features; uint32_t cpuid_model[12]; + CPUCaches cache_info; =20 /* MTRRs */ uint64_t mtrr_fixed[11]; --=20 1.8.3.1 From nobody Mon Apr 29 10:24:55 2024 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 1523402490524264.68998630649946; Tue, 10 Apr 2018 16:21:30 -0700 (PDT) Received: from localhost ([::1]:54718 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62Zt-0007Rp-KW for importer@patchew.org; Tue, 10 Apr 2018 19:21:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33728) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V1-0003Bv-Gb for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62Uz-0005gP-Dq for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:27 -0400 Received: from mail-bn3nam01on0065.outbound.protection.outlook.com ([104.47.33.65]:27472 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 1f62Uz-0005et-6Z for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:25 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:22 +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=LZF8twBL3ubwtlrZUCjG2R5r3cxjlRFxo7i17lCSGBc=; b=lgVYy1NOMpjQ8OQwS2T2Jws8oeshMhISyptZHrS7jaN+5LBT0xETNMrqq0WKhYTavgtkycRV8PF3RsEF8ognPBX1zYTdK9SasgJtbp7du6WUiDHGRbqYGwkkCEDwMAtnpIjQV4GJZeMSLOvUkjy/5TKo77Kq2isoLHEx/GDhW0k= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:03 -0400 Message-Id: <1523402169-113351-4-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:71/VSsq/x1KvfbfhX6Pw51NPKRHLscZ997CzvCodJkD/YVkqzjH9FUAFlWu5JkM+1jDVTlHU1Ki3mXRs/hQoyN8FhRTGOrKauVWmTyDI5az7qT/mrUHD5GW7ROjyc2vBggrFvBGrfl9AjJdgnyYq4nKpTOU/NypaU4haxJxfK5xX2RBdPv61krRwEdN6Uw9ZmRpUAEI9DLi2FHJmOeMs0II9ORxT5CTGWE7x36j6oJj5h/t1mgXDYMo771CPJKfJ; 25:H98gCVpqGW52fxiPmQCvZGKqLA2uCxMG4zo3XzfZqMJuxORwL8RprS8WJuo7Dr8mqsKmU+KPN/XQE6O4qsKaUaflX8T4TQ0oqVcnvxb9VHbjTzaLnzXyuAXlq7ls+MG6TY6VtMQk+7ZpRBwxp11zJkJrugGLTOo8CuTdlmqasvQE6t0f/rl7FLDH5Q8rhQzFxe+o8ypea7Pgt/2sioeEnoooXkLc8oIHal/6c0QIFCCev8IwAq7RWH5OJlIRNTBETRk2htWQtIknKwzay07+q/oMkVycWSiqNST0ws5PdiP2bgn8JiZIK0M7G1RJU1xya7rc3pceUih/69EzI/gERA==; 31:QLh/48ue3xzRsWt7Q6/fkCXKrhb8ecc8YBUQpEje8vQ02Vl2y5V0dXe8ifilfGXpPI94m5VJZOwOHSFRrwXcSFyonSqgQmGxPwnywV7HiKlQVRCrIpZop9I19+/Grr8eZbqdQOvmakdtmRcX0P5w4KZyXTwHvuFMML+HLIk1fw+8/NasEe3FWg9bW3gd07uWW6+bOZcAaVy8Rp7uzXJ+ljSVgILqw1DV2187XXaz02k= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:58ritSo0yiaZJ2NF/LmZ4wQRCetHBWXt6YTtJdpsgODBL+QKUUCSRJ8Y/Os5tRHFS8m377zHSjIA0XwEEX1yhGrqCmBFPsdLCWOruUK0ALQHTqB5SREJFsEFJfsLrPnuQzeuOHC8iR4LoDX2HPDu4FV+1xKs00WVYuSNndxf+G7f8eNlRyzmr1pqsdKOmpYv4e19wONtdDYkrxnjMAKR6C7Z3n59wOyVTYr8x47ya9RFhTCCGWSpyOLfD7/S7to3MeJaLHuuA34xsbjHVehhGBBGzVZCPQlVpOZ8NjjYzN/CiqZ99ooFudUnQ7l6cchkdNZ7XBO8eQEKJEWSQl0Mhvux0aGxFOWtKJNKAjh+NJlkHb0aElBim4m3O7mmXrIPQUN/G5GSodCANcPkFPd5o2mZ1w/n2Z8j6RHUipn4IvMIy6ByG6WtkjKjNACOFTu6T32D7l/Zjf/hnojIlMBKGjC/IpuFGNF9KLhkWPH5N6NGc4camu2uP51ZphsiCNmX; 4:LUX4W266EdfxV1cBg85Wti0DTN7e11Afmt+ytiaqGRNgkZvRTi77N0De2XZ4+b2QZeYiLUF7xJtT48636N7hF87tpTHqWmWdQphKgfUtnUXhJCbuX4+NIG6DE5+QeuAT3evM4cjOFhWGkM+Lk3z5YJLPthPRXHR5uoRkIQnf9+gohHxWUJHgpPRMOE1cGo/pVbIJR0gXaSqFb+YSi7aKQHcfJUBCvI2oextgK/o0UPNbB+7k8cbNKG1ecKVyvXMZQnW8oRtynx7YbjnV8Mt7HqgjoH+Wvb47bPKp11ePaZSYqn0N2r46QsEBagNvBrAv 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(68736007)(53936002)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:9LZgwo5InpXXTNh2Zzfm3eu1NjtKo9L2suAjFgbSH?= =?us-ascii?Q?DKs7GBefDvCJuPzRQQSHI1ggypOqpr98atlCSbh10Ka9s8fLaoVLIhcb3rOU?= =?us-ascii?Q?dB3o3A8RC2xYOnOaaCOAUCRMTEJekgChHnLxtgWa8mh2EeZXLgw2ymmiaa6R?= =?us-ascii?Q?ZXshymVrjfx/cXJbANnwWxChARTbIa3lHGUrREgZ6JsZ1YXnpifOtno1uiAd?= =?us-ascii?Q?zhueP8dlCIdlbtcB3QftNmIvjdG/qTuyu9/K6PeoUA1dXW/8eL6cy+A8kvb7?= =?us-ascii?Q?tHXQFUyUKVPUY7/JjBtJCU/dE/4aShLbFwMniuO62jzhs6uH4LBHy8NY0OLH?= =?us-ascii?Q?/Fy9FGGD9ElM56yTgwsjbAFinbjPD3WiKyUhS3tja8Up8ZNYAwVfee8To+71?= =?us-ascii?Q?xq4HCoUM4e4jODDIGxkYpUEhZYAkTVNa6cyowmUCmAhNTjb4H8dlhyH72W4H?= =?us-ascii?Q?V3zDbuhYWthxV1hsUoDpKPYhoWsM+jnQTefvgP1j8e7CZnRmVPwbr33QUbPJ?= =?us-ascii?Q?oABaH8ycMn7pZSTR/FDZ5nOK/L+efr5HrpUdWz41wCzc623o1K704XJhEGEL?= =?us-ascii?Q?W8+9dw8YOgXcRxlclZPEzP0/VDX/5sY+itA7EfVxi/nlwunCz0ozE4JuIuVO?= =?us-ascii?Q?azxHofSb1JetN/Od48fLxg/zfMykBeExYDiGZpZ5Z9DiKHbZTr3LOBE18Dnh?= =?us-ascii?Q?W7kvkNkvD0vQhYooGeMVKGxzc6lYxnurf8Ul/tRgiViJ5JxhHw+DqRDeGYyH?= =?us-ascii?Q?hVZicIwUKd3p+Akf+E1eCGP3SwrJ9QyLC9/y13oarJ3IZysAD/7zdfxfcDzX?= =?us-ascii?Q?xKXYDfDUgg9R1XqoHbt4U1zkmvUa7w5zFKgJeb8CfBxTlPlFTW1SfZwFrCTo?= =?us-ascii?Q?Nfsm/GG0lJNeNzqJ60zH3b9Lu1uxGAvBZ5L8vpnYnBDIx+1kT99yTAYnmd7E?= =?us-ascii?Q?jZUwzYvKleIZW4Sdt2aoVEGwtZzrSlysq+zeh1D140rU/PfX37kXHT5+05DC?= =?us-ascii?Q?sN7kRoMU29Pjq1TR5P7rQ4lUOwsu1l3TiImvGwCBar4+q8OXmF7xO2z4kV6b?= =?us-ascii?Q?Qa3I9zkLJ+6sfhp5+9Q2Pn/ieD9uInFGXt6kauFNK7KhIdNiQOgbqMmKWWgl?= =?us-ascii?Q?zOtaFCmkhsUME0B8w63XpKtttwrcAQ16TKdL5UXreJAy6WzDRrdpfOSb1iG4?= =?us-ascii?Q?a4iKE2G7nUOKrxc05fgbC1u2/n2FDlxfW9A2uqPtsAVD8TJP0EZSZtY3g=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Antispam-Message-Info: vBee5N3B85/v1MkjZD49N0rSp4HktBNfc2z/xjZyoRB/L0hxkKMRGJA8p0e5Jo2YM6wjBlA+d3u9MbOykQ35kYrhvsPKJQteGpT5uthzZKEDsIVfeiEF7WF2lnx6E4ueYtm/03/gm0SJucLIhmwti9hX9aRPAdSDNWTb7yCXgzZdn5CbOyuOvUsOASXphXWG X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:pLtFBFDeCzDrHxsGaI1YZfVYiEt0JLbmnXgz13f+ounSUgiRGQE6yg520SijJav6pBddNQeNSefkWQTMHvvTMv2lzDtNmR13pJxt0INbrLogDCs+aRvqedkgIA4PlmMWq1wLIZAKupDwjVZGJFasqTRwvq8NS48hspHAp/GZfeH8XFIZxMeXDJpTi+lQLETW8z0ft6t72y6S2zzzCVSCvvG1XN8YXU5G+dK2/WjXVv3OptohDZWkUKzbN1pbxo4nFZOpNVhZd9EpkxHTtAz7Vmmi6BZhMxgVlUhAqzqLxLmb5FIlDopkaG3HK4YzIL4qdipy/IFZPdAbEHopEQd2tEnnBtm75/tz/EAzV5t0f/YVk4FN2x6giamheHOK80/fIWMRji4q0d2cGkzIe5SJO3YdqPpAkzZoDkG/4YWAMRwkL2XaYFnJjpwQKMJQm0ji/y1mqfxACQiEfuN9E97WQw==; 5:l1x+zcTHWb3SQ8xAP3PBaO1Nky3V6r0QLiCtAM7Ff0CzM7iUr3tx0pTug0NGnGzDInNcCH1+8YvDZbDpEPw9QCsyQoV9MhBU786op0RMWTGvjPW9eeFEpaS6un1F/ITB9PrWmQn6qe80lCbRInnPJ5MPnQoQlRryDwYV6cKfLr0=; 24:N+1scDA1OJQmelvG2ChZpB0oN1eLGZqnZVWZqBW6iwX9lMSiTBR+smG5QN3/VKEH5lHboqkCHExrqXYVClCZoqloBKITL5G8xbXbPVJakZ8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:5q7j43df5Uy++wMXtezIq7QTcltW1u5fbj4IxEoisdfzS0mPjBhOUC1aYW4qfaVujXbTuOWuUt5Fw579u5V6FMFJhIzXCLc3vO/Jjkys1eXEsjkeGzjxCmDLxlD7BjNHhKCwHjqXYvM9TsByigB+C1wBzrjdYxkFfM5RA55LG4cpJBgc8K9nEDahPHvSv4nAN2ix4OadNNTSkKDkgIwY3PIrkhww1e05g7h5Y7s3jq5YDMnKGuBpciOFZWylZ9Fj; 20:1beFRmpQcvArS6tTjep9K4ZRrIxH93SfcWZM5Mkrj2osOeGbJOCckgo4a52zPPU6CDI/G4rR8gi5lNwUleyDI5K868urxJw3YlnoxKsM2SGz32o4Upu/nk34GYhUEJJwHKt1fF5pWSuUc2E0Z1hL6VJxEjPbJNFcEKwo0vFfgf3SOeqxPzu+8gXOrgeJJST2brPWgh7FNPeJHAv47WgnaIq+FN7uymV//lDZ8BoSOQrKjM3/GZeMWHMHYEq3+tO+ X-MS-Office365-Filtering-Correlation-Id: f0297390-4c62-442a-e224-08d59f391388 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:22.2170 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f0297390-4c62-442a-e224-08d59f391388 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.65 Subject: [Qemu-devel] [PATCH v6 3/9] i386: Initialize cache information for EPYC family processors 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" Initialize pre-determined cache information for EPYC processors. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 96 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 8c84fa2..3b2a19a 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2295,6 +2295,54 @@ static X86CPUDefinition builtin_x86_defs[] =3D { CPUID_6_EAX_ARAT, .xlevel =3D 0x8000000A, .model_id =3D "AMD EPYC Processor", + .cache_info.valid =3D 1, + .cache_info.l1d_cache =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 32 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 64, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l1i_cache =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 64 * KiB, + .line_size =3D 64, + .associativity =3D 4, + .partitions =3D 1, + .sets =3D 256, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l2_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 512 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 1024, + .lines_per_tag =3D 1, + }, + .cache_info.l3_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 3, + .size =3D 8 * MiB, + .line_size =3D 64, + .associativity =3D 16, + .partitions =3D 1, + .sets =3D 8192, + .lines_per_tag =3D 1, + .self_init =3D true, + .inclusive =3D true, + .complex_indexing =3D true, + }, }, { .name =3D "EPYC-IBPB", @@ -2341,6 +2389,54 @@ static X86CPUDefinition builtin_x86_defs[] =3D { CPUID_6_EAX_ARAT, .xlevel =3D 0x8000000A, .model_id =3D "AMD EPYC Processor (with IBPB)", + .cache_info.valid =3D 1, + .cache_info.l1d_cache =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 32 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 64, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l1i_cache =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 64 * KiB, + .line_size =3D 64, + .associativity =3D 4, + .partitions =3D 1, + .sets =3D 256, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l2_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 512 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 1024, + .lines_per_tag =3D 1, + }, + .cache_info.l3_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 3, + .size =3D 8 * MiB, + .line_size =3D 64, + .associativity =3D 16, + .partitions =3D 1, + .sets =3D 8192, + .lines_per_tag =3D 1, + .self_init =3D true, + .inclusive =3D true, + .complex_indexing =3D true, + }, }, }; =20 --=20 1.8.3.1 From nobody Mon Apr 29 10:24:55 2024 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 1523402488600790.0285049505642; Tue, 10 Apr 2018 16:21:28 -0700 (PDT) Received: from localhost ([::1]:54717 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62Zr-0007QV-Nd for importer@patchew.org; Tue, 10 Apr 2018 19:21:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33731) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V1-0003Bx-Hq for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62V0-0005gb-5J for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:27 -0400 Received: from mail-bn3nam01on0065.outbound.protection.outlook.com ([104.47.33.65]:17470 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 1f62Uz-0005gT-Ur for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:26 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:23 +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=AelhNrcBqvDL/InqNpcDQknPEe6yppMN9FDadWALy4c=; b=hbgNG9/SdEF5/SpWEAnAVM9hp3vscfyjlLlnDZ8nbOy9NOa3WxJKKJG0iaiORc0k631NnEJgnYQpuD70keztFmSGPy6AzwdAODp1IuTBQ6WZsP9BQNPOnUmLb8O9p2Wmfw/9/SbxzWcFEwqoochTpf0GSIIIl9l1pOkald74paA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:04 -0400 Message-Id: <1523402169-113351-5-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:uB6RmlcoDPZYZa+0eQpNnW3qaF6ABHHfqQ+LdB0kSu0pAgbji354CRwDax7BmRsO0TilbYd1m81xT9E4JnS/q9vX+HzAWDo32NUsc0WxYnW2JKixkuyhOk+YVEnl6/it69eL8nYAA/ASr2EOptU1AQ6sZmd+62ggWBqmnRWIfZwjBjD7ZI5Uves74jFJpaQaYHSTWO3ntYsg07dooBJJh3NGNxkPqJanpVJeE1C2zF8T/HpNPa90txKgQyajTZuX; 25:Z5rnjOXnQFq54BhKP/gBJfT215UhDTwuZeknDN5FbT9vQjJVQWUIOIhxf290U9XkQcjIlqciWoNLaspNgtpqRzDt5tSZJLrtzSkxP7+JOxW+nN/2VSBRntNm52Csq7TosGa7mm2xlcXOfbCFBiewYiw7bFrDdJNwo6lwzyRMI+oeChrgiIqq+0Yz2Aso4kPv1cxzZLgC4nWX5TtMmzcXFjQh0S+Cm53PGEj+qLvf909I4V48NgsQWVw+Y1bEby0KRjgcDt8wvDrTONRPuExp/+YTdKbINjVpTZ5nUhF8v+E1xK7UX98gT27J00RSnGf+MOweTFbtPK7zK8kb9clrpw==; 31:seF9Bc5QFqPg1/f8XaIdNXvqNgHWkawgb5mIM1cOzJj93CcKUETWEsnVSguwHPEK7BEE1uYXO3T/i0JbiGSLGH/3itD1ORnGPzgaEmg2Wre76rLloFlhdiuG12mVQ7igh7V/dAzGU96TnKP7eVXw9/64HbWKhbgnJxe8uNzvRUOX88YmPf+UURk7A+AhMCLK1SvJKyyZpDX4tFsIqsuXzVZ+kyPhohZBH5/96BPq6Y4= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:rLmfRZguFt7+/WND7iUB2fSySQVVIDdneD7AJ+BjyyZWUgGCDxcT80eVV9K+VyAzQ7TGTfTJmQvZKb8yb/jaGR/UNKpuY2O2cWhXjMvpyaVqZw/w1xpTX9RJEXNcr2UU4k2dv0gTinSdbH2bYmCIi9iXwIYZbl4MI5HujRuUL5k8csxVBApJ8py7W0+5kvuZdpA+HUQdyztMiLQn4D38H4ne/jAebwHMxB8WdQLZClzyz6/6pWLzHYgSTNBx4qxScaFj08qdM/3afde615UR5d7aUpc0flU8cbD0P2VAQ1mJAxmx3k+m1LApLjzEvpAz3C7U94C7cRm7AeL8tfGQNQkt4QT4xWrAu28eVVRWJw3vsWWgEJqE7L9caJa8dVsleYn9mqV1rZoY5xwcdt1w8giMVV+J05IbF69obDFL01JdlzQo2XJz/wZSaTzxFoYYuv+thPO7z36CKX9iAE8TdRPoAltYVv3qUR/SDfUbGF8ZvOlP6rlCrjXVRGKD9kJq; 4:OhSicr4uWGNo1znvRCzg2zFLrn8bgZSv3lXJooMUiHgQYmmpchEHuwVOokELGZ/G5j/zmoa56WJHllq8awpuUFTYGLLLIjOFydKnuBtu8bGvCQckvR4QhUI/QFzCe4KHcnUZKT2gxhnSxBMlC9aAVl9o+G/F9YwJOyCQdkCulweJY6WSR/pBue1Ds4DWU6SIzPWrpSjvl2MPDMPbF6yKgWVWNq9zpvpUyqTKIxlH4rOWu23+gKpSovzKpnRWO14i/nymE8KIAH17uUqUuTe0fxXooLeMbfDP/AhC4jHP0TkEkxIzbQneiGDuDpwjicK/ 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(45080400002)(68736007)(53936002)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:Espn7W8EEcEe3xXdeA4hRzfH1idnwd6Qa0k25rdi/?= =?us-ascii?Q?60XoPzKEVZgTIoXsWw++XHyhYqFqJHZt1lrk055El8gQ5dPMH/9lBBDoUp6B?= =?us-ascii?Q?foQABl7bb0WZaiPrzkwdupIW7NbbLt8RdQoLTFnHBhWvQeONmxQ4Yo9BEyM0?= =?us-ascii?Q?lGTgmCQleB5pSd81WiTLzpl+sPPNn80FNbp1Xs3/NAbyHaM2PPOGbIrfzyTm?= =?us-ascii?Q?S7s7Pi2Ohvf+chxZC1rvEtN2X3XqC09FxwAY0QvlEXSjUIBhPuX0iPRYTCQ7?= =?us-ascii?Q?e3LTFFw+BcnOi6SAokybQNQH1JMAQrq5yERnrVkMpDbGplHcMOFPQ49I7EQM?= =?us-ascii?Q?KcE79o3Nl9KW+E4DHAznihCu2RlkTHOh+gaLwv8krcyzdReoqZAS22xH+qeh?= =?us-ascii?Q?t2eqCzV5K/wn1YAQiPU2yVP4Gby/CBj6jFJfKeaVzCi4hq0mqp2piM6MtLgA?= =?us-ascii?Q?QlZ8rFBYQG9MC378khYDNetU7/d9182TiW7bDPKMSwG/Nj7sgoKNYhtfJLZ6?= =?us-ascii?Q?GCZQRGu6UQLZiLLSdQkQ4B/HsR4FfSfeRY0eN8zzQxp5jilsxDktXY9qMdSo?= =?us-ascii?Q?svLWe4H4usASGybsYpGP4oZLsy1/EZT6/abnwuytatE4LQ8HsVcId9rDBP20?= =?us-ascii?Q?jyEuemunzTKCh9KSCar2i7W5uw76cA93w2Xnl5jNNnzasfnKZ+5D3VwQi5kk?= =?us-ascii?Q?/3ZVJSoC2NsBDU1cJ5EuPo29HleJzLB1pA8RGM/yKKB7W0Mt1VgswlOP1pAM?= =?us-ascii?Q?zBp6yc5EY3T1Z6JChR43FUBdH6Q6MuIu0Njv88UCwFdNHl4o8ZUKI/pB28RS?= =?us-ascii?Q?aoE/ghMKIecBDHdJILyC4VxxxL5e+sE0fRb7VPGcPI6VtRfznIQmRTUlZWz0?= =?us-ascii?Q?8IxBX1DWfC2Oh5LRRHaGE3FXgkMIkDRG82UzkR/WkJf0miOsnN1u9CReF5Qs?= =?us-ascii?Q?vdKLRNqrwvVKpT0itLyA8zdc1L0Tp+q0VANOZiAkI/2AX0MNhRwALLP7PCZB?= =?us-ascii?Q?ngjxiXmDF0s0fCRzskbX8b12p08QlekoMll0W1lWdIE0lVTRqVSEsVy2qhGS?= =?us-ascii?Q?qSVWCteP4/mn0Up6d8tYu12F6orqxbqqHppBhNnqC0Flc5smr9wP6hbl9T6/?= =?us-ascii?Q?MsK2UK8IeFd/MoUKeA5cwtbW2o9vEmbrc2jFVOX1F7dFkFq+vOZMIHXAXe6A?= =?us-ascii?Q?zMLoKVbWN/vtv7aR47A96D1DmCaYuMT6caesi5jnqOPpTvsvnJAYWJZgpuK3?= =?us-ascii?Q?nHMcwzzymsWytFPB9s=3D?= X-Microsoft-Antispam-Message-Info: p2s49ISu5gvrvoMaK5Z2HhP6Q0xYDRxvPxmUMtGlc6Q6I1XUJ/8ZN7mCbk5uM+ctRBHYrKOE/+41/Bu31P9NLE+19ouyrXJNK20b8T6Bbjcp8neBCQAxUMYqUQSo5gfMaH1igH/QLpVKeKu2yKkORsoOwxS6BwoT53rsDiwxFtcarWXF1w5VYY7tkz6P6UjZ X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:s1zAseTou0yQEtAUiL+mG9AwEVhV7eQprY3fyhsOEaexBT/yFX77mD5ZzhX9s1sgcgDNyf1XaNeuaMK7jFnjoz8VMlKVeAc/v/YJ4HOboAje99/D2xDCshdvhdqxWfJWn2nOd+/dLxpV4oi1grwCyREPJNSYTTPdcNhSk2DPrDgwQza1q+OibAeac8RZ3FScocpNVIlh2z2O7u0/OPDTLwHKHHT9KusJ0L6mfwesmpLpkOxAOE+5brZKRN6KfOq33+qYJkbpFKMX6kxbYgbrNKuLeZaeAXH4auyhvoVC61qYdxOK+DLoyC6WHmkmIJ65YCEeZYgtl0YgqtmXHRgBzns9oqXeeyNDPGn85Pt+vfS/gKKSQ1xssVszqSnuhb8z9G5PHnmhbFyz7e0b3eggoZh2Q8EzkppWj7jeDzLO9L3kKqyV5iB7ycAbSuFuhynpXBosSLFZ9Tw8giV5YyXpCw==; 5:nQtlllbJP/81tq85d+Ta7TpY2Tw0hrSFT8HXUmmsx7E1OinueHgZpmSii8HsahL1TvSjExoSjBtl4f+fTTCVci6pWwHCT/hw/V7A/6xWjUWDN/ebzLSlwKoTo+bWMRcls2FOUs6SLdRT3DsQw52PEm779QA0t2ebFFV6tY6ECME=; 24:ggEntTsmBz8CGfp7O9+JGoz9SloRd2KO+w3Qip+8adeHr7lJQ4sQ/MmgjPUYMujE/e00Tqk5P3yZTCiA6/8PVcqK3lFje7VaM6rcA1GHfQI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:D5lH469AaFd3zigILZLh9VveZeQSvVKuFq/eFEmOFvQV10KaM7jUy0xiTN1XP2yXIT3LI/fx2IIMdRtA1Q2ccnYduKLmEph+yCIrUriWVre24Xat4fG/laVRrMo50WbuyNnqZhca8xyEWguiV69ewqebGhsZSXiB0zw+q/VUKFxu5LnMqBSmbzJLx3F7lt7/gonXlX440TdmjsHGYJmlxp92eXPIXrpWgW24bxDpzDraxQeKJZcKt8De2Vva/udH; 20:If4DwOYsrDB3+FaqMQsLb3JNkAk+gdki87lb+/xw9WFvt0FO5HeThGGhh1bzlpomw7vhNa0kFkjWXbJtdYafrUQKCGsIpDzrQb3Z0DO8fTLT2Q/1O6a9uOzDdY5FyPc32jIIET0NDk/wLZ64+JvxVLyn6y62O8+AIGqEUZjaFhGoBMXVrTHxQf3DWIXq6sMvlfRkUK9Ad/fisuxPsLpyNXfDpjeU/mm0yhIQCBCnY/qgmTLts1dWPNjgVLsV4xsB X-MS-Office365-Filtering-Correlation-Id: 392f95cf-38e3-4e87-c5af-08d59f39144e X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:23.5139 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 392f95cf-38e3-4e87-c5af-08d59f39144e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.65 Subject: [Qemu-devel] [PATCH v6 4/9] i386: Add new property to control cache info 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" This will be used to control the cache information. By default new information will be displayed. If user passes "-cpu legacy-cache" then older information will be displayed even if the hardware supports new information. It will be "on" for machine type "pc-q35-2.10" for compatibility. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- include/hw/i386/pc.h | 4 ++++ target/i386/cpu.c | 1 + target/i386/cpu.h | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index ffee841..d904a3c 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -327,6 +327,10 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_= t *); .driver =3D "q35-pcihost",\ .property =3D "x-pci-hole64-fix",\ .value =3D "off",\ + },{\ + .driver =3D TYPE_X86_CPU,\ + .property =3D "legacy-cache",\ + .value =3D "on",\ }, =20 #define PC_COMPAT_2_9 \ diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 3b2a19a..1659320 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5129,6 +5129,7 @@ static Property x86_cpu_properties[] =3D { false), DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true), DEFINE_PROP_BOOL("tcg-cpuid", X86CPU, expose_tcg, true), + DEFINE_PROP_BOOL("legacy-cache", X86CPU, legacy_cache, false), =20 /* * From "Requirements for Implementing the Microsoft diff --git a/target/i386/cpu.h b/target/i386/cpu.h index aff8396..fe8edf6 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1394,6 +1394,11 @@ struct X86CPU { */ bool enable_l3_cache; =20 + /* Compatibility bits for old machine types. + * If true present the old cache topology information + */ + bool legacy_cache; + /* Compatibility bits for old machine types: */ bool enable_cpuid_0xb; =20 --=20 1.8.3.1 From nobody Mon Apr 29 10:24:55 2024 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 (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 15234026422023.3306293438632792; Tue, 10 Apr 2018 16:24:02 -0700 (PDT) Received: from localhost ([::1]:54882 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62cC-00013J-PW for importer@patchew.org; Tue, 10 Apr 2018 19:23:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33768) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V4-0003DA-Nd for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62V1-0005gu-Gl for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:30 -0400 Received: from mail-bn3nam01on0048.outbound.protection.outlook.com ([104.47.33.48]:14064 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 1f62V1-0005gm-9D for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:27 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:24 +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=gaBIiQvuWoV+cMXuPWJoGz2zhLJtlI4qzHFtwzqHmwk=; b=qUwEr/7i5bOV+mpe40FMaBLL4B0ojNFYNhYVSzQNUesTkPadZAesKIS6DnnBp3/+ucKBF8OS1lSSu8sZqf3Cel0z2iZI5LgHPGHDUP24ohDdXw6jqp22O+EUDA6yPsq7rX+GxPnTBvypN8ug/JsBlaqq91fV37Vc1sE/+2HsSRA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:05 -0400 Message-Id: <1523402169-113351-6-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:gEO73zRpTLnQBU8hNi3I4l7KC5nx6eU7afgbpupfsc0lRS2jSkhjh2uWSnqHn2mE5AogOz5RSn+7vrYE665U7zRe8eR5QFMVDKDUfw1We5Y+4MB0Z/ihBnOqNod0GsNTYn6CrmUv1e27caO8CBT7wMkqSKUDWrL7N/k0wTyc8PgYkU52ihUBYygw64BnLzrBomZQ3KlfLfy2UdGRj5BheBnbRzsFfk15SrIoUkd+499wIwMHCsWGVrtFOAsNQNLt; 25:btPkphee62IcNxwHsEcsZ31OOjME7/IdDQbjqzip15mvbqgVsf1EC92yhDKSohx3g2w5xCam8u0fHznr9oJyBrit0+DcdFJFQvUTUQJQriN1h9gmB5jZwcYOWaO9USsd/qGHXlsVx7ktdjDjYYTIRCcuNUWA3bqpIdHtDDMjlto94f7wDfnBjVIJFikkigjHTxL2B+W3NVT5Pk7NWg6cLC45R2PZ6kelKbqxVsYZIkOjsPAKevYpunBqohxStjLEHShoRpF1R2/bn4UigagRAocvQYwsA2wg/eDcf3fwrAaBxmy4uMQkHaysAes1dgcEjIUzGKCAi7z0MSKGqP/CZQ==; 31:QotOLzDb/W5Exkco+laVbGX0ajnw2caqmsSpD1ScP9ebf7PQa9J9+SDsFEy0F2s8Ohurbww8LApGHSmboLnvTFjMA3zYGMijPBeILE4/mQ8xdibuIDFzWguaTfe7a1v2jzoqLJpMK4FlGm0Wr9PNUVsSwdyjTo95T0soEB0nxGbYEvPrSvfyeijDt/y1I2fMhrCsbbKQcSgiEVR/GXB0lkDTf7Dp1d2q7kYOwCNHJ0U= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:2hf1FE+4fXVEAVmHGfEJ++jpXZI8BzUpR6HiLlsjuWPjCnUudBA8a+gSKcTflr67Nw8ri+ojmIESZBa0klDCIU+A+OjF9u4qCN+/IWGxerzyXswA4XsbXVWFVjq96ssQR1eIsLYz4oQ4VqBzTnHQPhjdHwsNRIEOcA2YHEFwfYGxskYeHehwFQ8X5ZJJqzX2FyTA5tCXsiu3VckQKwG3W3I3raM7CJ3liRT1x+SNJVXYD5o36GiYo9VGQMQbKuuhZFTDX3BufwpU4lZPHBo2mIjkyrb0Izi7llfCY2Ld47YpSjtFOpSvLmIS8e/mG3QEzTHKkhYFovEbEeZMzQFMEkdOAubhoUOqURzdYdYv2tItZEzPIsWywMmFzkn1AHo7eYtjqxnEcm1NV2MBwIX5wLLywGAv4//78bm2pmR5ZgLmwcFiHOya2rJgG7wJL8L7fk3/nMZMgBy31uYH4moNsEW6FhcsY4i0sTFuancj4nzaICHSuPUFvhFez82AmpmL; 4:8l5m7NtVT03tEOnCfhzeB8Ovl12lq+Z9QEyrcDdq9RNjjClweg43P+c/zlQErOm445RzPTvDZkpWqTfhfy6evmUbYJHo10wOw/KRPZaRDM6xIB4h7F7CF+RQWRKLPMENhiyolXMpg7XongS8EukykK9WOlUhomY3EUN0faVGJR+6ug86BXWNbtRItqRw0h5YJkWdRajPdlFNRkFAVu7/MAY+KwXo6tY694JF72mHZRh7fEdu1nMeJqrkYlwnQR9Fwt2HV02CLgouwEiYakl0XMtFg2PgKJNf1e6kq983Xv18eOsi1bj7x9h2vLb7vEq4 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(68736007)(53936002)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:tokLGT+gM+xxVHT1O0DO/gxLB461rKuQ8HlxFgPmz?= =?us-ascii?Q?LssTjXUewGFpDwNbx3yn0Q0rLYg5/hnro7X4yqVB2/0WmNxkaDJ1GKwKcu+H?= =?us-ascii?Q?kC4WmkEpnR2WkYSYrApx+QctU2bsyQuVpd8TLZz8lVXfKzS4hZf0O/IM7gDK?= =?us-ascii?Q?zFLdAaud2zZL1gdoZCEgOgrxJnmCwuZk3Mws6poudos6/cR3NCj074IW9JXt?= =?us-ascii?Q?NGDR78HZo890p5FiwB3aA2X3K841Ww0lo5aRAD+JYd+gAZeISxVquM0v0YRr?= =?us-ascii?Q?GeGP/ihWWiy8cCLZKmdy746ZA0Fp1tsT+o4RCUyN/YqFU3NCx2+aJFKu0h40?= =?us-ascii?Q?8J9cicPVP8Gk1YXQ5J0CTje3grNt5vJHReeLSbI1lrdIxQEWk5RHnO7/lkw7?= =?us-ascii?Q?dJQr69HitIYzf75Wlf2TxlBVjfAOyktlVu4DO4odiHq6FKTG5L2EpiY8S/XS?= =?us-ascii?Q?NwKe33pLzDokPoIP0b4UWfjcfhlsx5Cwi630NV513WOY6HFLhfaAIiWaiGex?= =?us-ascii?Q?2tmjvl62OP5pelzJuNZUhwZ31auUSwFV8nC9lzxm6RLXob6CsoO4yvbbjN8C?= =?us-ascii?Q?WIinI9A2Hct5TzGQEvifFeO9j0Lg+zKHfU9GgpW/FS3Ht+wWIfYXO/4IsCjF?= =?us-ascii?Q?uCpG0kpKTt1JeuU7pWe6WA67P5xuZ28GnIlp158WRXM/CnSfihQjiPeGCmSC?= =?us-ascii?Q?2gzKy+XCeITxbXFMan3BDJ4eMje4PYgOas0O/ek2LfmXLiicYV0h/xut3oaw?= =?us-ascii?Q?PaHsKK1Ogh6tLYx1ZLvj6YjjAn2a7LD7L7C6DAYz7XGCskAovzSnlXp7jFll?= =?us-ascii?Q?6xoUzO9rUZjVSFo1Ko8vxQCUNxZNqzMaaAxDO2ez4NFI+WcTnCzDolsZnDSR?= =?us-ascii?Q?ZGTaG/ztyfn0jzbkJa+Xh69NiXcTYANB3/oawv/vT3dudC6EEYyLZFPJ2R6B?= =?us-ascii?Q?ihMJnPbrKj9PeMkcEIUW66dL49MRrXeeZdEos+efxJ+5RUjCWcWG7N5t3Vsi?= =?us-ascii?Q?14qa7h5a2aVMj7u6kBTsLiGNE7sEbM0dtzEShNURxX/msEZyL77m4171rOt8?= =?us-ascii?Q?YqiM017a9zi6UAnEkHQQ7ewTR8dat1Fyb1liaT5tcdAXoZceTDSCmeZ92qui?= =?us-ascii?Q?doGH5+SjsVG8NOu0LBlRzFB2VOgFZOTFe67uPIWOvoZo3BtPxIbQqScXJw+H?= =?us-ascii?Q?f8XZZn1dsc2/6hd6Gq71aPHQ9Oo7Fp4UQcUwcLsxvdhAKfmmtuM12olfA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Antispam-Message-Info: odz9et0vvGddobskoOJWL2ft5dIljHI8g1fOdllhtNGQj3c0ly5LEojPXEqv5Q+V3yvTVIs17VN96k9E5ZXRC/4li6H8Gk8PvtgoT5AOSkKuWExfkAmqbFKMULlOWDb1t3ARNCCROdqGd2IZRX6stZ1xY7nmSfVG4pIgIMYnX9yUW3S8Ml98Lmzhyc59Yg5x X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:8quVP64QWsE+RyUYmtrQKLGjV/kg6CNgfVe6SC+ceZrQdBSQH7BaR8lRXUOIOLXzyW/zO3mUC81FcL4lMk8+Rr/9n+dG3KhcC2h8fmBw0j2VRuRuvoc1FDIp/qfkHxLQXhNnhqgmEdRdnZ1jAPpFtz1jzIhIg9bDnFMnEkqlTX9Ee6O2lpSe3nT+ZJPWg8VHVHS/dT9eVhuxNzKw+cmIQ3SBpkwGIe4X6vdpRq+210tVxB5+PONxDs21WowSI1eGzdrGU8IDvpP2EsndjRs4Rnbk8yCvkI/YN96v1kGliwLb/T3yCnUhthGkUKEA7sGdZvOHbeUfdsS3A5OX/cAXcJQBXbfiuLWnGznYG16nUqZcvcWfCTJGCPmFzmZhoQkBYXDl6Qlo+3DjGTpaX0xzKmJa2yV308mtQpPJ1OmAzxOjIh6Ey5ISCRxoPTsE6jBdCb/H9JigJk3LwMD96d9r7Q==; 5:bosZ4AZW5VqL2R0oVtmhDNYrDQW+1roy2nyRJotxXhSgqi0Ob0x8d6Ep4ZwOGnN1O66ONH5QL4DkojHwSAHgo3mbvrolKAAy+HcyNpSwu0dxLEXkyBOqgkOb2bGc96mxIPwT+pSEVanLTb9tpphgw7lTKEE+gpvvXDTIj1Ll9JA=; 24:Cv5kTU+o1118IlTtX8G+9TOIeEEr/Zpgxrrodt+6Ds0D4b6TOxymiqSmihCgmFgsOYlrIKTYf+6FryhpNxmzIHWbhhvwpmQ+kc5FakY5lLE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:uW7G7MTzfbWXQG+bdw9m+v9hGLjkVRlty4Aro8rTkuLQV9m7BXUSWvsHrB0icgSt453SK2xDChWmFjTHuzcNqBpjnNa42peE6u/YLu2Ybexul8lmH8N3O+oQDz5OtCsyRFkVH1h8oKxISL24UJtEgw297VxBoLIMtuJfqHkPoTOOKrbHc7s0+2tHBJGOLDsf2E0HqvHjaQV4+UZSvz6KJJt9osYC084puJmnsAIxSo8yE6Ez7987tL/Wx2doaj+2; 20:QTE8o3VcQszfkl71hBzLwct8Lk8xZDURR2K6V7AxUnZixGNi2q/Bl5OdlN/MYOc0m+R+DORw6JDFkuUhFy0sS2xngBxphH23xRHL49M4iyfIF1a1i+Ctxr+CNx4VG83zr/E3aSX875rgsJ8GAMaOCamqbw6LvHc9iMFagAE+OlSS27ii9yAVE2KitXuVRFxu/zyCK1xa/Zt4gm83+ubCnmObrCblCgGQpVrjBSUUoETJCDM7IBqq4w+lqbCzMcTY X-MS-Office365-Filtering-Correlation-Id: a0caec74-81c5-4e4b-80c9-08d59f39152c X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:24.8264 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a0caec74-81c5-4e4b-80c9-08d59f39152c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.48 Subject: [Qemu-devel] [PATCH v6 5/9] i386: Use the statically loaded cache definitions 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" Use the statically loaded cache definitions if available and legacy-cache parameter is not set. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 1659320..76b3bc9 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -3934,8 +3934,13 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES); *ebx =3D (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | \ (L1_ITLB_4K_ASSOC << 8) | (L1_ITLB_4K_ENTRIES); - *ecx =3D encode_cache_cpuid80000005(&l1d_cache_amd); - *edx =3D encode_cache_cpuid80000005(&l1i_cache_amd); + if (env->cache_info.valid && !cpu->legacy_cache) { + *ecx =3D encode_cache_cpuid80000005(&env->cache_info.l1d_cache= ); + *edx =3D encode_cache_cpuid80000005(&env->cache_info.l1i_cache= ); + } else { + *ecx =3D encode_cache_cpuid80000005(&l1d_cache_amd); + *edx =3D encode_cache_cpuid80000005(&l1i_cache_amd); + } break; case 0x80000006: /* cache info (L2 cache) */ @@ -3951,9 +3956,16 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L2_DTLB_4K_ENTRIES << 16) | \ (AMD_ENC_ASSOC(L2_ITLB_4K_ASSOC) << 12) | \ (L2_ITLB_4K_ENTRIES); - encode_cache_cpuid80000006(&l2_cache_amd, - cpu->enable_l3_cache ? &l3_cache : NULL, - ecx, edx); + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid80000006(&env->cache_info.l2_cache, + cpu->enable_l3_cache ? + &env->cache_info.l3_cache : NULL, + ecx, edx); + } else { + encode_cache_cpuid80000006(&l2_cache_amd, + cpu->enable_l3_cache ? &l3_cache : = NULL, + ecx, edx); + } break; case 0x80000007: *eax =3D 0; --=20 1.8.3.1 From nobody Mon Apr 29 10:24:55 2024 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 1523402500020600.4223470700742; Tue, 10 Apr 2018 16:21:40 -0700 (PDT) Received: from localhost ([::1]:54725 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62a3-0007aI-67 for importer@patchew.org; Tue, 10 Apr 2018 19:21:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33786) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V6-0003Es-A9 for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62V3-0005iT-47 for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:32 -0400 Received: from mail-bn3nam01on0087.outbound.protection.outlook.com ([104.47.33.87]:7416 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 1f62V2-0005iK-Sh for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:29 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:26 +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=NLSFkDsiMWYpIHjMULVVtqlangIptJJPGcc23iGydsg=; b=pylUDsR28q68I5sNODtGIKyhYvLs6vVrUrOMiC9C34R+u1Sasi9OO5BFOxzxNDitJqS6WOiXeOVTUHmitL5DdGS8qEqY2NzjIl+6Yo0gOKoAkPan755He59qNq78PR9JEfh+NZdyBFpLAPnm44ZvA2oGTEfPpA/bIyZovdaOmsY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:06 -0400 Message-Id: <1523402169-113351-7-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:7jskUDI6LDSOaVBiHwAnnIRs6vgTwAunNbuXh0cC6PgL3aogPZz1idOZBbsK+ElXqoCV5Lk71AHEFhzOZpIJRCewtMbdtso0VqHtLf8DpiDlwA092GOa0VOXfBh8Fao06nzWXnKrB2EI4sp6d22lvAJQntPTX18XYKh1IsGpAdOWuhNBiYaP+HfDWYKwlQzgodRNhD76AujHS4E6MROWXgNdug0j4oNKDCAM0nBebHOtJqgiQOXlEd+GluEO27s3; 25:/CjTCTRKOQAuaZsWamFYPv+8HB04CyIiJ6A02S0Ql2KbOeFaGcO8m54k5MoCbXv5JzdY5kHIi611fdM4hNuyLm5NBwltZQkRJ7J/e+tk7WrMpyTufZWMvMc+pAPub1RqMiZiAavTzTHL/GuTmvaqzIx2gw+WgNsRA2QBORLwKJ6OWIdS/Wl+qOSujhKnX/p9LBpvhvMGjEY65KAxILnXdobTxwhCrabN2IMNVbkFT09SmAvQM9wyLo0RYvVMDEkZ78V8QnSrSid//S7GXK2cyjHOChP0WFlifxRQ6yd//zOmnk59bUp8T6hMjqx6zQa3CRfkT/n7JVlB9Gcb/WHfUg==; 31:HDrEN7nwP8WOiu4q3kLMIDMYOGKNnOciD11zDq6AudW5yinqGjAbRK6oPzXOGd39FJDO+OlLj39/0kzY5zcvk3artjr+fC5g4g+138l5oogA/33Hw7V42WpGcs6+cpRrY8i15kWUrDBqMCZkZP7nhjvHOFdHBrjYPl62oUVPxBzbMvU34SKBgnDTsYw4Joq54Am2f6z89fkAvoBDE6olE31p6a4Q4uPGP8Z0bccs+sM= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:1cC7arYuX9O8VGsGIxVJ9qLqXRZ6JVisNLbTKfpDiza8Mz8tvNUYVz0WkxGoN/V3dItCmIYKnHAuXGg4bfhzTbH3dEIf/S+vZ3b4ajYSi431yTkNfvE5qOxGVoT8WIuLazM15Pn5u2PRFi+TCrWLpgaScRQ04Sm8TOVvcfRtwmBl62tFgNO1DRs+TryyHcM/jOfYtMEHO11CSKvjl0o5CFILazijhBrA80M1MZEHi/oxCRyvKwoFfddr2SlpsW44TvEXEhnmpPMCUFIKsHvnFjyMhyHbbGIGOsuHXHyDEhpjN3tTTPik5hQuqNV6MvusL7OTpElbpNsZIs83aJIylL5FKfVx+ACKFkARcz61h7YCLFqmkVOdbcXBqzA7+d9K+ypsZ/4L+wy+dDehnFfbJKoKVpclG41zoEbdcVh8Fe6qO7dXaOzuAg6U9Z/4erRtljvBzQo4OEobt4V8mYx8VU2/a9+cW+5rFaxp6Q6Tczg3UtXdgLgRPChRzgP3290W; 4:O7vsG70iBSAcTcH4MzrAMtnBvMTuGUQUqNl3bUirUcLo0dVqv9nz8etxWQVyXCJfpAGlob0SOnE7DMa15VvNJvNu5jl4hBOK2uzxgxaeJVH1YDC7HKbRgVosYnAbLyVoKvxkQYqmIZiCepd22M32+Y0hM5vH06i0wtQgRK1523EGKDVI8vHs7vHGxqQYwtMOgUYOUGrR4EOeUz0PHsCDhOZ0fyoYn7JLo3ZuuMB6V2cWRkVJzpiw+9GXGm2HcL0zZIPGxSZ0TeRKstQgI8Pssx8/l5V3dnP/3O9qJb9XijG1ZCRSxD9ZIg97nJOXgo46 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(68736007)(53936002)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:l3wGHQHt1Geb6ssCTdc99WshZKQuE+22/tlNjdOqK?= =?us-ascii?Q?nfUJJ1YxF/ktEB9hwbxYvEMug5V3tgdwGAQ30isL07P5anspVv0upAt3/yVQ?= =?us-ascii?Q?caU+AeKJ4ZGVAc42z3CXa7sXYS9DHDMM/FwbN1XXhkVeJTKvIGegVsV+cUi9?= =?us-ascii?Q?XPIKdL6pYHgYH3SM5IFZw2amOVtYHfQ4ZCRbVY7G/s9NbC17+Pg6rJb5ntzH?= =?us-ascii?Q?Yp15lnkKnxFdDjj4ggjdJj2bFTCPC2d5JKvyuMsMAF6aNl2Zt29Nnt1LEMf4?= =?us-ascii?Q?R2J/iJdbDgNhkAkJkaSNgsQDsmrurnOCdIcSsvgXOzYuu4wKS7en//5qTg1r?= =?us-ascii?Q?ONGjLgvtQs1g5MoXbr7XiR2AWsuDZANAjbfo4+pjaG02CKN5VLBDbHatRo17?= =?us-ascii?Q?ermG4+khmZPvH20evvkb87/zezBLl2n/SsVqyfu8EMTHYSR/XCdKz/yy/yM4?= =?us-ascii?Q?T8lpqQ6F3yPnYfl775RFyxhqEZF/gD2IfGAgwk7daqSm/b+GaznSzuSDoEhC?= =?us-ascii?Q?eXSOVsKM3Rv435XnhQM5YTShSYSgwJ/Mp9LsM5fzkUb+MlNPoSRvvBiWzvQ4?= =?us-ascii?Q?K/CNn989KecADHCLAymEbpLEH5SoGGdAokOShNcHSl7TaI62cGmd7EhQFY4l?= =?us-ascii?Q?1FMqkIT7BLkHH/Ue5OD7NjVyGt/fgqFCerBd7i8uJWOJC68ihFHiHtQHw+QQ?= =?us-ascii?Q?LnefGaVCzTKigT4jGay5o28HXHVu7i8sOl4XPI2FnPbTJZV294/rYC9+a+of?= =?us-ascii?Q?w1pyejDU8zZO71RtemjFCU11oZqSwooPLgZvEpxSMsVYh6AzzIZMi2S73O84?= =?us-ascii?Q?/mKSSbo1L4CYoQ0Wjj7ownZdnLlhu6G8FtypS7dXbzJmQdF71rbsSI3tX0Vy?= =?us-ascii?Q?pFMKroTnQj7CjMaEd8UTaZGa/6JW6sKDXX2Bwy/1RHZpEorj9mVi2PpXhnhZ?= =?us-ascii?Q?LPAIo8VJS8RxpIV3JWpZMpzpuoKhskktW75xI1YN6tabL2px/6lay8+Xyts+?= =?us-ascii?Q?tKkhNxLvNJ/Nd7BDStc0qJRShW9zYc81i4xmYcy3ui2qM2z6/f9/40VUckSc?= =?us-ascii?Q?+5u2MF3hCA2CzX8FZQ7WGqjHBk7mFG18Lmz5vUsk1CGbcA5Ee3B+MrkeuM7D?= =?us-ascii?Q?7tn0M/UuaIFbuRcuxXe/je9g/spSrr16MXCVQDEBbbBmDIVIK9xPpJ2rt1MF?= =?us-ascii?Q?60DJW9Cf4WFEXU/l/c+wNRZuTmXkuPs1ncJvaXDs6YdZXnEsKgtKwVjaA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Antispam-Message-Info: VtEJ6ztbFACJTnhis0/DP97WWpbAAPpedr5gMw1WayK30Wpd8biR5UP/33jv8sJr+YlgguQNpr3LyPsO1Uk17mUSiRlxo1sG/qyofZ9RxpEOhXFxmFwY1Hhdc4474VI62LFF7aUN4mZPGR7CWkXRuOxzCIDVIYz9M8D/PzaqUAN2rUaoidgGJqiDS+MXkLw4 X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:KH6Z6v2m0tEf5/+mBjNJFd7z2pB15NBibMpMwaQ435qz78qv4GZvWlhbHa4W+8tgjjTSpWa7+GokrrjLRTdE/NFy0cv0XQHgJlOK6qB96u1+krGyirlhMG4YGBQpnvejreQeyNJc8zTIr2RwsG/d15yqPiJyhAEXXlyZYjL6mbEtftym+pPMNeNrmYCEnziFYp5Z9EoFG+LqyFwhh+x2/LChlT+26Um2yZajOz7RoYDaQo14xxtlf0zRz8ZDphpMxAYGBLWhHMMvTT2nwzJOFCKuyvEG5EdnUOA79VRPzmlXuCqU6WsmYOqYAsJgUQfqOZjGtnCQ+8Uk6z+hmBj7zOYtoROXy8MO7/XAjww4OwOpaZthM//38/wHKps5vVOtxP0NOrvDGoBAXNtl6LoFMG2jNK9JlgGRsL0ejNkmMWwPs6ozLR15NlyObhm9OpKr7zqpt4tomg3GIPMz5r4RYQ==; 5:+Ge48yekDWj/j+H8hAchnAPcaSdn/dXfz9kq9cW/if6zrV+GuTi3f/21E8+i+l+ftLiL7OlAOeeDC/eT438qn4DmTP/nzKQAU+iOubyhn3B7aU2SSlCDRLkrmoGdArsy77xurjN72ah58GzcjEXv38KaVaVs0gGdY/JB0XvoNU8=; 24:1d+HPaenn5HKjrY+LyO71eJ2zc/R+UFJWIHTY+96IPb5QCer1f/LJWHo/riWMJM5dVfNGWjk4VxXNutyxojocZsCZKjIr2i0LO5183LLvts= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:jioAM8grULZMVQtdW46qoAVRuuuzgD9Gjy5AFooFkv7jOWFLN3K566/PoJbNyWRjq2blHkWJchPRYgSiCYrz+Y9DNEoJshJ7R34x6GJevAx739SYHDQN7TJMwLap+7DxSIUE/CGWG4W/LFkYhCuXjOc5GNIDTKSoGQGbkZM64wCZKPuIwvXBSzE7q7qL6uyZH8h9cEea18ywZJPwlq3VyeqT9s/L6fbUTZe7IzUpQMdvAib3YSkjBXvIyTLMHigD; 20:H2LBbgcrlbU/zeviYMF+Z2bpExCvX520prmfhiJM9GkGqm4vNphjRCBe1Fbhx3xoFlaMl1ilMpuTfvahKxojuhkXiAs6Uorxqtg21bmtN579dSewaeTbgcmnhdnHVVKBc18GK5mv7/WrC3Ml96fGekpQfQjnE3Au90Wg49it0zyyRpE9xbmF2uEfxSTKMQivPvlT3mTyA+VxrKevHB7vhUpbtaStOP/Fkld17oFHTIvcf/fHDhqNow5e/QqCSE3K X-MS-Office365-Filtering-Correlation-Id: d92634e9-538a-420c-290a-08d59f3915f7 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:26.2796 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d92634e9-538a-420c-290a-08d59f3915f7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.87 Subject: [Qemu-devel] [PATCH v6 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: 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 | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ target/i386/kvm.c | 29 ++++++++++++++++-- 2 files changed, 118 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 76b3bc9..63f2d31 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,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 - 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: */ @@ -4006,6 +4049,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 From nobody Mon Apr 29 10:24:55 2024 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 1523402644223155.05609321097154; Tue, 10 Apr 2018 16:24:04 -0700 (PDT) Received: from localhost ([::1]:54900 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62cN-0001DC-Cg for importer@patchew.org; Tue, 10 Apr 2018 19:24:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33806) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V7-0003GR-KF for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62V4-0005iy-Dz for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:33 -0400 Received: from mail-bn3nam01on0078.outbound.protection.outlook.com ([104.47.33.78]:48576 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 1f62V4-0005id-0e for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:30 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:27 +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=ZqszMJ1gxujV5Tk9Kjw3C8SjojU+gU17BBy/dBq7PGA=; b=kpfG39jeUWGafj/2jVNVYcIZp2F4S/NyyRvFqLbGxIX17mOsG37IWiA9J0HoebezGobGl100CCRN+RQsd+dx3hB2khlt7qxgp3aA9+7D5vB7V1emstz++QQETy9I/bO7BjcCbYZkiUhyjrG9lk/9tGqbjeVIFoAk90uuUHxbQus= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:07 -0400 Message-Id: <1523402169-113351-8-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:Opt7rpiBt0SwvFoNlhU9VDxNeM/hERAbW908eskjLdDFyf1sODRJKQz9J4GYVKB9PLGQoOAvYeXDRe0jZhJVWfr9kaPi4PAHXByZ9ANZC51cfHXnDu/dWXS6CTXdwLVEm4+YWyljJkxCn8Qh9lhMs2Ufxfennw587GL98vJ1fSY+Sp8DzT8Mah0nGwXl+7DsnZfaFLvug7asM8ZT1qrESw14gK0DOV5yomZUx2uh3KDAwqgQ2Wfk+F028qi41hw5; 25:vY8MIe3i7GBdbSaDKYb7aKeMKiH/02UvN+n5/rxxBZ6cXed5DP+neU40QYqk/TJazfyKxohu8Lpkv3y8PPHR4xnvvRjy99s4iWKM3XaA7TXKK9zW9F7e8BJCdKi6366hKo3eg0uANd5BIgMWpruLI9qpQZ4Sf1eY3WwHJwGueRjlWkntQUic0b5mp1vce7uC90UZfTJV08M4aq0QixBa9iVQ96M21d9CU9IXy6PtCEQwMiGJ/1YD+JXvA/aUlJSbJD56Urp7trYyPXBuCTdDpnCCLTB5WKiRkkKuqqhMgRmdf/8SrhPTONGj+K591/DPraXRR6It4hQgIrr6YV/5Rg==; 31:yOa2ap8lLO7VwKnSdJV/6vHZVpMKSg6BnmkWayGwSoyvdDfEji8wgvPycnvw/nULHT3lzY+MbMCLrqCrgywZ9Nuv7Bd3ex2wldaJenUZW1rMgdvpC3PxikXVhR5Tnd4jbPIgZRI0jRjN3XUTKMTauqK67NibcrdZtv1V1PcwSSC5PAbBTXwMLTeB1k0SndphNg/7kN4pagPSyfpCdvIfagqfkLYscmKsRFc95ojMkbY= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:afMNutwdNvhDnQh2cJo/CmWwxneTrFE4CLRXnP1ucR9j7K1weFe9e+ZYesEEIsCq6bSLXS2ProGtLmzCrFtDkjusbRZ9mx2l86QSTbjc5KivGkUw0qokMooLqM0bTJ4sSJVEDxt/HPqzfkMNTkrxkApeXnUKcwkvP6bVxlY967tHSdlZyz9D80Y/3oeU83nz3TDz1BAnA2imENIhW9U52KPgo0aJiFwJ/0weHqKmVtFzBWxpgyR/NW+1tmlgbmvzzg90JuV6QonbT/4ev9pbL1e564o5foY4dJyJxeFHSg6+L5Cb8kUzt60qJRJv2jI9+K5y2TjYhu/BUjAtROnXE2QqWpR2xfyJ+54TbaETUQIXEfpn15QbanugkistLx1p7LinenH4RuLxg+fCRLWNtxrkSf9YYjD3RcvRquuzRlmTfssSjoEBn1q/dkhHXWpCiEv3w3qa0kqEyRys6e4XFs9OnrVknzvmv6S5on1biC2qdfOj/H55AOF0tcCts7Pa; 4:jvlpyvWwxb1JQwL/lSWoOQFAnc07F0LdVIHhy+Oe98KBOFyl+fZXGtfePgf8QII5pwioXODE27X0lhb3vftrpOkK772xWZgAuJ07ACEP2/8P65TOS0cETCxNQ4ygkqKCTJ/XXAbPVLDD4Ye6Xu77C+tJGKIqVMk35zQUmmevXk5VRDgTpWcmvaDkMv0xCbvZLO6WJEzq9YMmOYpqCft97mYleFlZmg0QfwqJT3d2IVSLmdqMqx6gY06NuS4MFn3sbgVtTw6SYeS5wZjByj2ZbKYW/gIRvn+STQ6xT2gOA4TYzoX8kui6CHku4cYuhSy2 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(68736007)(53936002)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:vPhoGLGA1H/Hi27alJGADnnSxhJoCUzrPNmWJ0ylp?= =?us-ascii?Q?XT7Q00u9SDOVvl9E4tP5D376pJPrUqUqhmntyAxRlW5443rB+EvauIlIp3fi?= =?us-ascii?Q?40n4lQErd9gShwjG864GyS4WF27Avt7gtmTdaPQX0dPHNMsbYKQXfVwHfyRz?= =?us-ascii?Q?P6ZpsTjdKa5vqV3K8v/snJyse+Xog6O6Z+kEUo2l/wGNkZYnShrDk9FiCcoH?= =?us-ascii?Q?igz4fYl77SjKitT4HsvCgHrad3Nieh19fUqxIrji4Ze4Z6F5KJOc2MWFEEo2?= =?us-ascii?Q?L1ysQ2JuhA6+p29cTh8+1u8VjOQ9AZLfBdEC132Oc/5B78AZ6wDuddK+IWkh?= =?us-ascii?Q?/c6aPJ/yQYkamXFGJ6Jbve9FcOr7LzrNSkOyiWcar5qwkC6b7Um3BrSCWzM6?= =?us-ascii?Q?Bq/QilsZ2zp0n7SLzKSzeOXIGG2f8ncgrat33fuSDFllDP/YJVmOXHGsCOe3?= =?us-ascii?Q?V3+8P/VtUCsJSq8Hkh1Y2VR7xdttelr5wZTjRNocK+K+tAP6oZ3m9tfkTuL2?= =?us-ascii?Q?GQpopzokEvGQNfGAMEIGsdTOdLBxOfIC84nr4FfXqXxBD0K8JIA6JOct7moe?= =?us-ascii?Q?vtfoRJRgenfq3BcHMLgJFeO40edqAoN/O+tBv4/SBfPpHyfQNcXxhaQ/ya+I?= =?us-ascii?Q?Cj5F8/l1pFMwML4vrJ3FggWAG4F75rusENm2VYcUOkAH7/pkzG/NPV8/As9e?= =?us-ascii?Q?7C/0/q3npU33xLPd+ewuYzIRthirGBCoVp/yREpaXBtGp54HFQBk+7uw5Geq?= =?us-ascii?Q?YGaCQeQZPgjFI2QRuRNkSTmVshwgo1S6uwubHYqMgom6WlbcVpp8WTy4Wnym?= =?us-ascii?Q?6Qd3mBuvV1OGtIdF14vacrcOF0SVAATR2I41ew86NXAVoVUrzBvZo+LqKqXB?= =?us-ascii?Q?WhkHXDSnOYHpCqVDK+RkQMOSMO1Fqvh/+q9ikD9hYspKUDFaHwMEcVNBF/k4?= =?us-ascii?Q?q90MRDKGCtiW4TB4zfp+mbrMhXcKHFN86boB5goA6WJbQJd0l8QlRzgPg5Y1?= =?us-ascii?Q?rpcaPptil3Xj0HB+yZnrIzTRMggbFzmKbXonyKCRYBeSW64houuIGmWrYjnA?= =?us-ascii?Q?S77F3deyAQKCbZzUHR0mVm/rc0xuGPwABQ4mg02zs9DY+/q81C+iDYkmRoPk?= =?us-ascii?Q?gn+3eizs/+BQgllxHON5Y54AMKUpKnMJgD7FbiyxuhUpkZyyLxwIIuIVq5/0?= =?us-ascii?Q?OmB8DTCd9mCXcbwpDTrdl+oU+vHfaU2LGL6RHt9SR+t4RTr5wSOOUd8hw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Antispam-Message-Info: mkWcZglQWk4MXPKv/bcHVXShXev8QMTyoPCeJtGOaXnx3YZsnlhgcuRqi5tfRMGiqFm2ml4/vZcRcbksUM+Sd2YhTBpFIDK8aXkvEv98PhALOEvE6hPcX9pZT20frHS3kBJ1Hgd27Ykba0if4JBdZcUKiibB53864KTbrmdzbo/vGwJK0JaxVbmJ+8YvSL6C X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:3xmWyRsuEygai+H6eYTKGtaJV4YLJm2b4D4nmQZQPUSoSAJpdZbcl7xwLouypX9FZGNdra7pIxgyYYSZOdiqqKZTx4uXSw2PTv0RnW5h20hyO5AIQCtMrKW64tDXitX5Y/iNVxRTMIhj7B7a6CYhV1lRI/NdJd1lO4P34TIcB7imeJ4UbScrfhI8G2xfTMZY76WMa++uFC8fmwScWg3Dvv5wNt8Q4IMvN/EePkSn+AwZo1ZL3o5Sl1hRTupNwtg2QdGsGOgn0QVFvJpRdBqqY68vDjtRg9LLkDcF5CzhCIdF4xAdtrQwDIK/RAkV279hBm7jp6lMyJQKc4EzEXxtlIvO6WHjVSYhbmu/oCx68F58AnrXRThMSy5INMzXrYomFptiWfoWlcaBsBYwAmDsDVK+7HA5Lti/g6qxCDvsnb2Je+6SC66r45NIg6Qi+dPUPQrE9lUMHUJbFdn5AdGqzw==; 5:dmTYnXulg3v+jm6Io0R3lYz9VRgrOQdPFsxT2g96fdQm06fcdEyvij//Ms13zJopNB1A43Um/5flesOqkKzKASzBLSJ6qHHJBEcMM2nhsPzfcavlwaDI/n0OIKO1MHHrWCOzRFfpfa4nSoJv86Vga2nT1bLkVpFwxI00nvpXtE0=; 24:lU1CwesrehT7QHqO8tIcu1h80y43mCEZVLFH2w5GttJ0OavZoeX6p36QqHjPNEjtTGF09BuMoNEi3jtApxxPAdH7zHmG9zC3VFT8X9lz0i0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:rJYiZ8GKLplln4fVJmmvr6WGSMDObwymsza/+imP1UBmpyGcb6VWkrwF/Sqbl0Fv1VJSXLR68vnP2kzy8L/is34VcvvbisjzB30hFVcezBJ8PPRKwRkH6OLdzRahhJdGRzHrKHkMFLMPncV4a/F3nZIfr/r6MxmoC3+x72UP/+P440u3O+jqlBiPlVuF1UN/LR14MLkSUeGo8hgPmq9AApW4a/LFNysehThLEngV6JuJWj+A7kmXPYpwi+VOyARg; 20:5zly1JrnOaGCXr7IDaM9Dc/nua3gOFxVv7L4AvSMaFWuOCYpjOl9ewbBPdGQbWKrcySLHwhN8cG+2o4FJVljcguB896AZRUR+d/RO8qPAbmrG85nzzQN+oa4pPDOAT5hIZVUc5srou2p2nsUqLrVvMvvsAFShe12686uWHfccfMa0EIJzSYm3A2noshxXsruEbnui/Pw9BgB95pDJPOnAeSJagNefMGhPx/1tmv2iO1IL7+rWIZmvEkxdZU9IQyh X-MS-Office365-Filtering-Correlation-Id: ec5853f1-bf36-4fba-831b-08d59f3916b3 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:27.5296 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec5853f1-bf36-4fba-831b-08d59f3916b3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.78 Subject: [Qemu-devel] [PATCH v6 7/9] i386: Add support for CPUID_8000_001E for AMD 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" Populate threads/core_id/apic_ids/socket_id when CPUID_EXT3_TOPOEXT feature is supported. This is required to support hyperthreading feature on AMD CPUs. This is supported via CPUID_8000_001E extended functions. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 63f2d31..24b39c6 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -315,6 +315,12 @@ static uint32_t encode_cache_cpuid80000005(CPUCacheInf= o *cache) (((CORES_IN_CMPLX - 1) * 2) + 1) : \ (CORES_IN_CMPLX - 1)) =20 +/* Definitions used on CPUID Leaf 0x8000001E */ +#define EXTENDED_APIC_ID(threads, socket_id, core_id, thread_id) \ + ((threads) ? \ + ((socket_id << 6) | (core_id << 1) | thread_id) := \ + ((socket_id << 6) | core_id)) + /* * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX * @l3 can be NULL. @@ -4098,6 +4104,14 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, break; } break; + case 0x8000001E: + assert(cpu->core_id <=3D 255); + *eax =3D EXTENDED_APIC_ID((cs->nr_threads - 1), + cpu->socket_id, cpu->core_id, cpu->thread_id); + *ebx =3D (cs->nr_threads - 1) << 8 | cpu->core_id; + *ecx =3D cpu->socket_id; + *edx =3D 0; + break; case 0xC0000000: *eax =3D env->cpuid_xlevel2; *ebx =3D 0; --=20 1.8.3.1 From nobody Mon Apr 29 10:24:55 2024 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 1523402335974380.0135357548304; Tue, 10 Apr 2018 16:18:55 -0700 (PDT) Received: from localhost ([::1]:54630 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62XP-0004cx-3f for importer@patchew.org; Tue, 10 Apr 2018 19:18:55 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33823) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V9-0003IP-L7 for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62V6-0005ji-FF for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:35 -0400 Received: from mail-by2nam01on0049.outbound.protection.outlook.com ([104.47.34.49]:54239 helo=NAM01-BY2-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 1f62V6-0005jN-5B for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:32 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:28 +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=qCLlUWXHa4ebRbNlkP55KECxGff+MZ4RV8KAkJ9KkvQ=; b=lLh44agA2N0/FqFxBVbQ2Vp8PAEEV9oOsZiGcFjG3qMSQtYBj7GCeMv6OUnuBtr2uXWivTrvuxBGUjIbJ6er5erR729KNSmZJPy7b43x23yKLS8FckNdk2Lr9+MAe3Xxi/23IuqdqOREh3FxgqeEV/zgxOVutfBU4zY70LJojaM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:08 -0400 Message-Id: <1523402169-113351-9-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:Dnl5wD6FJmsfRmTySaNjyZ679qBFYr/PtD02zyWarp/oJmJ9XbGvdntWw0DcHkxDwzFA9kzlpNoZisUxsEom3Ck4w0kCUANPSAUdOhJVjCXfEiymSrgJbmkBgZFgnOBLyvm+p2a7gyJtzImglwkST5CFhYDBH1sFw+ebsmwFv6DNdNx/VwxJ3299LqMxpQArH6PHR4oM0+WW05mwRwim6BNqNsQQvYYyd7MiEYP6Z1erOZO0Qm0RbQFXaLmqgkmt; 25:nbffVgLg0fVyrF3F3jv5bXmlIPPMsxDOtu6avmQqgiB34I91JbheMLE00ZidWHvBhBGGTxt5/1+6lGNg3Snp+fuy0A5qv0hvRFNEXddJC9PgF7diUWcUMu8DVaAuYW1na8uPsKS1sM8D4zgNLfKbbnBF37jcOjFJfy1SA+TpOECrTzQUiGbYHlQeWS1RGgC4lQ+joidlMUh+f+TcqXKMIFFLr0AEPueV7pFBcJG/AobRQyKkNjJjzgX2G7lIMqt3UJie4xeObsecHSR4HCVcknMorQ9P66n5HEYlwwrJ4uUqA7dZK9C0NcyF8VcU13IyG0YHn1QS1l3lxBDxR0rA4g==; 31:zjDF+2/sLHlOu7u6qRpd8h0vsebOX0uxMpX6EwE8NZvElT7dr91+r/ihSQ9c8DZJs3V1uJWjuRqyrM0hej3ka+G/rTQE0VP7TxQotNBEprK0oEisEKUZ2dVp+vYGA9r+rPo8bnV4wENNbBs3ROQLbZgCR3tgJXMNUxUQAJW/6HS0Uq/5BbC9qQVJ6FSNTMmxGufNzwAeaQ0nSCuw4H23aneLm8EkzJDRKPkVBAh+mVw= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:vKy4aOg0qvuhFp4l6qbCyHbe6Z4yleJDGrijiv/bv9a69UtuHoiyhf5BoDJ49lcn5O8qQ3D7ZzZaqXRLwCBMPSFq3Q+nw1e+jTU+zh+s64RgOh9TuLmciiVY3RZdXlkficK7C6CRZWj72cVuQPrUz7gUK7MWbqMjgq5sf7CY8Jy82PXRZWyMcDTbFO8xkAr/0ntK8LTxB8vl64bjquIcYJdmVB35pgl2qVtF2aKYkZHGv/+d1/lMmWwOHTyD8J4Z2GiiW9mnLLJZArTLr3TVAo4kjNV0lkrdmy/04mcDmhEeQTcPKVJ1GyMv+MKPxl6fpQzKJyaGDZYdJfAckWqv1PJaMGubHo1bdZblXegBiIhalUCBn+UP29IgI2WCzFtcHjn3zoAgHPWwxY/aotQEwEij44T+zsA1KadsLmSOGPzu2l5AHnAxqUeIbiBuoXtjfzIc0CFSpjaFLk5CFEGxmy16oApWiCh4V2XsJEBfc/wjBr4vME+hkddXBPKudSIy; 4:gQGgG5Qi/RG97MOa4iiszLx5TrgV7Pd6J5/a+jkEef2i2fvv9kHVLrxWPhs7ysXhZVL49T2UskktCakSWR0NZdsXPVPjSAoPQeSd6j9EX7cFN4Gmy57JGusbEfhRSVWchc0mPHcSw1MsJ7wj1ogMH09swCFHciq8rNr7RbB/Gsirlr3TKV/yBSvMzcZgr2Qwa7hVBm0z8vvHST1+tgEaRfyIrh94TzumwarMGbzNJfb1LE+UdzMgBOjIBYrOwa21HBIELd755kiTDjEMA5L0FfZbNiPHV+c8wQnscRfxvuuG57OajQAtaOVwKRUpHxX4 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(59450400001)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(68736007)(53936002)(486006)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:r0VyoCQQWJ9k9rqop/k+YyH0FaM7YOLXcZeIf17OQ?= =?us-ascii?Q?sbGwm4qIp+9F8QBe8oz0s+VrPYwi++M84OhQF2opBFMTBPyXKrQ9T9dGDpH2?= =?us-ascii?Q?b0WM5oRwF4e1qP8T8cYMc+Tx7e4wMGqMN7HH8pmnI4uND4BaoLP+/B0HWmbB?= =?us-ascii?Q?DZjiYm8n+bezGv4gj0VQwEverUeIU8T4hE71hx6V5UCRKEfmlREB1a1naODs?= =?us-ascii?Q?Txs8+w0XI9ObqHAoVnSP+MQJqeWN22GvC47pzgLIP+ko7SiW66ZnvqvemTJz?= =?us-ascii?Q?hLYOkx0vFgVyLMENE/wvGM0T3RJRvAgxdG0i6SVbuYfrBgqEzYbD4rvZAh6j?= =?us-ascii?Q?EA8UN29rhxCje1/gxcEMIEmr4nE0G7B7ZzzPyX/EZ7eKFntwpAWkooarbKWd?= =?us-ascii?Q?bmcFgNmUIt+Cw+RFzgJ195QbY5XDofZ2WezHXIDnfRwpW7eMcDt+a3tIq57X?= =?us-ascii?Q?pddSVlNoPZ/qKGbCirZp6z7p8rjg1wNTqSqhJl3zw/YGXF1a8lDkPncGwVDN?= =?us-ascii?Q?4wEwgoqyKwm/LMMzhdF4lvMZGfWlMWSOQ4e+1xjK07QW0i62/TFPdjgtAW8+?= =?us-ascii?Q?yZj5NzhZf24Du0aoGPkMFt+4tMM2FIl8JIin6J2qvKcSXcik5gC8iXTA5CR9?= =?us-ascii?Q?SYSMRas+aPNarDwvoF5UNmHcaFBWHwIgBC+P2sVCcd6RSWrjZ42wyZdxP94f?= =?us-ascii?Q?FULXN4yaQO8fwDDBvtmrv/pvA1h3gEBrTJLpWnn6nYfxG/aL+4el2cDMbyCE?= =?us-ascii?Q?uHrAKBoK2MXh8uaehqNZ9q/j6eGka+3Oa167Gqk1dgrlKpr9TCcOsCg72ZHT?= =?us-ascii?Q?73dM3ZE/uhrAg6BQ/R2aoqivcK31wczzL0CMzUqJh/jc4m0SMugAeQ3n2C2v?= =?us-ascii?Q?Wu1mlq7nGZV/sWcQZoJt9I3Ky++wqAtiYUtyiQALpGEfgf7QtgNHfqHYktrf?= =?us-ascii?Q?np/YiLTj3RiJpiOEXTn/WXuuhbwK5/rCrf7IEyqQHeUypfzCSLX3sVXPqifp?= =?us-ascii?Q?tjLRdQmSxJluZm3w/EEtXp9ONHKnL3IqPpwITzZuM2YZktbBKyWNd33Xrpjb?= =?us-ascii?Q?R/bpZ/ovtaIMzFN8oh1B2yLlNzpkAo9biwFsT5bIF0LaWAlff4DkMWopWH2P?= =?us-ascii?Q?MN4qP2l59JNfywjRje7Sm4/8HfM93MkjBSEkwCRcYZj6cN9FXJdJAe1jZM6g?= =?us-ascii?Q?HrQpgAIobitYAz3xT6Ryl+epsViMvub5q3Wt+jexchOxuziCCQld0DnEtDzg?= =?us-ascii?Q?Fs0cuHEhU3d1oX1GehFiMb3oU63dIyFieUeUnFF?= X-Microsoft-Antispam-Message-Info: rRp/9w5inEBNRCd+6Gwc+RDjWRqXJoLC/B8imBKT4RSsMY3NpouvnCu9YSsZwhvAGSDmMJpDvH/HADWNfAkCTLBYN51W/bDEwraPqllDeEkNsDZfBMOZ1IABByoTyQXJ9ZObbrysaLdop6zMdYKTHkEmbsYG2EDyVVikbbcS+66+54MPal0Dtk4xMoMk+6Z0 X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:bPFPvT/XMa3vAXzE4cj156JTwlYx9ZEwSrtD+e9PhCBR4agzEo36lkXq0RT55sHcFpiG1qpEEz6seGpCIsHU9Nui6P3kRlLx9s/paMAh+1d53SPN/HDnEQl0Gf+/b3BJysuRXHkru71KC7oPJzpzi13dPff5e0vaCuFxRRrk4Q23K8CWRHghDkOvD7Sl/531+u60LkDG6Pz45Rw+ul2jY8Ecn1u6jritIeb+l9QmbQwhbbZg3RPP/xFGE5gTBzL6iP7tx7IhCtzOX5qo5tIZr8sXn3l13BvkWb6l6TibdddS6T7eLJ2xyRSgJ0pooqhfb8e+SmD4kyzF5Z5OMx2f96fqDRkdOThva86XyNFRHqvAClZWmmeOGkSAY1zyjQMKR12Sp8KO6iZcBhvMkhIk4+Z9LiugvJxrZmVSvIi4DJDa6IAtCHmH67tMFVkSVYeYulNtN82UEy7Amayqk1B83w==; 5:7xVTpSHAKlOFIlugsHW3hQI4Q4aZolE41agHbAkVCDKNhsdLokDuUmT89hu1FphY53O8PGZRsfLGmHak9n+h66nEkWVgBOq0YEPlMper6kB88X0tKaOURdjFwfPp2RX4bh/yRYSiKySsMwUh3rNjG7AK47CZc/h8IQUtcYm3adk=; 24:dAdG0hL9ypOlBDdw+M7nAJgddY7jHlwGQNkojffklVVQGWu7t+D6wsbpEz3NLuWlyWWm+cNPrq9SbcRumyiaIpFlDb6296Wx8P1vJ4CFZu8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:CHowamAPHBuREfQBLllCOkgjzdh8X62doSr4IoNFDTJwZPBSzvmc1GBP7udAtQWddGEaS23hd+HJxVVP2eRTc/znQ/YvK2MBNaZw/zG5fMH7+0S40Zx9jolWQfnQpkEPvm944C/re0FxGu0jYMED6EJrGBQ8ay6G69lin7gqim7VIYIHfImeN6CotvyKUxdI0A/ZSYAZHUAv9db1GUHUakmqPqfnBP9zNZ7zGx8plKlMyd2iMr8hqOov+Q5c+OGj; 20:ycjz+p86PMcYJf6EX/HCIsWLed1ZxTJOFn3qeMpJ03uP6MnlOUOBKlOM313NnC48ZGEP3EeTnzD93vvcw4M4PbC9jFBCaBW3CODGOaQ81+2/pLFSTfbfJaQEwd/ZWIyAzbPWTlNklL/5KBGsCIkpom5rkIbIfBIQrep8GXkoVkqYts6uuLWP+om8O5wBYmaYDcIeuNiqYC67ulWHtHh5bhCKQIsrgSTHR5w6gJ4go4TiuirYcTgeZAQslDKkdkZK X-MS-Office365-Filtering-Correlation-Id: 3c599654-a330-4fec-c901-08d59f39177b X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:28.8421 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3c599654-a330-4fec-c901-08d59f39177b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.49 Subject: [Qemu-devel] [PATCH v6 8/9] i386: Enable TOPOEXT feature on AMD EPYC CPU 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" Enable TOPOEXT feature on EPYC CPU. This is required to support hyperthreading on VM guests. Also extend xlevel to 0x8000001E. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 24b39c6..bfe24b9 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2327,7 +2327,8 @@ static X86CPUDefinition builtin_x86_defs[] =3D { .features[FEAT_8000_0001_ECX] =3D CPUID_EXT3_OSVW | CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE | CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | - CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM, + CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM | + CPUID_EXT3_TOPOEXT, .features[FEAT_7_0_EBX] =3D CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_AV= X2 | CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_RDSEED= | @@ -2419,7 +2420,8 @@ static X86CPUDefinition builtin_x86_defs[] =3D { .features[FEAT_8000_0001_ECX] =3D CPUID_EXT3_OSVW | CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE | CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | - CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM, + CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM | + CPUID_EXT3_TOPOEXT, .features[FEAT_8000_0008_EBX] =3D CPUID_8000_0008_EBX_IBPB, .features[FEAT_7_0_EBX] =3D @@ -4572,6 +4574,11 @@ static void x86_cpu_expand_features(X86CPU *cpu, Err= or **errp) x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A); } =20 + /* TOPOEXT feature requires 0x8000001E */ + if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT) { + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001E); + } + /* SEV requires CPUID[0x8000001F] */ if (sev_enabled()) { x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F); --=20 1.8.3.1 From nobody Mon Apr 29 10:24:55 2024 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 1523402754716160.545239895058; Tue, 10 Apr 2018 16:25:54 -0700 (PDT) Received: from localhost ([::1]:54983 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62e6-0002vz-RP for importer@patchew.org; Tue, 10 Apr 2018 19:25:50 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33821) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f62V9-0003IL-KT for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f62V6-0005jx-So for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:35 -0400 Received: from mail-by2nam01on0049.outbound.protection.outlook.com ([104.47.34.49]:54239 helo=NAM01-BY2-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 1f62V6-0005jN-LR for qemu-devel@nongnu.org; Tue, 10 Apr 2018 19:16:32 -0400 Received: from linux-pyp0.amd.com (165.204.77.1) by CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Tue, 10 Apr 2018 23:16:30 +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=vY4vPheSXj1Ng+3yJsTXKsCzUOZ4duddNHjMlbM+BYw=; b=dOS4V0q0mc2RzQOls+LLrIpcBxYDE8tuMjAMDl0ucWbQVnaVd19hvQAoovXSSCeyzBI4VmThlmMIrxaQBbpMQR+tV+hWDJbIzegxcpKBSLSshQjnO7MnOjovbCkdqpXMTFigqT9lORBOhjXuwE2PifBeFdVAI+ngEhE36Mc/HiU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 10 Apr 2018 19:16:09 -0400 Message-Id: <1523402169-113351-10-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1523402169-113351-1-git-send-email-babu.moger@amd.com> References: <1523402169-113351-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR2201CA0048.namprd22.prod.outlook.com (2603:10b6:301:16::22) To CY4PR12MB1767.namprd12.prod.outlook.com (2603:10b6:903:122::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:CY4PR12MB1767; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 3:mmU+7qtUW5c5ON97DA9SfW/rNiwgzAZJAlMKnUdM3hry+W/+uiNhSf9t1/6Uo88EIMBZ4EVvvNIfCquGLuPRlJ6shEG5rmPGCvrZBlbpp0Gue8S6C/baMtrutP/9wcVoK+xXZri1E5wYjZHzVIs3cg9ewSsaQiiy+db2eVEq9hhM4ItPOOQioDaVV7gbtN5ABc+uzIp3yO2HI6GbJ5QdP2rXLIP4yDJbSrFR5q2ZzWt6QjvCOG9lAFiHInXeI4uH; 25:cZkfvgNDMfx6EiBlsGRh/Q1d00q4wUuoulKT3hJzI2EbpPN/5WF0thd/ltHw6d+STGPmyC9sB3vLnLaAmXkUHkFzjthAQZ3q396ikQC54dYIbesvU5rSAq7WYhMvbirp4X39iVpe2c2U+f2XnclLloRTF4yLcv+Jz75SfE9cOB8soLg42Zq9QoNgol/X1obhtoRQ4vgL1gxbulef5Vo2Z6PwbmYi1dXMNHnTH7U1V54igZXyFpfnRxj+FX1nuTXsiHdWsy8zBpN7ZiruOj2TQAMECFAgvsUeRr4206sJ2QNyS/9EcoKLPxqUALHk+adaejd57+F9CnvqDQNJnDxo/g==; 31:4joFYAAimez0baSRvNCgZ9JVD3/sSkKzS+FMTlpAoJyjqCowd+bVlbJyLvB/C4eJqrMT3KzJNl07a6vo3QsHjCn4yebrMpPIYTXcuC2HHxmMHuWlw8K/NqhKWhJk9kDMV3nSHwwNXueUratuv/XwiZ3GcKpSCIWkyp+t98CliYhTBgWcaTXQrtpDo94AY4ee9MUyjBJtOYRWB9w8t6moFVt3eKGlpI6NQ0hkKdaGqlg= X-MS-TrafficTypeDiagnostic: CY4PR12MB1767: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 20:MAYdO+tmj5tfWuVexcCaidy6QzXOD2oaotumAz6A8xcnMPA4CauwE7fEMS0tzSBb5a3Il+wXV96miWdIP31W3XL+PPsT+JjHmVCiGxmUp+m51lqyDNhbIpIZ5mVOnA4aPJMZJf4oeqKAw9TKqpTSuLsJpxc1xtg6TJHs/vwudslw+OnJ6xYU+IKddHomyKb5bzfEs7WhTh/d2g2qP7eXfFiwC/+vP1B8KAWwe9wJlYjrZh8sNoWPbdpkqWT0kSmehULPKAzLUA9KCJDx6KmYqCdSP+55rCKasHSatarqNfMaR/yr/waT2k3YCzTtCL/5OvHGcxbVGUVUYTBm8BEPd+B6+vF835p3JxUH+5xFFp0QFh3HB8n0OnYx8OT2kUPBDWmxHNMDvAtejNmIiltoW5Ji8HDWLEw6K3ExzDnDZrmSk3+PzAJT3PN29q/E8aXYGQpGd2izOGuF2arfF+C6cklm95BemQ/3Bm2bldZlNNdaIB82luEz5NJM2Va89zNi; 4:CCN/QHTMJB5irmC34hc5C/7RpMNL3NSL0qU4DQFP5sVveLeBmnt2kyDpIk+5ZE8Bq9+gf+RjMeGKE7aJVYwLtWt8G8TZgikSEFGpzvQYEeWVdq+fHs1E1JlpV04zJj5vK1CNklaMI/YMhPS8NowZnJ/ziI7vSk5pww72WhODZiwt26wqmht4oOfBJvxl052Ed8PThZLgwbOSlJvwJQCF5a6rhiqhuESmmHzzb3U/Tcfb8jz1R2dE+gPXUZz0prJN9o8cDZQSDuQzzoY6sQY4qnieDM78le6zXgTfGttbMkbeofLXbI4oZPyETYWANNb6 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)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(6041310)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:CY4PR12MB1767; BCL:0; PCL:0; RULEID:; SRVR:CY4PR12MB1767; X-Forefront-PRVS: 0638FD5066 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(366004)(39860400002)(39380400002)(396003)(199004)(189003)(476003)(2906002)(52116002)(26005)(86362001)(50466002)(50226002)(305945005)(5660300001)(186003)(48376002)(7736002)(16526019)(6666003)(25786009)(6116002)(446003)(11346002)(105586002)(4720700003)(2616005)(6486002)(4326008)(956004)(3846002)(66066001)(53416004)(8936002)(386003)(72206003)(478600001)(316002)(16586007)(8676002)(81156014)(81166006)(59450400001)(97736004)(36756003)(47776003)(76176011)(106356001)(7416002)(7696005)(51416003)(68736007)(53936002)(486006)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1767; H:linux-pyp0.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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; CY4PR12MB1767; 23:meo0v4Y2KQ/1VL6Gvni5oqqQCsfUbf46DmPRDLSYA?= =?us-ascii?Q?z3A6tpGA7BSMOjsaJVz5e8GP8p9l+VMeEc4AT1SyDTNU7Qw0fZVaEJ9XJjtM?= =?us-ascii?Q?Z3eOracy5ESWXUN00CgStpsMUH6DsWYEAIMPVwce1eyTzfJwjcs6PgdVQSP/?= =?us-ascii?Q?QCShWz+IVhnPDhSEqZ4hTV5auxRFcrr0Zgr7q0M1ohekpnofaPfjNtXxi8Km?= =?us-ascii?Q?uZOo1rTdPn2Crh7ecIzcVbhaJiXd6T3w2nldJxCr1mPZTym6Q6UGNu0m2W6Z?= =?us-ascii?Q?NpqaNUhF7XKWSlBpFrNsqDYB0WbP7U2HeOP5zdHuOpL1KqmeJ7VOR7CSg5PM?= =?us-ascii?Q?tYtVt0z+0lRIhmbxtT+CQ6bDkgzXhNDAdQm87kaxaLjiDksT14o/RxZzmW98?= =?us-ascii?Q?s8OnMXoMZAqIa6Kqkc3WkSfFzB0EdMDkiq+sAxuIxnQFzxCQTgYWpONipkbr?= =?us-ascii?Q?Kfmarbw9mL06ZEH0wbrveT84BtOXfCIdsybe3U8KEtNA9wQTMzLSnKPzLi6+?= =?us-ascii?Q?igHqfIrwMd9CHgfUkr4/L4aPJBquusAJq4deVeqDbNFAQtNybyYfKnG2IXNi?= =?us-ascii?Q?ed/E8aDls9bvkBWg+Gfliav2N9YZUH8NgPsZFrS2sU9dVpT0X57FT0UW2zi4?= =?us-ascii?Q?E7j+kZf2Xs8w0V6PVsXTWttNgmV9V0NO1VP0RqD7n/EUfbglTY8JERDyEFje?= =?us-ascii?Q?p9nk6yZ3KlQql9k7Ecf5hNElLmYpjt52olOXTz8FnqaPhdR4LNkc1Pa1j3/0?= =?us-ascii?Q?ALo9AKUC9CjcY7Pw2o4ky3MmpCo/V6WaeegHHdGxC7LVjTwOt5+izNnaYoeI?= =?us-ascii?Q?lQ7thFebqaQeLTox1N9UCv8/d6gEg6C3QNe5YJ8BPk/lp7WdinwIDVQEUCPM?= =?us-ascii?Q?2bd+JzaC/rxbkMsbJrWywFP0vUR4rkIMF6JI+Qpt+4ezZ9yFipaUgJunC/D1?= =?us-ascii?Q?pt/a8w9/fDt4PjdyAM7sPbYA5RC7ubqEXF98+UxaVVeD/hxWEPRInOq37Q4A?= =?us-ascii?Q?UzJ5pax6Ds5LJjfv2/BDCLYPHC3ghJhgvGYxfFsptTC8Itv3d5kSJhBqeieB?= =?us-ascii?Q?uVCgNkryq6iSae4RiGBcikbKu4AFggjBKjidUTFI9nCLc9hPcQXhzk6CChv+?= =?us-ascii?Q?u+FUFFlj31SZFODpr+0DA1f12hWa3HwTUu3v8K9ulDByGMoYfo8uE6m7ADu6?= =?us-ascii?Q?ezeXFOTLO0/aj8mwTMvBgfXnD3x8/KaSozSn4dYrKVJm1TgOYFxQLHt/Zs4n?= =?us-ascii?Q?vZLarT3cW+27yh1kAZDV2oOgIld8cunHVNyJ4ve?= X-Microsoft-Antispam-Message-Info: xRTSOXMloZePjInw7iRT9YRTZd9fmYJDO4jfZ+Jor5y7NdjPrMdm+FKIr8CQi7YDEcbWqAyjlyQwKzEM3tHY931sSxBOI/+I6iplCl7dclA//RVkADDGZZSSL9T7Ndrt3u2tAKSUrGmAB39XBkPX5uJP2o14VpmnXQ3+wD7y1kIvjEy/WX4SIW7Sk4VkaQ8Y X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 6:SV/541jnNI6g+EYPpiY83HaJQ7r6+uTXeZGKtdepspfPAoS6gWmsiasDZ9s2jGOxNF+mddw2VKaabRmfDUT1tq4dGfOM1zfqK5lKQk41mSrHiw55b6/p5+Bg5RfGnUumY4C14jDnYAXWOjCucmFc5wnAQSzyyAQrg+MgnUGGAPnnXxuIVhdAyUGXfub/FeXBx+tLfHv9JtB1r7y0yGmcsLzCSn9ZoQ8yb+kwXsLB94Bm6hNEHF4g0uZDF2PXUuswwHvG+0N+PW3JVGwylds3iF90ktenrOe/DzumoyriqTfyrMdK3Xd31ArRoFlcGnLD6DFPeNjZHr77BV6We4QdQwgW0pkr2p6bzM6guUwAwt/YqI86aCiO7ynPF9GuZkG9++U3/A8IKeQ0S+zJXDyzIX7c4TB4RS6k65sKzU5NsWOCZx6pCHzmkFgQP0vHSqn/B6HWmzjn48Qak3HRDRURCA==; 5:S9karetwM4sxt3KbJKKJtNig7sOfyn9kh/hm+fxJmrXOFZ4hqnawaXJmQ0Gabi4Y9erYfNr5181Trr5HgIoATrDcSqmFXMQioPuVrSSdOHrmqCo+s1oHIeCVmanC/PPEwT3pRaJVA6W9n67iLpV/linOCDQiKSbUcI1qB012XCc=; 24:CwLvDsvRqo6qGJjZ8xLd88TJhoF9FM33pbrxx9sgn2qw34VulCQRTzWzfIUU3UZRbsxq98rH/QuYhsn+jC1YZNjjq8dfxMXCMSOSsiIyF7M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1767; 7:DgYRQuAIbCdTR9z4ht4qgX8ixr6sZnxLAfaQRNxekEDZMyYAjs4zfC+bvUPtiOVNooBOJADl5zQ/cYoSu9at5IM4f+EVQQNggkj/fHLlAf6RvqDF9wqyGtfLc8FjBr67YWGR5W+Dp07FJckLG0Jg3Ni109l6crXIcda5kuCrQ6H1FoZm1mST5Nco1FRb9Cl42mvNU5C2lDpL405DBBCQU8qOEOxFuSZeNemA8Ay5zfktOlkaGQag3R3NEtniXaRY; 20:fImGeiDqHCUoR7yw22CccesITUxD3BgUcd7uY9+x2H4e79XOdTlgq46yX4r1qQ8Q7uBpTa5Fsj9V9lXOTzJGVp5TlW+8HO8AUa3DCt85LaXFxnZRQoSlh4HX7rOyi+NITU99AComEDIvixemAZ3QBpK2HvJ+bcU5jq34PK96lzSTDSq8HIA73kea95vdP9wvUXsGidF4yQy7G0Fx+4zfTMXRAvzWFQtqqfJOwBmPbLw/sjgXQMvf6rSUqGIrrIVk X-MS-Office365-Filtering-Correlation-Id: a17bc69d-5b29-4860-ac84-08d59f391841 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2018 23:16:30.1390 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a17bc69d-5b29-4860-ac84-08d59f391841 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1767 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.34.49 Subject: [Qemu-devel] [PATCH v6 9/9] i386: Remove generic SMT thread check 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" Remove generic non-intel check while validating hyperthreading support. Certain AMD CPUs can support hyperthreading now. CPU family with TOPOEXT feature can support hyperthreading now. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index bfe24b9..077364a 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4822,17 +4822,20 @@ static void x86_cpu_realizefn(DeviceState *dev, Err= or **errp) =20 qemu_init_vcpu(cs); =20 - /* Only Intel CPUs support hyperthreading. Even though QEMU fixes this - * issue by adjusting CPUID_0000_0001_EBX and CPUID_8000_0008_ECX - * based on inputs (sockets,cores,threads), it is still better to gives + /* Most Intel and certain AMD CPUs support hyperthreading. Even though= QEMU + * fixes this issue by adjusting CPUID_0000_0001_EBX and CPUID_8000_00= 08_ECX + * based on inputs (sockets,cores,threads), it is still better to give * users a warning. * * NOTE: the following code has to follow qemu_init_vcpu(). Otherwise * cs->nr_threads hasn't be populated yet and the checking is incorrec= t. */ - if (!IS_INTEL_CPU(env) && cs->nr_threads > 1 && !ht_warned) { - error_report("AMD CPU doesn't support hyperthreading. Please confi= gure" - " -smp options properly."); + if (IS_AMD_CPU(env) && + !(env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT) && + cs->nr_threads > 1 && !ht_warned) { + error_report("This family of AMD CPU doesn't support " + "hyperthreading. Please configure -smp " + "options properly."); ht_warned =3D true; } =20 --=20 1.8.3.1