From patchwork Tue Mar 27 21:31:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891816 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="4SeDLCUr"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409kkV2z6Fz9s0y for ; Wed, 28 Mar 2018 08:32:34 +1100 (AEDT) Received: from localhost ([::1]:36200 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wCl-0002Oh-QX for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:32:31 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44964) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBi-0002MI-Gl for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBf-0003pp-IW for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:26 -0400 Received: from mail-bn3nam01on0064.outbound.protection.outlook.com ([104.47.33.64]:43315 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 1f0wBf-0003oR-Be for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:23 -0400 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=G7Zox6DR8gSmNb55pEPt7uKHOijpowj985I5NW3LFuY=; b=4SeDLCUr0H2a58c/1ubkwxN6je+UFFhxKxovnRyPqd4D8S6xL62YjWG2bo4GYc03bXFilrCawsgtrYHasDpN65Ap8WFjb7UtJ0AGp1N+GeGqQELcyUOh5riuFF+Pfhnr4dmY9t8SbU6LOOWv1HXNzB5Fm8y7TEny1tx5NbiLbpM= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:20 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:03 -0400 Message-Id: <1522186271-27743-2-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 187534d1-67af-49a8-7d7d-08d5942a151e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:qaZmSuqF13TpnhaN3isNR+2uuAYgwpMPhSMcW0WNy1q7OHKOq2HHWgunKOExjQ1nZdS+M10MrVnBuHGGedZV0u5N6hewx0oLekIYYjOsSS4PdLzX6GDDVsuDNH1wd9Wz2xI33Eb2TylawrEs9Y31BgjP/MtEP4dHXgFhk6KmLpuEfN8guVbX7XafyxJkp2jHFhPUyh3H8KfavWLHN5B52fGibEydNinWlSSSANkdLjodkcWeOvThdkPz+twDx0GY; 25:Q29+pyA83Iy4s1d0ZvIos6oln6dg67xK/73eCBqt01ghQdE1UV1oLMJhTlu3jqA7vulZUT9ci6effJAzROOSwIdw1uhCUzU1bA5QF0Xjwh2SIWI0ITdEsUXJg2hCzdVbmRaVAwDWdqEbkuzCmQx/uj1Tbs8XnIzoQcK21uFquJME9eECF1/KZciYb8CUmQje1kiNkJnVztJEh2E/vN4rYh9nN8Ergx0lXPzIKFD0/izDrRrLy4C8QuPQ2uKXIm4q1J2F6IL5i2Dh1IuvYwIjHeIj7082hYZJXp1qpVuXAiuRm1v6pvrTQIb174q/m4eOWQxkQ+q5JUCPEFvL1nZo/g==; 31:xnLRygCmt34sGQ9iu7lj9GUYRBsk8Gk/K7i5i7VhQckGuElpO3gCc74rpQi4AxgLi02zqGIaWGD1oO47M4MwH4uBiwQocUghZyfScDcBloxJdtDxk0hSXEvfyWYhm8drmbCJCwYXHTyMn/1hynPcnuH64yt0/oUUOb0ZqcC47d2QVgCxU+rMFjcs2PB7+9ZNilxeopQVT0GGRFfdnDlZViNfZDB5vJ0sDExpdnQMnTw= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:vgS+VhPHMikYAV2oJayPQeshBGckCthiAD4JG4TJW3IIwttD8irx/R3kWtdjapFYl7D4lUgJsVRh5dZo51ntsMOvkFiV569LEynJJqEMrfVznW1bYxN/ijEU0EG621cv+pwgdAh9zjlxvfGpVQMFkFusAqsJC6DOhKNqkJ6rfHPm2a8zweI5CQ3161Jom/IL6ipwKs71nuvPifrQPDxhrVq1+a8Mte25IqLqumFFsOCVPUbWYzXxW8XtFsof6KTQ4BJdiTg6M2cKmxQV6+zpQNIup7HAZ6n7xALY97lOcMlBBJI+UimhVZnWftswgw9DiieF7FNudLDOjR5DhzwGcymw+K65eGFJj9ls+ZP95hdx1SbL5IClEZGrXIy4wS4bjDLxtT7XzS2x4hxr8GZKtVtHzSYQjcRvUB6MJTyb9sy/7iIbReUqYJo9q7EmdHuI2elkM8cK16JQ9PoWrFKP3YSacR/cQf0oH8Raa6ZVFr0500ikI+TzOZXDsBN3bNHM; 4:tdyvfQRGlway0Ft8uqSSvt6duOGWuP2FJO8AbW3M7KPXpZRhz5NuMVKRGeUwLQnZZ3wRuSXhEeejp2EYIrL7ma6SrwLgSim810EcVhY2wRK0B8MVzXCIAfRN7Y+630BVAlkHiESPNCcWOBR0fzo+WpuY2ekri07BV3kG11AbaI7Aqi/biOWMgA/lyMQYd5me5ps/rhnYWYLLVC0Hm9cXOUdDJnNjRNw9uID8ZhyILaUoTP+EmL/eb7AIjgXPNk6bSHxpFPdBs/ztfQmNzw0PgmAv+xUS5SlyH8sphiT4H70lssXuOoxD9ilXj9I3t1jB X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(59450400001)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(575784001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:Cu+MMttjtmxgFKw776OAWUDT2xkqUvmeP/OoBZsxw?= rWm41rutGrBdN2U+aBIYBqbxORA5/e+lNYKrxjQV40Wf14ZktiQ8s3uuZApRdmF9FI9ATHilXENxfRc4QoEjmCH32+PsoGxng2xFyZbSaryeFP/9V19UGQqD1BFtR8rCvVM287fAWgVuOndzwiTS34I4Sos3T9zX6empNWomXubhCZbaBbr8+8caaYDynHfQysH5wPvwtVI2jvf0ZfTaROVNUMYlvvUnGUaDsekqDx0TbdauGMUTyuIWonP/tuz+6Q+1eJ/x1vncS9sBM4Ss0fIy9NFFISauov/d57Kv8+k6cKYP2bmPznZHX/U9s8ognKhNnQFdAC3oaorklPBT1174lFE4QUmXFDfWrSfOm2k3dXo/xv4qDK3tHu2Nh9uI3ZF7bO0Jbl0fGL2HQcVPlzZNDl3YiUM3xu9ECpvpCHr5mJ39rLTVdL66MDHH9O8esQBzNvdQVm4KAeCRszByn/Z0h6occvH6tZZzL44hhBWH6uQrsxoMCOzkzBwCbLIADGefPFtLe+6WuRbNAyMjVsG+Q+X8M/Wf/gbIh8WShPKx0q1ytOrsc+uynUsCeU2I6DM833EaHrVLJ1C/HI0nusQOnM/Ew0HJfnvT0Yvl1UEWPzjtfZYG6cK/Gd0wTCueuTrWR+qA7qmseBwecaSWJvLI8XqmCf+FNa4Hase8DHOcSDjnmfLT8Zm9fbDPrNASxR2hRkLFxXW/d7MQB7iRGzfyKZTyGPXfDmPmFm5+PDxsS5nQTiZwI+YUPrv9nY5kOScwIFQkdg+eqg4dmvLRRJdtk4qcKKJiK/rMsOJNdwCbOH94trae2H5t+Wef0BvJ+EnazHnJRhFqNDpAX5zqfCdaeky4cDgjAzzI4d6dyPEHRtwF6uCzivpoxBabAWASiFK7RUQ6YyvKhehOTWod/TrHt4QCj0V7AY/dNwO/ZWKpnkxznJLaD2zpMr7oiVZHTyPoZJb6s5RNEniZVY22itawFHriYHAebbjyF5J63RJ3h8BEwD6SADheSC+EWMZ+WQ+UIVOtS77c0xffGpgacq8hUabtmi43dp7VWZSe8fV5cXprs/Uzyl76/7jZC0KdFaudka+EYgwT9baFUlGDA1bHiwSicSgfcVWaNCw25kwtIzP3vD0TsOldXPV1MRHmYVZ4m1DhH88scPddjus3G6JjsvK/zc/zTEEyXYj4prhjB68b3Uw90Pw0lRdEjU/538y1rcUPnEfkXvE3OS9Rl64nVwZ3iuR+flbO76nhA4zbiI4Y5JFBNBs8bHomJo0EoQ= X-Microsoft-Antispam-Message-Info: itt0Sf+7oKyiQrtPicfV6L6tBv9E3d8U3cYDW/Zg6Q2fMlH7UX+PleUyQ7uD5YXrFLJXp+PQKY77e1xyzodaYdF8lPA+76y+iMNmMyRXuGYMk4ohoztzu3rmJokOypmO4ZOSLmkWS9YIXYm1C+pQu65s3uthLDMcojztj9O09vjyYtWbYBXT/vRRz6vp0bDC X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:InrKvxXifrOuCwcYHbqqIFzkUUp09wCNWcSE4JnrfWSCxBqTLAzKJNAX07+jW3pPaFJHfif1HdPoLhuzqgZC8PYdqpjTCGt3U/tIC/Fj5sBCXwmpOk9vhaN88GwW4yveRxS+tf2mNi3b9j0gQxXoJi16E8fOHtGFDRcmD84dWnYIr9CIYUCosQgLY4cVFjBxyEEZBPdziFYB16fcfjMv9/roB3q2RFUV6oTGDHEGd85mHiXepokRA8mXCj/httMWrSc/2wC1Bd5lyV/hfEi0adQnynPslk0F6ut96Vs59pjukuJPAZHCvdL0W58VNn+via16lqB6BWkWSSxrhqEvhcbmgKyllqFFUKP0aipVEmpwfY3Wwkc19Ye6zKX6O+spCUqhNiND0zWmQ1mJfZX6/GDcxAmdOi39EyOZuBXoGYbtLlfz3COmhh2buCYFBbruxiqGfViPRzzbTgqv0Yi9HQ==; 5:hLqzwai8fRCY35XqmxeCAJUxd2CiFiOcTeX1U4Qi74ELvZ6UJiz1M1aTaj2RRgz8xqH3HC/skRD9fj0yCIUMW+E4SOby/rzJVOcrtHO7BJYTosmFMhet53esna29Zs5MP81QjTOQRqcZ27JZqH6gDHx/b9Q3p+xlXLh6pbbvCxU=; 24:6xr0+x/6jov9KQYRXMgusZTCqLN1ER0+XMcjTG/WsZqbbnPXAK3lOueilxvP+8n6gOaZUl57z93iQDH+J6b40PGrflGLycCDU6Og6NkxwN4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:/ijhT5Ra/wPcimXiZ7oVmPzeLUibaoXgu0Y8IN1YfkyDhTGahjsKMB1dwkfoHsR4wbyqFI3uyv89sQqltmgfpqnJwVUfGBACoIYKiX29vdYNLnA0NYuL4liuMthrJK6btpC6PEG7nsBymLpdGCfqtQJXRjE0WdVr9nJfTDlwskf0v3zzPIoHtQQhDLj0Rttb/YiqXrr2NFZWC/fb6osdkOib53Phk8pP6yctoBvc9qMgPwr1YJVNjMCrV7lXAEyK; 20:R9l+x4KTKyKLDYwWOT2zNLktREvGcoOfBHshvksoC9cngJV4rXZjwA2NvO80VrKedDkpQ+KSRcChwtxdcaEtx28VYXfC2X9RIJI2j4ckZvEZ0nsF7ePA1K+j88LBwieP7xFpVDSZgPdVSXu7ny5bkheMsMIop/juyeC1d286RB6G7LYkDt+i3V0FjHumyfYw0Ryh4jppsfTNyV/WqhQB1NWwoja09+q4HWHaajMbtZeHXBKpSZwSaNVH+vA8kBZ6 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:20.0712 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 187534d1-67af-49a8-7d7d-08d5942a151e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.64 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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 --- 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 6bb4ce8..da59dc4 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -56,33 +56,240 @@ #include "disas/capstone.h" +/* Helpers for building CPUID[2] descriptors: */ + +struct CPUID2CacheDescriptorInfo { + enum CacheType type; + int level; + int size; + int line_size; + int associativity; +}; -/* Cache topology CPUID constants: */ +#define KiB 1024 +#define MiB (1024 * 1024) -/* CPUID Leaf 2 Descriptors */ +/* + * Known CPUID 2 cache descriptors. + * From Intel SDM Volume 2A, CPUID instruction + */ +struct CPUID2CacheDescriptorInfo cpuid2_cache_descriptors[] = { + [0x06] = { .level = 1, .type = ICACHE, .size = 8 * KiB, + .associativity = 4, .line_size = 32, }, + [0x08] = { .level = 1, .type = ICACHE, .size = 16 * KiB, + .associativity = 4, .line_size = 32, }, + [0x09] = { .level = 1, .type = ICACHE, .size = 32 * KiB, + .associativity = 4, .line_size = 64, }, + [0x0A] = { .level = 1, .type = DCACHE, .size = 8 * KiB, + .associativity = 2, .line_size = 32, }, + [0x0C] = { .level = 1, .type = DCACHE, .size = 16 * KiB, + .associativity = 4, .line_size = 32, }, + [0x0D] = { .level = 1, .type = DCACHE, .size = 16 * KiB, + .associativity = 4, .line_size = 64, }, + [0x0E] = { .level = 1, .type = DCACHE, .size = 24 * KiB, + .associativity = 6, .line_size = 64, }, + [0x1D] = { .level = 2, .type = UNIFIED_CACHE, .size = 128 * KiB, + .associativity = 2, .line_size = 64, }, + [0x21] = { .level = 2, .type = UNIFIED_CACHE, .size = 256 * KiB, + .associativity = 8, .line_size = 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x22, 0x23 are not included + */ + [0x24] = { .level = 2, .type = UNIFIED_CACHE, .size = 1 * MiB, + .associativity = 16, .line_size = 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x25, 0x20 are not included + */ + [0x2C] = { .level = 1, .type = DCACHE, .size = 32 * KiB, + .associativity = 8, .line_size = 64, }, + [0x30] = { .level = 1, .type = ICACHE, .size = 32 * KiB, + .associativity = 8, .line_size = 64, }, + [0x41] = { .level = 2, .type = UNIFIED_CACHE, .size = 128 * KiB, + .associativity = 4, .line_size = 32, }, + [0x42] = { .level = 2, .type = UNIFIED_CACHE, .size = 256 * KiB, + .associativity = 4, .line_size = 32, }, + [0x43] = { .level = 2, .type = UNIFIED_CACHE, .size = 512 * KiB, + .associativity = 4, .line_size = 32, }, + [0x44] = { .level = 2, .type = UNIFIED_CACHE, .size = 1 * MiB, + .associativity = 4, .line_size = 32, }, + [0x45] = { .level = 2, .type = UNIFIED_CACHE, .size = 2 * MiB, + .associativity = 4, .line_size = 32, }, + [0x46] = { .level = 3, .type = UNIFIED_CACHE, .size = 4 * MiB, + .associativity = 4, .line_size = 64, }, + [0x47] = { .level = 3, .type = UNIFIED_CACHE, .size = 8 * MiB, + .associativity = 8, .line_size = 64, }, + [0x48] = { .level = 2, .type = UNIFIED_CACHE, .size = 3 * MiB, + .associativity = 12, .line_size = 64, }, + /* Descriptor 0x49 depends on CPU family/model, so it is not included */ + [0x4A] = { .level = 3, .type = UNIFIED_CACHE, .size = 6 * MiB, + .associativity = 12, .line_size = 64, }, + [0x4B] = { .level = 3, .type = UNIFIED_CACHE, .size = 8 * MiB, + .associativity = 16, .line_size = 64, }, + [0x4C] = { .level = 3, .type = UNIFIED_CACHE, .size = 12 * MiB, + .associativity = 12, .line_size = 64, }, + [0x4D] = { .level = 3, .type = UNIFIED_CACHE, .size = 16 * MiB, + .associativity = 16, .line_size = 64, }, + [0x4E] = { .level = 2, .type = UNIFIED_CACHE, .size = 6 * MiB, + .associativity = 24, .line_size = 64, }, + [0x60] = { .level = 1, .type = DCACHE, .size = 16 * KiB, + .associativity = 8, .line_size = 64, }, + [0x66] = { .level = 1, .type = DCACHE, .size = 8 * KiB, + .associativity = 4, .line_size = 64, }, + [0x67] = { .level = 1, .type = DCACHE, .size = 16 * KiB, + .associativity = 4, .line_size = 64, }, + [0x68] = { .level = 1, .type = DCACHE, .size = 32 * KiB, + .associativity = 4, .line_size = 64, }, + [0x78] = { .level = 2, .type = UNIFIED_CACHE, .size = 1 * MiB, + .associativity = 4, .line_size = 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x79, 0x7A, 0x7B, 0x7C are not included. + */ + [0x7D] = { .level = 2, .type = UNIFIED_CACHE, .size = 2 * MiB, + .associativity = 8, .line_size = 64, }, + [0x7F] = { .level = 2, .type = UNIFIED_CACHE, .size = 512 * KiB, + .associativity = 2, .line_size = 64, }, + [0x80] = { .level = 2, .type = UNIFIED_CACHE, .size = 512 * KiB, + .associativity = 8, .line_size = 64, }, + [0x82] = { .level = 2, .type = UNIFIED_CACHE, .size = 256 * KiB, + .associativity = 8, .line_size = 32, }, + [0x83] = { .level = 2, .type = UNIFIED_CACHE, .size = 512 * KiB, + .associativity = 8, .line_size = 32, }, + [0x84] = { .level = 2, .type = UNIFIED_CACHE, .size = 1 * MiB, + .associativity = 8, .line_size = 32, }, + [0x85] = { .level = 2, .type = UNIFIED_CACHE, .size = 2 * MiB, + .associativity = 8, .line_size = 32, }, + [0x86] = { .level = 2, .type = UNIFIED_CACHE, .size = 512 * KiB, + .associativity = 4, .line_size = 64, }, + [0x87] = { .level = 2, .type = UNIFIED_CACHE, .size = 1 * MiB, + .associativity = 8, .line_size = 64, }, + [0xD0] = { .level = 3, .type = UNIFIED_CACHE, .size = 512 * KiB, + .associativity = 4, .line_size = 64, }, + [0xD1] = { .level = 3, .type = UNIFIED_CACHE, .size = 1 * MiB, + .associativity = 4, .line_size = 64, }, + [0xD2] = { .level = 3, .type = UNIFIED_CACHE, .size = 2 * MiB, + .associativity = 4, .line_size = 64, }, + [0xD6] = { .level = 3, .type = UNIFIED_CACHE, .size = 1 * MiB, + .associativity = 8, .line_size = 64, }, + [0xD7] = { .level = 3, .type = UNIFIED_CACHE, .size = 2 * MiB, + .associativity = 8, .line_size = 64, }, + [0xD8] = { .level = 3, .type = UNIFIED_CACHE, .size = 4 * MiB, + .associativity = 8, .line_size = 64, }, + [0xDC] = { .level = 3, .type = UNIFIED_CACHE, .size = 1.5 * MiB, + .associativity = 12, .line_size = 64, }, + [0xDD] = { .level = 3, .type = UNIFIED_CACHE, .size = 3 * MiB, + .associativity = 12, .line_size = 64, }, + [0xDE] = { .level = 3, .type = UNIFIED_CACHE, .size = 6 * MiB, + .associativity = 12, .line_size = 64, }, + [0xE2] = { .level = 3, .type = UNIFIED_CACHE, .size = 2 * MiB, + .associativity = 16, .line_size = 64, }, + [0xE3] = { .level = 3, .type = UNIFIED_CACHE, .size = 4 * MiB, + .associativity = 16, .line_size = 64, }, + [0xE4] = { .level = 3, .type = UNIFIED_CACHE, .size = 8 * MiB, + .associativity = 16, .line_size = 64, }, + [0xEA] = { .level = 3, .type = UNIFIED_CACHE, .size = 12 * MiB, + .associativity = 24, .line_size = 64, }, + [0xEB] = { .level = 3, .type = UNIFIED_CACHE, .size = 18 * MiB, + .associativity = 24, .line_size = 64, }, + [0xEC] = { .level = 3, .type = UNIFIED_CACHE, .size = 24 * MiB, + .associativity = 24, .line_size = 64, }, +}; + +/* + * "CPUID leaf 2 does not report cache descriptor information, + * use CPUID leaf 4 to query cache parameters" + */ +#define CACHE_DESCRIPTOR_UNAVAILABLE 0xFF -#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 = 0; i < ARRAY_SIZE(cpuid2_cache_descriptors); i++) { + struct CPUID2CacheDescriptorInfo *d = &cpuid2_cache_descriptors[i]; + if (d->level == cache->level && d->type == cache->type && + d->size == cache->size && d->line_size == cache->line_size && + d->associativity == cache->associativity) { + return i; + } + } + return CACHE_DESCRIPTOR_UNAVAILABLE; +} /* CPUID Leaf 4 constants: */ /* 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 -#define CPUID_4_LEVEL(l) ((l) << 5) +#define CACHE_LEVEL(l) (l << 5) -#define CPUID_4_SELF_INIT_LEVEL (1 << 8) -#define CPUID_4_FULLY_ASSOC (1 << 9) +#define CACHE_SELF_INIT_LEVEL (1 << 8) /* 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) == DCACHE) ? CACHE_TYPE_D : \ + ((t) == ICACHE) ? CACHE_TYPE_I : \ + ((t) == 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 == cache->line_size * cache->associativity * + cache->partitions * cache->sets); + + assert(num_apic_ids > 0); + *eax = 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 = (cache->line_size - 1) | + ((cache->partitions - 1) << 12) | + ((cache->associativity - 1) << 22); + + assert(cache->sets > 0); + *ecx = cache->sets - 1; + + *edx = (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 == 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); +} #define ASSOC_FULL 0xFF @@ -100,57 +307,140 @@ a == ASSOC_FULL ? 0xF : \ 0 /* invalid value */) +/* + * 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 == 0); + assert(l2->associativity > 0); + assert(l2->lines_per_tag > 0); + assert(l2->line_size > 0); + *ecx = ((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) == 0); + assert(l3->associativity > 0); + assert(l3->lines_per_tag > 0); + assert(l3->line_size > 0); + *edx = ((l3->size / (512 * 1024)) << 18) | + (AMD_ENC_ASSOC(l3->associativity) << 12) | + (l3->lines_per_tag << 8) | (l3->line_size); + } else { + *edx = 0; + } +} /* Definitions of the hardcoded cache entries we expose: */ /* L1 data cache: */ -#define L1D_LINE_SIZE 64 -#define L1D_ASSOCIATIVITY 8 -#define L1D_SETS 64 -#define L1D_PARTITIONS 1 -/* Size = LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS = 32KiB */ -#define L1D_DESCRIPTOR CPUID_2_L1D_32KB_8WAY_64B +static CPUCacheInfo l1d_cache = { + .type = DCACHE, + .level = 1, + .size = 32 * KiB, + .self_init = 1, + .line_size = 64, + .associativity = 8, + .sets = 64, + .partitions = 1, + .no_invd_sharing = 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 = { + .type = DCACHE, + .level = 1, + .size = 64 * KiB, + .self_init = 1, + .line_size = 64, + .associativity = 2, + .sets = 512, + .partitions = 1, + .lines_per_tag = 1, + .no_invd_sharing = true, +}; /* L1 instruction cache: */ -#define L1I_LINE_SIZE 64 -#define L1I_ASSOCIATIVITY 8 -#define L1I_SETS 64 -#define L1I_PARTITIONS 1 -/* Size = LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS = 32KiB */ -#define L1I_DESCRIPTOR CPUID_2_L1I_32KB_8WAY_64B +static CPUCacheInfo l1i_cache = { + .type = ICACHE, + .level = 1, + .size = 32 * KiB, + .self_init = 1, + .line_size = 64, + .associativity = 8, + .sets = 64, + .partitions = 1, + .no_invd_sharing = 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 = { + .type = ICACHE, + .level = 1, + .size = 64 * KiB, + .self_init = 1, + .line_size = 64, + .associativity = 2, + .sets = 512, + .partitions = 1, + .lines_per_tag = 1, + .no_invd_sharing = true, +}; /* Level 2 unified cache: */ -#define L2_LINE_SIZE 64 -#define L2_ASSOCIATIVITY 16 -#define L2_SETS 4096 -#define L2_PARTITIONS 1 -/* Size = LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS = 4MiB */ +static CPUCacheInfo l2_cache = { + .type = UNIFIED_CACHE, + .level = 2, + .size = 4 * MiB, + .self_init = 1, + .line_size = 64, + .associativity = 16, + .sets = 4096, + .partitions = 1, + .no_invd_sharing = 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 = { + .type = UNIFIED_CACHE, + .level = 2, + .size = 2 * MiB, + .line_size = 64, + .associativity = 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 = { + .type = UNIFIED_CACHE, + .level = 2, + .size = 512 * KiB, + .line_size = 64, + .lines_per_tag = 1, + .associativity = 8, + .sets = 1024, + .partitions = 1, +}; /* 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 = { + .type = UNIFIED_CACHE, + .level = 3, + .size = 16 * MiB, + .line_size = 64, + .associativity = 16, + .sets = 16384, + .partitions = 1, + .lines_per_tag = 1, + .self_init = true, + .inclusive = true, + .complex_indexing = true, +}; /* TLB definitions: */ @@ -3298,85 +3588,53 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, if (!cpu->enable_l3_cache) { *ecx = 0; } else { - *ecx = L3_N_DESCRIPTOR; + *ecx = cpuid2_cache_descriptor(&l3_cache); } - *edx = (L1D_DESCRIPTOR << 16) | \ - (L1I_DESCRIPTOR << 8) | \ - (L2_DESCRIPTOR); + *edx = (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..26. */ *eax &= ~0xFC000000; + if ((*eax & 31) && cs->nr_cores > 1) { + *eax |= (cs->nr_cores - 1) << 26; + } } else { *eax = 0; switch (count) { case 0: /* L1 dcache info */ - *eax |= CPUID_4_TYPE_DCACHE | \ - CPUID_4_LEVEL(1) | \ - CPUID_4_SELF_INIT_LEVEL; - *ebx = (L1D_LINE_SIZE - 1) | \ - ((L1D_PARTITIONS - 1) << 12) | \ - ((L1D_ASSOCIATIVITY - 1) << 22); - *ecx = L1D_SETS - 1; - *edx = 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 |= CPUID_4_TYPE_ICACHE | \ - CPUID_4_LEVEL(1) | \ - CPUID_4_SELF_INIT_LEVEL; - *ebx = (L1I_LINE_SIZE - 1) | \ - ((L1I_PARTITIONS - 1) << 12) | \ - ((L1I_ASSOCIATIVITY - 1) << 22); - *ecx = L1I_SETS - 1; - *edx = 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 |= CPUID_4_TYPE_UNIFIED | \ - CPUID_4_LEVEL(2) | \ - CPUID_4_SELF_INIT_LEVEL; - if (cs->nr_threads > 1) { - *eax |= (cs->nr_threads - 1) << 14; - } - *ebx = (L2_LINE_SIZE - 1) | \ - ((L2_PARTITIONS - 1) << 12) | \ - ((L2_ASSOCIATIVITY - 1) << 22); - *ecx = L2_SETS - 1; - *edx = 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 = 0; - *ebx = 0; - *ecx = 0; - *edx = 0; + pkg_offset = apicid_pkg_offset(cs->nr_cores, cs->nr_threads); + if (cpu->enable_l3_cache) { + encode_cache_cpuid4(&l3_cache, + (1 << pkg_offset), cs->nr_cores, + eax, ebx, ecx, edx); break; } - *eax |= CPUID_4_TYPE_UNIFIED | \ - CPUID_4_LEVEL(3) | \ - CPUID_4_SELF_INIT_LEVEL; - pkg_offset = apicid_pkg_offset(cs->nr_cores, cs->nr_threads); - *eax |= ((1 << pkg_offset) - 1) << 14; - *ebx = (L3_N_LINE_SIZE - 1) | \ - ((L3_N_PARTITIONS - 1) << 12) | \ - ((L3_N_ASSOCIATIVITY - 1) << 22); - *ecx = L3_N_SETS - 1; - *edx = CPUID_4_INCLUSIVE | CPUID_4_COMPLEX_IDX; - break; + /* fall through */ default: /* end of info */ - *eax = 0; - *ebx = 0; - *ecx = 0; - *edx = 0; + *eax = *ebx = *ecx = *edx = 0; break; } } - - /* QEMU gives out its own APIC IDs, never pass down bits 31..26. */ - if ((*eax & 31) && cs->nr_cores > 1) { - *eax |= (cs->nr_cores - 1) << 26; - } break; case 5: /* mwait info: needed for Core compatibility */ @@ -3580,10 +3838,8 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES); *ebx = (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | \ (L1_ITLB_4K_ASSOC << 8) | (L1_ITLB_4K_ENTRIES); - *ecx = (L1D_SIZE_KB_AMD << 24) | (L1D_ASSOCIATIVITY_AMD << 16) | \ - (L1D_LINES_PER_TAG << 8) | (L1D_LINE_SIZE); - *edx = (L1I_SIZE_KB_AMD << 24) | (L1I_ASSOCIATIVITY_AMD << 16) | \ - (L1I_LINES_PER_TAG << 8) | (L1I_LINE_SIZE); + *ecx = encode_cache_cpuid80000005(&l1d_cache_amd); + *edx = encode_cache_cpuid80000005(&l1i_cache_amd); break; case 0x80000006: /* cache info (L2 cache) */ @@ -3599,18 +3855,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 = (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 = ((L3_SIZE_KB / 512) << 18) | \ - (AMD_ENC_ASSOC(L3_ASSOCIATIVITY) << 12) | \ - (L3_LINES_PER_TAG << 8) | (L3_LINE_SIZE); - } else { - *edx = ((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 = 0; diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 2e2bab5..79d5ccf 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1044,6 +1044,59 @@ typedef enum TPRAccess { TPR_ACCESS_WRITE, } TPRAccess; +/* 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]; From patchwork Tue Mar 27 21:31:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891814 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="0zyZpSoV"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409kkR3nb5z9s0y for ; Wed, 28 Mar 2018 08:32:29 +1100 (AEDT) Received: from localhost ([::1]:36198 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wCf-0002Mi-NP for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:32:25 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44960) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBi-0002MG-FY for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBf-0003qB-Qo for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:26 -0400 Received: from mail-bn3nam01on0064.outbound.protection.outlook.com ([104.47.33.64]:43315 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 1f0wBf-0003oR-Mk for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:23 -0400 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=MoWaTRdnH5Ho3JPZlkXluk0uS/Nipg06ILsZnVqNxgA=; b=0zyZpSoV4MHRzumhPfSHcrtV/jedtMWki38+3YRs2k/loFym2SS32P0ZqHrPGaWp+GHsQuZSN7yCl0eyMS1yJuwYvAl76pzXzEtoisyGQjU6bA6e+4XOZpLdKKfyPR0VihbbUUMPhlaiN4GU5G9rUZzwDZvGjSbWLLhXGOk73q8= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:21 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:04 -0400 Message-Id: <1522186271-27743-3-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0d4be97a-a616-4a33-8aaa-08d5942a15ad X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:yHEzn3Tdy94tN9h+718dZTN5s3Ob5UFvesXOJsA35n+5jwWACp0vTTF5KOVwEi8v7JiXaHouttdEOV6Sw6XMVP2ozRoeCxKhu5gGBNMGyET7MEv5+ZMyp0W9/CmpMWTJT5KCIo6B2aRflW7Fsw6UalMZku1nSxjP7mOrS1iKQrCfl/SrLEhXq58lr/eO6qQYynXV/mGRCTkqAGGbobmCm4+VNm8W0IFPypqutFiwkKjcFDH3mcatQDDO3gi11nLA; 25:yW0KPWz9mmxruDq2KGwLXyNdvjR7cngtOED3Ers7QC6w4Ej5j7iHxRVbBmXf6b9QVv3FGF/1cUSv3HJIPtNB4vKG4GkSEI3uthxcXoU9NmG3vzPbcab4kkA7nxkjiXJiBKFzWtMpfplyH/ixhRWQ38lKi0RCLEhKz2KZ8dR+5FpMWk6KJ9zQr7R6gMqUD7kDR9pkezag4VTo6Bhq9WuJyjMbFYQFHlFYSbi5nrMKz2Y25CRCAFoUJgH3DjuYQJOlnnS8ggFdLZ0vfteLUaV0+/CUIR5jcES3UClVmS2KoXHMNs5vDz8A8aiIyii5UIwsDT+OwG8keweTcMtkW8ktjA==; 31:OAvIYqgtXORQitagk5KsnO0Hc/r7KmN80gWI6iCMoVap+caq3yymjsSjui86GDnrFIu5V/fJ/N1uYeVNmp3k/HcojZqlGkMQnaoRZyxyyitM0TbFQrKSqavFYS+g+GRz78t+RdHg68NeTNRGOrERzsyJ1EnsNF4mvv3/r6ZC4MCBc9Qu+zo4mMWt2/t2o1q/eH7EPfUEB/Ut9oVZv0IOfpkVSYez/mn6C+Mkldp1ypo= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:nicYG16yXjeBGZMG/ZdMoeDaQZl2AyJyj7wXEk6QEbF+9LxXWsTkfA0Uc2obtdLPBZ65Qe6vPxXhkjmG8SxaxjD8805xk0m0fZyhuC6I1cRdbr5A2dD8f0ZZruJ2MqOHBXYjsuk36ye9yBDLDMvPFDwQU5oG+1+KhWGrCtnPWct7wKmfw5vgyEIpIoaZyuLOoWeaYG0nsMIZuVpTdOKRN9BdKGZqPy3yHJRzn+ztmLLU8VVmgMJr1Ci8CtdTzY7keqVzGV9drxHPLCFHD8Na1Z2SOza3ND0VHFxzjHT8JAwvW74h1JqtxCOlzqohrBM0Uqv/F4zsYOn9gqV3EJ9tYgN+GY0CX9jMcUbmAWO3RHPd0wj5xN6qJUe7FSRfbAsLcRlTbTAPxLHtu+xcJXg4WNClu2mCOkbLzFzARk/bzy1frPwuINlsmJdwGGcgp/jWxxmE0eJpKdyH61i3YLv9CtmzmXZ97bzvAFKIXtnhuVkxe2+EsmQ4co7u/Twx0IUr; 4:m57hL6bin4xW7LLmQAJZDyZyde1TRW9PCNgbuPRMHWEsWzqpX7ZK5f5lwqh7iq/zCoGw6qsvwz7lQ4kYDRXqw8Cn6IG+Eljdl6XIiItcK2rjvlkVA+C8V3Xe/9IaiQ3a5aiy5Y0Pl32q4iqWz7UhOHdsuyqOaJ+NqPz/P8pZKUowq9ll+1iaXN4M8Lw/AlgY6vJh+/MmEDXTILClaoNRdACiz+fqpLDZjrm7Pxp9j9oZYMMsMTVFJMGcaGfzl7J/GIppBn238QjOGEvhZcI5+DMEz0LW42hJLy/kZpX0Czhl7zDz8aRRuYLG18OTSLt6 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(15760500003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(59450400001)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:020jTavoToZ9qABqlRyxDqwryDi6/PJDP4bE2URM4?= sPaZARc+PTLkdUNkkRFhEZHYZkVSMK8aS5lZtjeb+VjtrSYyPU3eHquPl6Rf3bZ2pM1a6Mr+4EsTjncv7JkCWGnX1swPEoLaIE4ikGyzQGR17tAKXRMOIErcMDzn2m4dikSQJlzugDFq00p+EutdjaZOeX+PffTFAIwPb3w8RmgAV93p7GpgUxQCBIbSNJhK75HeU5vozC5fS5r260GJLhRuPGyIF63XwtLgAN0M0+x0REvEV6qxEPAokKn4VgiLONNmDZM7duwZKON3uSxetnH7zX5NkAf8a/kPrbuJno3WD+F3jQpvSs6Byd6v3SJcqRfu/Fjr+mN0cI6TAf3j8gePBmaGLaiBSrq73MpZjeDFOD1dXkIJreBTvB5upS/py51Uklhw7uvyWHNs+cWQJYCB9rW5w0Y+42CUd0dVV6omvIUdW0OJIySYBJtKjYwNvfkZ76M/ebf0SCN7PgNdeuJqtgInkSamTqDNffOlDCFiGUrFdDl6TWZM/B4370d2H6e98nLmiunZ0IKLlu+rxDgHELeF8YbZq2RstTiyn2C7qaNzwHbVRb9WOpNgNsn0to0nCtWhjiircqZE8FTyFMjlbR8Ejmjha5RIlbjkOB7HagHCgJyX0FTVy1cEvbEBev3GZFyQCGC5Ruf7GB0hW0zae0HjlVgfvG7iRh/rl7jdGPyqiMeoTj1u5bN4BDTFL/E6l1fO2eIM5gUT8/VADzxmfqab5lUgcSq6Tsh+CKReGH9ygX/SGZ1Jfx+JGE5Lg29Q8BlDKOw0kkXYjhpJ9H3Prop2g9MCGBk2mqHqVwoz1OIgL1PQOfJ2tYx3QDK4tDjlkdjFd82z3Lgz0CJCApdvRIN55rNlunN8eJccSAiUbN4eJWld/3fTcu7am4UAgAM8bYLvT8oZ4vpVETj+SEJ/zXWjWS41KfROwVl4wfghn25gSooTRkzAkS94/haVfHjzswyz82tKK88zr6ZK7Wm/aljKChbU9mt2d0ESWMUGyr4zEi6Mnct/hNtILdeWYG4rTxpYan/f4kpOzslqvn3gYUC6pTP6QmD4cYV+h6uVNYIgzEnLgXv2fJBUo1xXhFGfjHuD6XnGtrXVgy2UugPHdva2jtlSo3Ew6E16t7DR7tvzs4MtAyT7OPWQy4IMtXlUn/3Qi+HS3yS1NDK4tFjyMmQbdVs2sP+VE1twV/YAvkaQ36x5PWX8vlKDW/39tBSe4DeFp53SznNFLPBTx/Sw2PUipi8EdSjFQS+73asGA== X-Microsoft-Antispam-Message-Info: Rybxws8x2MnmeTsqQ9R1OfWPi3ShtjlDYCGtG0Wd6A0kr7kB8cssS5cOfA5auMRuYoqmMnYLMp3u5YJ72Uqr+LXOs3CzEAOPKiGe7c3XDQnBJNcVGfdo5d8h98V1p8XW6JygbvFW5ZIjezjR0Y6wem6x36uPF3E3pZ0pi8CEMNYpkJEWSfEvTnrGt7SmUTAC X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:9NfIfik/g+gmFUx833havVhHQomTs3QL51hcqnBIEScg8FFLDykYbyUNcnLwFJ/tdS9SJraMo8bFEp5sTeq/IJh4cRwkmn+uPfA2GBe34tXga3Zl/m6U/Jjk0t1wBxRt5e0k2NdcOCDVsYgrpv6Safjnxdn7T8vvChhYY1Zt4q5wz7aHQZtwX3MDMj4TRmMfCyYCXw6JXnVdzuTXT+vlbvVcZEgmCJMT0tlpSqcMPAM6VF3bYLcejbkpI6ccY0t+CH7IUckOj82vX8Tyv6ZNwKXd/pKmayW9t2jvLONsCJHjgW6FGj2YB83aOn+Bm54cSlqvaagCrBM8jMScUfuic/tpKQlm8SF2w+NlxLD4ze1qNAMQU6FUlRr87RSM+oaDFRonYc7oaPX3dpa09h6UTQbnTsU/SmPuYZS5MUzM06j5l4XzJJpd7j0jxkeob+H3jXmL5964fVi8TXqU/AtQMA==; 5:NfyL0L+aoVc4tkZbYu4mw6r1i0cL1RRY65+AvdXIXWvzrXMVRBLDLo1cnWS/KMidhZ6pQFERlyD73+HAqYKFAcFfFadcF2cL4YDSbVdTJnbSwCEANMwVWmgsLU4zKErgEs6YB3hzyUBuzCNL6+s7+TS+hR9M+xczKKggUD6mus0=; 24:imGCMAffjdbo/l/2Q3m5MzilnpnJDVpvHrr0X4yk+DtoO+vtMDmvNWnVKtYKdWI1NxjgS3OKzYX6RybaKlvFIbgtgUYKAdoNGIX6j09O9BQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:0pYS/3QpqG7gjV42zNLF7ql5+ptuS/55KChgbyfkXz55ab1uIIjD/+LvEoUGrLl4IsnRIfda8ObWQmOlh7hz9vsvFotKU5HNnRCJh0+yJhm3mCFIrk2PvaLwENcCPecrQwRCl0LYg44Xg4lrWfKIJGMdrBscoBKDywUGn/3L6EVo+1B/BPNiPT28PO9tXKArwUq4sVsCjo9NSZ6/ftgOmLxZ4NBAmbipHcfGKUWTwJtOEyedUX94NKt2gY7tGKzB; 20:nllbuOIzNb9pZyeWBlu+7tw9RUwsgHnH7sUr7IHitLecB9eQ44656Guzrop5lCq8az5apUXVAIuPowP670RCqAQIPf2y1QFHwmb6HAYsVDXnf5d8pGyT8lO7Z45d+Ec/zJpCBSM1AmnWBHQ/NCLH8jqKcUgxwFp7ypLjcRI6rxLk6pRjzs5kmViMz96RB6YIIxY9T/C4cXzpHOdy+Eo4M5yGY+xIy4/ixeNUAoYjXyhai1KYgJ7qcJZGWYJi4U7+ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:21.0243 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0d4be97a-a616-4a33-8aaa-08d5942a15ad X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.64 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add cache information in X86CPUDefinition and CPUX86State. Signed-off-by: Babu Moger --- 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 da59dc4..eec4a97 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1102,6 +1102,7 @@ struct X86CPUDefinition { int stepping; FeatureWordArray features; const char *model_id; + CPUCaches cache_info; }; static X86CPUDefinition builtin_x86_defs[] = { @@ -3239,6 +3240,9 @@ static void x86_cpu_load_def(X86CPU *cpu, X86CPUDefinition *def, Error **errp) env->features[w] = def->features[w]; } + /* 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 79d5ccf..806c34b 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1096,6 +1096,13 @@ typedef struct CPUCacheInfo { } CPUCacheInfo; +typedef struct CPUCaches { + bool valid; + CPUCacheInfo l1d_cache; + CPUCacheInfo l1i_cache; + CPUCacheInfo l2_cache; + CPUCacheInfo l3_cache; +} CPUCaches; 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; /* MTRRs */ uint64_t mtrr_fixed[11]; From patchwork Tue Mar 27 21:31:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891818 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="XxHkNLnP"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409kp369DSz9s0y for ; Wed, 28 Mar 2018 08:35:39 +1100 (AEDT) Received: from localhost ([::1]:36210 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wFl-0005I7-BB for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:35:37 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44993) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBk-0002MO-2w for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBg-0003r4-UN for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:28 -0400 Received: from mail-bn3nam01on0062.outbound.protection.outlook.com ([104.47.33.62]:51955 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 1f0wBg-0003qh-OD for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:24 -0400 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=jn84dfh8W13fAtf4Ftpe8kgjcjQRspCLE8VRT11nkok=; b=XxHkNLnPfRZ/PKUwgwWaa2CvahT8Fj0kR3CI8TeA5HO+w9aoHJCKmctgKPNOaC4/EpaltCFclUyrqSUk22306JxjEvtRrJ29nbIHawyO0myaoPoyxs4d2XieLiqFHqP09RWHjY/W3AflIxnOZ4Ga4n+9UCzJMhvDfxWwOvap6Kk= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:22 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:05 -0400 Message-Id: <1522186271-27743-4-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b1a527ab-6a62-419a-bd72-08d5942a1662 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:cAonPxQ1H0NVSqobqiJ3kIpvoXiEHaoV6IDB45ftO643IVoPT7wggIQ1etcbnsjM+HU+fSOi2TsGTuOvQoqvig3dnQkCH5VWw5iticGs9TWwZVKi4qEw3FgkVNZGpnS7Jy+Q1rTdkSHMSVCYCchN5s1D5lRDtpH+5KJsAlsDHocxCfj+jA6HjFVZZn+rdpMDRkKMN6xb+P+kpzxDX5GF9Kson4hE8CtgaUpUhs3azDpOpCoDc+emACRqei3LA0ii; 25:jfwD6poUHu8mSI3UqCrjmz+mqu2Hzs5RmrrI7n64iX9/VyTWPuaCTaLHlcY77LPT7K9Z5p7QPcJVwQtDkU+CzZufaAksaV3yfW4bvrN74Lv5+CnIC1LymuMbUG6PTkmZT+q5BQKdo44AeyGI3TTAH/McPqaU2l2Lt7CSsuOasF4C+5FZ2VuBFxOn+9vJSvWHS4iQc5+uVY/P3mplfh480+0p1xX+Nh+dXQtuW64/vAocoTctu/r4ATnJHZKrI5kYqZBHN/sDVlkr++1OMCoOuNNS+uTyjzq0IHaVDd7JeTdPaidRfL1nvTeAIlqGoy8cz1U/waQPOtIiCQWitvxe4Q==; 31:ffFZRg1dIMaqj9eSe4KxR4IwzfO/8hzPa8R9ifm/0bzOmTU+ZCTumL2TjikaWsKO3fpaHg4FpNVywiu1Pt0lz1NcIhdBO7DJCGh3RNH0k5tVRdqL5hCcZkUwDshixwB/pyyVe2+4aolq45Ay9dmNSiQDrGf7gq3VqKw4eAypwaN2hh5o4wkDwmea2JqJkqOtuEgMTktD0M1cBKS1BJyIJBnXQjhjaYtfgvqnNO0vyW0= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:u5u6SfIdpu16CCO/iwusIKwGV14b9Bq53/AYEGvq/U8FCUevgeyQJFpoq+RLNY43Cn+SRO+4dHhCe12xEasjd2rBZ1JyTNb2/Qjv7YXIeEQZGxL1jBm3ISnX0H+Scw7awU/oLtRNob+AJhGjSMSudm1sP+oCjcvqVCf0WTaFSMBEanaoAXVtgTutrUOZc1YtMIhJ7opqmC1wazRu/s2+jlHgaLDLBUQK8tYfLZV1PpzEW+4+Pz0oAZjZgNPNk6xm7jKvn9OJNZhvwn84DeH7uUSbWv+zctAQ5Omyqb+S88LYf+n8lbx9/O3//y9VTELdB5yvpzalgpPGKHm/C98oCUU1v6OhejnDhs6l48NZty+j5vIoLGgiyM262KcfGNvFIRttEnoEM9I6yvxKu7JDu7/k6F84dNlhaldk7mCFOS2ionPu2DhkUf5ySw/Pvj2xHsk1DEXUA84r0vS/Db1HSTcptIT5JX9afcP7yFoChr0681PuCSWkETdsyqNZNJ1L; 4:7MUHbC69uOXGb97yCz8eOPqvdTvzJK+jfLKWW8Ixb749a/KSs4K9gvWZ57fC5UuuJj2az5YcMJhxUZyYbgDLz167GLgAea5rTTUAHwodh6JxIbGnC0l4Gw8N6wFbDqX9fGrvTj6MYCQFMz1TOVQL94rnwOfihY6dkDlFFUAMEw6262n9QbkAfYyiPHB75N+QmACwUSAWD3fyg60xrgHI/4IkSYKhq38aozo8ppuiR5qZX4S8o8vDrGfy9RRUWa5ERLic6ZI2Sxd+ee9hXj3+OBBdU1Oi53HpPfm4jnuKf9r9mpWdQDzWgPg6fn7Hd5U4 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:DddhUjb5sykkG0Y2iY2qqkIkxYwnEJlOw7sSWSAsp?= NXhCuUa88NNv+ama8Z9N+h5JjNmo1iyJtAxhqcdrycDJ66t6zj3xwAlk+YIcmCzvQ2LSX+eKFzLPzBEbV9xwDpyNzWRnOIVPFfnM/7E5l2KkEJYov1FYUIyOzhcbpwQcM09tagoGX1UjajF+70T+PRfnIPOyh7qCPamnGXX0OH1+XYQhc8DtOKsEcpYbS9RYVh+1/qCWJqlZ/hpbZQwc+ANbpbnae/21HmoZ7E4WVFwDvv7/B4rf0DeKVo4Axm9PwrviyecsiNXHhOq8Kw9TWPwMcwtlFr+L04Ty4oSLIk7y8TwBAKG9eypy9F1rvcbMq3a2rlQE6nOjY43nHBkccSegcxwh/ujsvrVWy6OFVXbfQVoUwspJD/Bazbs8ucKhiRbLF5seFKCQ84slrmxuXzADLTyq5vnzUklQA5/d7Z6oLxBxw8nnIgwSceb/BjWr2QoVxDZQCse43WaSS5DYAARIFmIkWG+7l4V/9pGs8wE8WQOo6qr5/F5soWKlEdAu9JNQAysHe2YLFCh42tf3WlkkVB38MBj/oxMQHMxxWDpmNu56kgKcWHyeje//NiYEgqQBjcWHNbwb1YqAwFD/td5wZZL3zrfhGD1G5YGWDj7geZJ1o5qgwwuR0P4FTRE7+p9kRpDHCwiHLc/Lz0+PZ65A0idc6/AA7cv/q563b9jdaB1qQwpD8yYXqZoBkP7WQL0lKElOU2MqVbe40oHhin4+DNdcJ8cAAbHDIgxIFmCg6fN5XU5ARSVFb7a9i8ZlQYoChPkGgHIcf3u4wtwAlBs1iZ/yzg5WEQc0WJwI2P5JvwMav/2a1EfcovCjmQuuP00+IgmFD2HcvFwWbvssxuWhCQvbjYGhvwGtGqwNLfwEbrsqUfOacIhfs8TosCcTZpMn1KRDZ9rwAwt4C4Ufx74yfOxStLeLZEodMA4RNN0ZE0UK/9571vAMhXFSs5laC2vXDZnFcu7Lkmvvc3fpz3gg92iS/PHlwr0aXZ37Uk6JphqNGXGSRfJuD8B+W17i6gBVgMokzNAZRBUP460R+Ewd7X9hqAlbWuKaGlhPwM4hZN25SgP0518snfG3K/xJbpKugVqp22NjFIoF5JsvdJdbCHy2UpGgZKr3agdFcmrd47TUeBJBLA+eZ9IFryjXznxW277E5RXB/WFLjjkhPczfbVfn/FewwN2FtZ9jzC7msIgnSlD6gVb7X4S9AhCLWg= X-Microsoft-Antispam-Message-Info: 8erstWOftPqYnsx9j7/7QZXMIrE9Ez3wsJxS88iNYUGL6WbbiHPz7HNHDwxK92iwftmapaNMCAatIibCdB0DZYPJyrNmOtCpqsemkG+8MApzwwIZcPrWsmuc8ripEFolNuf2K8MpaODZ82Dcyqwda8jqWJFQI5uiW3eI0eDQnlgxJ3FDpPgs+jF4f50DM/AA X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:tBHbnKImJl9uY0WxASk++Kfv2MggMAB6xcgCszfYNDMKEJajtUdbMbRoQPW/JCZqWipEfb/NeqU0zilODklcS+giuacvYE+bi0qY5Zih2Na8bsrKhsRV76ZUHuA8yz/uakXvNN8BcNgh9yDmhXFtPm9XlKq5jW3z4CHnfoY+6OU0gFKmxzUUsr1VyLXtFUzMu8xaMMDmxYpZt7L+02ddFQbxwwoKTFxxc6VijGnyhepKUAr8PIzqx9iQO3uMUl4RHEixjPDWI8BXUsnnyQwmr260dGRPAlvYWz+i3R5Hifc+Yo31GmOoc5HoCstK+EVhCogeOCB4gRLEkXMSJ6+wgJ+jHdyyVQ0BPXA1aGm7M0tyLXdvyl2Eu85fVdDO/eOTnfCrrGVQrLRiH6J0iGNKfbTapgUhNHdqosgm8YcJfNjNOqZjU9dlYQ8Ord0ruOr3FZsycUXPSIfdjUtyl2U6dA==; 5:60EPWbcMywmhMDQy6+HH6Iv28Z6C4pabzZBiLLn75fBgdUl01dodKhhVj06rT2nKo2u1gTKP1U2GLXK6wcdw8UOAjRb9RZ/Pu3cDo1BMESs7B4NSD2IMw7Ae1z0qNOGiOzmMT1xC1mi2o9bZISc5bmCZBnm23QO+Y/6XLXFANH8=; 24:JuWntw6519afaY3uVhI1Q5qivnOkiyL8kl6Ll/zLNlwAEMQEYXDixNWqJ43D3Xi2w/qbxM/Ag6cSSj9g/MGy/8NP+lUFozuIo7lcNdPuzJk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:WthGm9r5UpbNgMXvk68m1r6eL7DU/OV3X9z602D9DfmXoCzay62ooerAgv1QFFXNrjTZA+G3mrXbMiSVCugEL5h/jioQXfYDa0lOaPZB600qr2o5wKZhdvSeoF7wem1WYP0I8dcaUEwksaw0/1FowBjhX4HoKrhcs9mFgtcqY3WirikacYweoDrgDT5EPE9Wl+ukYd047wfihCay4zG1kMd7KCZfy0rEJroy3OoYtl9IMzccNtol4kBWtMoVux8J; 20:dyvqkqvvPvz9Ax+1HaNjXmKJNKzdZ90w0+oCaB23o3iHMCvsLQMNXa8aKM0Al7gLRjgHupPwuBvaQ+auwodX4izcKGW2zNMt8k1ga+H+o38T3Y2974pIf/b//pMUov9ZmWPrJD55qGojok0GqCV/skxOydNgMK08d48bKvt8n825TsKSEyv4SNRrARKz7y6sH+YlTcEsZyrNZLwD/TTZ2oydJZY9nZdNmdPX2sbVRMADkreTjnWALaBbCC+TL8XV X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:22.2119 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b1a527ab-6a62-419a-bd72-08d5942a1662 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.62 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Initialize pre-determined cache information for EPYC processors. Signed-off-by: Babu Moger --- target/i386/cpu.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index eec4a97..67faa53 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2299,6 +2299,54 @@ static X86CPUDefinition builtin_x86_defs[] = { CPUID_6_EAX_ARAT, .xlevel = 0x8000000A, .model_id = "AMD EPYC Processor", + .cache_info.valid = 1, + .cache_info.l1d_cache = { + .type = DCACHE, + .level = 1, + .size = 32 * KiB, + .line_size = 64, + .associativity = 8, + .partitions = 1, + .sets = 64, + .lines_per_tag = 1, + .self_init = 1, + .no_invd_sharing = true, + }, + .cache_info.l1i_cache = { + .type = ICACHE, + .level = 1, + .size = 64 * KiB, + .line_size = 64, + .associativity = 4, + .partitions = 1, + .sets = 256, + .lines_per_tag = 1, + .self_init = 1, + .no_invd_sharing = true, + }, + .cache_info.l2_cache = { + .type = UNIFIED_CACHE, + .level = 2, + .size = 512 * KiB, + .line_size = 64, + .associativity = 8, + .partitions = 1, + .sets = 1024, + .lines_per_tag = 1, + }, + .cache_info.l3_cache = { + .type = UNIFIED_CACHE, + .level = 3, + .size = 16 * MiB, + .line_size = 64, + .associativity = 16, + .partitions = 1, + .sets = 16384, + .lines_per_tag = 1, + .self_init = true, + .inclusive = true, + .complex_indexing = true, + }, }, { .name = "EPYC-IBPB", @@ -2345,6 +2393,54 @@ static X86CPUDefinition builtin_x86_defs[] = { CPUID_6_EAX_ARAT, .xlevel = 0x8000000A, .model_id = "AMD EPYC Processor (with IBPB)", + .cache_info.valid = 1, + .cache_info.l1d_cache = { + .type = DCACHE, + .level = 1, + .size = 32 * KiB, + .line_size = 64, + .associativity = 8, + .partitions = 1, + .sets = 64, + .lines_per_tag = 1, + .self_init = 1, + .no_invd_sharing = true, + }, + .cache_info.l1i_cache = { + .type = ICACHE, + .level = 1, + .size = 64 * KiB, + .line_size = 64, + .associativity = 4, + .partitions = 1, + .sets = 256, + .lines_per_tag = 1, + .self_init = 1, + .no_invd_sharing = true, + }, + .cache_info.l2_cache = { + .type = UNIFIED_CACHE, + .level = 2, + .size = 512 * KiB, + .line_size = 64, + .associativity = 8, + .partitions = 1, + .sets = 1024, + .lines_per_tag = 1, + }, + .cache_info.l3_cache = { + .type = UNIFIED_CACHE, + .level = 3, + .size = 16 * MiB, + .line_size = 64, + .associativity = 16, + .partitions = 1, + .sets = 16384, + .lines_per_tag = 1, + .self_init = true, + .inclusive = true, + .complex_indexing = true, + }, }, }; From patchwork Tue Mar 27 21:31:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891817 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="bsnl65Rf"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409kls04CKz9s0y for ; Wed, 28 Mar 2018 08:33:45 +1100 (AEDT) Received: from localhost ([::1]:36203 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wDu-0003LS-DX for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:33:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45014) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBl-0002MR-B9 for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBi-0003up-5G for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:29 -0400 Received: from mail-bn3nam01on0079.outbound.protection.outlook.com ([104.47.33.79]:25485 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 1f0wBh-0003ss-Sq for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:25 -0400 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=odel4yMzHbyhO64NempkePwo7kTXt8IM7yEH+ucph3Q=; b=bsnl65RfDlchwKLLvmCatOqfdYn2yGyrChsrjyB0t8nznX/ID5bhhcH94BOGRaVchBx9cBSSZqyS01ppL1MdsZQ4yR6TKzsxeDmEShrHUhOB1YPMCraFKVPWDdSNs8V+I4Dtp8htWPXZVWN9BI1UwgN29lxx3vR+j+vXpRZWu9M= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:23 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:06 -0400 Message-Id: <1522186271-27743-5-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 81b023c2-d17f-4b77-8f4e-08d5942a16f6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:xeGAHp5b7pZAOJwOluh4MiWEpVs2prWnRDjVp0zbzMnpKj136+pyT6ISr/ioY9yV8+7rLOCkvsSqdGOgB4ufHue2SVrmMZaBkA2Ge/xkmInLCsTnkMpVF7Fr86msDoyucNgvBbwhCfW+uG3q0uv6D+4TdorlStAaNO+w8krAW/CCcUa2ElCXIPC45arryX07xtEceoTKuiQpK3sKNMconhgixfaZeGJLbQ5Fol8ErIlx5N7C/O1jt33q+oPLJjsL; 25:FSRIEJQTnaCOmnsaOfhTBqbXDtgvSrTlf9sXOWxcL9n4fUIMBNGxs0V2c+0D+w9AczDKrWkUg1Q8itN3SJ80wTMpBVrGJXG6v5G5xYGxln9SXnEVo5HC9+apTbUvvD5Jj/e3403GVi0HPBgNOn2ZhaWvEj07SeGe78RRQwBeDJucV6uY1PonoMO9R/3xSbwdfZnFLX//Mu1BIVa95c4RAQRe0lNeBa+I6Rp28nuV2lEsCbMN9ErOLE3/J4qdzyKCf5E3nGNl48XH9QKMOtD0Mz7IAWsHOBqUxH2G1lEdtjOy9zyxxnxED6jdU1mfkGBmKhS0VCt9akM1sA+Y30O9/w==; 31:RjQtrL3nVaX5soHdSaczaNBTb44+HUIaXdA9jXxUyzwWho+rgecufJCy+RamD3k0KhNDLcehCDpWyVsB1maQ2ahfCd8+J8rAKkSGJakymDn5HT/Np89P01ouXp5nmqbxQupN7Lci0paW9jGHom5d7k+dcjnmkJKc9uvBixFIjwrN2xfaSsKFVJzptfNJR7VPLKjBUtk3FklQSvFaj2JmZfqcrxsgtISjxIstfKZbj5s= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:Tof/SaV1uRHN2EwVu73f0XSeuI99lvxSuYHb5Fjpjoy/gMIiKdSnwhV5tHCD989P+voKqCtgClwRab6alj4i2FDfyM0mzuke/x6+RPHtD3ZeE8AEu8F+MpwDZS/M3wKeL9I9qF4YZjEx1MvYe6S/fKqD92FTdv51APurcJAMT7B5rNoh/xbiLrZHaDw4F+To7jR28DkBtHdTUNwtrCT2sBbooidlQ0SSBBM4g2lwOFvD04VztUBs4PyTpjBZANHe10bvB5QANRxdwwDd53qWNkS94fWtDdlxcVF+9HAR8Q6idb0noKx2kJ0Ma5k1u8Iy6cCnbTaAvePUxe5ON6R0x2KWkISNs6Y7jGEW8wVgr/tIOa6R/RvrU0xWSuXIK9+eIaKJN66bqsWmdIb/E9hqzJQrrt/KZYZtJxMD6Ka7Dp98a3gXtdAVLrRZK67ogDt7SgpM0WkwGjoEEdghmDqZyB8CzmCL/xr2iwJmmvqy+eSSsWz974GJg+AsmUt4YO9q; 4:6tNbLEmsoNmpfyPPCxVIDggnN0UoqigjchrwfqffHDV64hP34FnW2kUyIXELTxrokps+bIBG9Ibi6r3BmzGstGxkW1DsQs3o5cykz/6XoBJabU5VMtnIXpc0jbo4mZBBMop7qxqRz67bcp6jV59+pPE4bjlxVKIPnvSVZ7Ou30OXv6HK/p8n2XTQ3/Co03sFMhIpAMXyqwv2NFg98jufkzrJJfrKw/13O0gLG1rDgqoch8hLK+OGH0Rtngw3mn4AZQUTQQLPXHlqvSYw6QDGfAzug1wuq6I7jA4gkJq4LW0lRRGYF8GRqjFCl7RmMJci X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(59450400001)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(45080400002)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:dB96TCVWxZyFhZAEoCq0sOZ1fzBo9wH+uOHza1qCD?= B4yTLUBP32/9dq94gmgw0M8qRwLcNvU4v+HWCm2o61K2SRXkMua5ptEUwhPk7PZQEFZRzGDqcNG9tGmQ6/5a2vY3nWL9TlBRnIHAMrGEpGLwrsbqXSneHEGDTNH3q+aogyk2sKPuOXuQWlcxXDifwrJfIG2y97+DWegXK7DLngXMAYmyKOmGiwNKtBRvEWJXC6gknX5igFydFUsbX3dt9kIUBWzIZXx+79hPRT8N1MloPOEgyqtqRApVAp+qn1zGCvWZwDVtjjv4ejbth2kM1fnR9h5+Gb+jr66JipmJ4MTdpM75V92d+yO49dPBi54z2Zr+qdACoM2nkgF6GdPcP4fXlJTcectZrIeNgjmXZzyW26hoa9e9RBfya79VZnLGXpotvCK7pKhnwXAbDak7j8XRX6MD1kXH+1waRSDqw21doZjLeLn0x8De+Np/E2GIFvlLhsiZpxf3bWpxbYkJOpPcrrkfsbL3v3LhwZWs2ro5yVgHOG+4mMhF9NMZ3wcpAc6kq9BVYxavyPQ5Mbvu3xZCS7GmEXbo2AJTMebqzToALMHUfxYzptXssjm5PiB5bG9IThl8KKHxkszkcJdBGPpQUAJqq8oJ6mfP8CMhIjbDMP8d4kG+tJRiuqakbheDat5VP2nFhPIZCTR0SApg0NmJriTG5J+RQMDmRMCZjRpZzRt5B004yJY8SLESgWEesUtN1tS468xJMCtV4bcA7vfgsHZ4mnYItkuT/8IowT596f8ky3wBu4l0dkpjHiSkcBEypTgf5SzSlgk0eCa8w0EHg+/q092/gHwl6+3UG8b5lWiuTGzTCw0GC4Ma4/qlqy1yTQjH+e1gO6n8WAEzrWlw9V8sn6CU0ALmRrwjEVOMmXy5f1iB0hCjLX2Inz/lS4ZYpDcgZYicfPzKTB+LW7fJoPvZSwStlxOja7FoM1Fe+L/APxe3HLHTeGW4CJRIJ0tZ87H/ur3Yvnn7A5ZTfltpxY+5GW5ZHh3zqLoc2WJ3dx17fn3DeBDHbt7RmrMbHIJeybMEfuEacl3jqDpEA726a86ZbNsiYqiXiVRSnjM7MJNGkEMYmasYg2eRoywt5UW8baW4Skjc1OmZk9Je8xcv39iN0OLOu9xqFyRsxWQYw8o01l77FELtig6x2pvHBcugTf7pp2IhAnnZShmm7KGuwcSq0nJirsWiIgm0h/AUIS7k6ENiP5DBaloU9PpSNFfvGngJvareo0vyhBxf+o+MNvhS0HWsrPPrzmL/sYn+Q== X-Microsoft-Antispam-Message-Info: dFYY82csvS2Hz4Er6mvpSbEGCSBV0Wh8eJf3+9SUQU5y4gzdHcipXWuJIPuqJrBlsoGZM6fG2YnjPKLd1//xH5qFli7patknWatRCgO1LFIQbTLRBrsgEec958uh/Y3dscozO+xBHddMZxYDE7vbr6GIo5f2TS1p94J1zjwrmTqChiz9HkeESR+4A+zO/Smh X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:zYli6TzUoKqiI+hDQPm39BzAKaPr43Er2A7YK2IKg/gKwe82iSccoQNmK6SgO9/+Dj9+ZCl3F1had9OnE6DEDZbAIkGnlq9cysjHYfp7iov68KeWWbdk0sttb0RpS9VzDs2aKMVOq7xdTttbNnPhQGGt97SeeowZhC0bkmT8qbteL+iTk7FBEkV1tHVGKDSz3hs1v531enHf9LxiHVEwodAmNKV8giUhPn5CN8G41rJnDtN2XaCZQzltjypeiFIfH2S4YF7D+fNsadMgQ2t/Rbual4CIEr/C+XGThHqYHO80RTKJ/HrGZSXYEw6et0yCyVoyz+TqufKqaPriiPuk4ClakWal6ojVHTYDAZ/1kWlR6N6AvNw+pLd6ifCG2o74t6zJvMV2nKCNsCK57LWUJF+SMXoJeD4om2laoupikggWolFGJyg6llnXInovFeZ/cLjQ9eMnbuMWZbMqdYnbXA==; 5:gXtE0r8VZBMMGjWEacdB7BGeCKyFSvvEzisUp04vZPgASkhy5zn1QL+nA2n8Az9zVGMfd6ZXrHNVxLq+D0bd7vbXGcTF4KPwWJvvFeI/lLEjT2qlZWAFGKfMpY1uVMRCJ6tVVoYY1l5jREqLqaYv4PC3to7SYwhC3wuGiRUpfLw=; 24:44eyqhGEkUCOWVWKs+JG2lj5XjH39xKL4HX0iA7OZMtQmorDhtrq8aGzYCLzSmjtC+WIcJCPFo1ewyRk9dalTpE+CSjt9/kKrSnIHMcxphI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:L9rrw7Fksb4WUKK3UmTjhzsuWR5B19PdulnL7NrW+5XRY/F42WGRnWMN/sJQLf2AvqCcw9twyDi90RrgUPQE65BqieqNBdyWWGNsU5rzCgbKTJ3kftPdw4CoWB2Yb/NyYkDCrVWaSFEaA4lXc/qX14MixZn/cZG6FmcKD2btpwve14Tg6n5nTczx1J5O9ST1pz4/6MGf6FrT540pp+rPyXhN76umuPLROZQ2S41oqWehQqPJB0cJNCGcrCBVklSG; 20:r5amFmvGy1bU6AI+3bc0RyKs0FWmYAR2g+PWfTxT+c4meqgCWNdIj1l4ZoS/bidl5pICvM7fLSogVXVvmWwwOzE5YSCG6u+dRxydpi+ZroJOOGGYsuAFX+306/OXmm+exrI5njhrtNoBJi8gXpdBG0wzcauGwjpLSuAoTnE7HuOPJML2d5e62puqX3a7iKGvUWyWzDpwBUwTYFFSC24QnwTwaerx1jGvhdr741zybNAVgmKif9+MF4/1dvK1eiNV X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:23.1806 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 81b023c2-d17f-4b77-8f4e-08d5942a16f6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.79 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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. Signed-off-by: Babu Moger --- include/hw/i386/pc.h | 6 +++++- target/i386/cpu.c | 1 + target/i386/cpu.h | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index ffee841..9cda1ab 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -327,7 +327,11 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *); .driver = "q35-pcihost",\ .property = "x-pci-hole64-fix",\ .value = "off",\ - }, + },{\ + .driver = TYPE_X86_CPU,\ + .property = "legacy-cache",\ + .value = "off",\ + },\ #define PC_COMPAT_2_9 \ HW_COMPAT_2_9 \ diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 67faa53..f4fbe3a 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5132,6 +5132,7 @@ static Property x86_cpu_properties[] = { 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), /* * From "Requirements for Implementing the Microsoft diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 806c34b..bbe13f2 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1394,6 +1394,11 @@ struct X86CPU { */ bool enable_l3_cache; + /* 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; From patchwork Tue Mar 27 21:31:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891821 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="GqBt7/Rb"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409krs3K3Vz9s19 for ; Wed, 28 Mar 2018 08:38:05 +1100 (AEDT) Received: from localhost ([::1]:36226 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wI6-0007H1-W6 for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:38:03 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBm-0002Mx-62 for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBi-0003wT-W3 for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:30 -0400 Received: from mail-bn3nam01on0074.outbound.protection.outlook.com ([104.47.33.74]:29427 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 1f0wBi-0003vP-PH for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:26 -0400 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=dBiKjRAvB28DbgoXx9acldG14zQ3qHaSEOZZj9u3JzQ=; b=GqBt7/Rbc7BQuiI+qtRhhZkrUvgYOE5txirpnmSMm364npX5oR72bAzMiY5emMOsoOiKq5znJvmKetDBWJ6bDybntu/7XFl5p38jg3flXm/w+btYdNu/pCWF+9oild9MmzLPfI9ylCav9RuX6oFw2WD5Vci18GbXb2dQCbwgep4= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:24 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:07 -0400 Message-Id: <1522186271-27743-6-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d3df61cd-105a-4dae-103c-08d5942a17ba X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:jjG0aeWGihB+H8vPZ9o7QBjmd4WUwE+v/U/2ZhRpWaeuds18kGhc5OSHrZecRGfjXNBQrQeXdAyPlQMkIkEN6J8fM3dgyHtiv4biCXxhfTY1XoySaN+E5g+mOXZ9MrZ/yKTn8tcBOcfAOCgM7Z9gb33pE52NDDDLt7FkZowAAacRDp8mXOb0mkMD1j26bSno4fuhLPu/Elf/nK2WzPo/bTXLm3DTlnaePwGaNBVt5W6oZPX3Ym6n+U1hY2DdKa/I; 25:pGIyOiZ8E1WUM1Qw+36O4RToN8E6WlrBuLQIQihtAt/MLQXixldeiL3EgL7qy/YW4wQeQMpg+UbEiYgx2h5oscRxDNNKKdZ09gxiNYMQGWOKVZXbaFmcTF6i7DbBBJyod/OlvOke1XWGi4sLjh3EpsAVjSTGJ1rHq78xpRL/Wf0LSN4JaqvB7gSNM6kRIjxA8XX+2YcRCL7hV+l2LLS+F+m12aOIEInQUjzLEJWfg9aGEDTEcBkGe1PKrceHljE+qDJPyTL/j7As35vH4pogFBVytEBqdAqUenWP8FRkSRf+XugM4H2CU797aSIBUrIwH6hFfLLzBKNYj9pzF98AzA==; 31:u9k8QAEA62JFhh03qyRnb3Q9XjKM31WJXEkPmoGig9TTIAU8SU+OqaK9XOSx3+sCcgAFycNBf/iH9NdwsXEhtxxl0dnpi+pArSdQEYPmgjCfqjvwnzPMluiSeF04wqbpR0EoNMGikwlaPLscOa7vLwOAiSmq3lSuJ+VSFcXz5i8+FuJaL2TqNt75W2V6IdgrwE2k9iIliTj/ZYeO5gVMoLDfEqPAcgVzMBKWu4IMleg= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:0W/60dlcc+4yG89Y5jleGL6zZBmSXLXQvyA+3EAYG68KZEiVbVStw+2o9QAXYDSYn8KYm/qWB0bdIQ62bfzCE8dEw3J4VZVodOrw6xio5zcreypIXTNVurwC71BCpXpmqGw/qPUNAxVOrP+ONkUHBuSa69Y7/XOjm+ZaGVfJwjqqKvflyI9Px0GLz534wj52IdDsDyMHo35I161dK+u4Eou3daTYx40E7RBpFG+mXUR7iQ+RVeKzBqBZQIZVXZLML1nq50enUNVokYQ6ZFrDAIpW+xuIJieTDP3ee6NqRdbBFDb0A/7p0XwFaTuiFJwPIUxGiRKFFuq6PAIgA6ZNVdkAPE49CpHBVY+007T9o78q5JhdC1NH/yJkzCXz+PZFI6WDVDyZdXBEqcYf6SG6g3bP33odserxp+zSiVsveW+wfS71ins0HZ4bWgFQRs1LJLcH/7/Rv2ya1Ij4fpdTGmWRSZvPyZSmQVbtNGcpzc1NS0gOoQ3RIp9a8x7WMVO1; 4:zadyyTYiKbDkVFYx/Afu1qCrDszPWKsc43BP6IMGlf5+x/Y3RtdLsWk/9HQqsfG3JF7A4h+TXZkithTbINRBzleOOPCDHsJ4xUYaHt5Uw+7krlbUFaQtGkiVlJpIvHy+TCEHmUbXujNishhO52GFMijfoA/nARES3MilDS9bqLoddiDsMuY6TAGlcbnKbwCdU9JqgP9eoyuMzFrqXljm4tWR+nXvy4cQaGENjiNinXpfjYHiKKOH6HLsYxTwqd7Sjc2mzM/FQKxbwwo4QXt5kxCX/bfAobbLScEwVBjlPihUuqIvIxQ4wWFH/Kcg/XOa X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:IlvqzPaOz3bbPHEdO0MI4+ruB6Q2UVQ+WsVcsvdzA?= GklMNtNKTpJA6qvpaT/WAj+D/Pl+0szDmeV1Qp5zd9TMGzlOROCktiHePa0U8hXhjSWRyMowCkVYt7x4QImJCCQiEHUH9EDNMJG7LLQtVqqlR4mSLWSkGjU+Savikq9fCpLrrx9R3aK9Q1UFdkhDXAIcRrS5zdV4nOnLyFuA1C05pYseA1WWOWfut0Z0HwCftqMqC4vMbOO4l400A2aCLLK61a9rFwNKdDwE5QKRO5Lz/oXaw6poWr+iy0Zjqnes5evraEgNDbzijiVgoe5bgyHYfTsDZmd0/zvVX5RGCQ4EQPaVDBZ0gkMNPDQnS6+7mRcyooQH7bwfqLy6sYQ12YzQpZSBe297V+umWGmuh5zKTV4w5gOjOBVd7AbDG1ZSB9o53JVnu0lsgxeixnxpqch4vTyU+RZxE/sXrWYDYDB5dSeonWLbvBTCSIAhPdLisC7OT4didP05dbh0I1Tnpo5nu0qQjr+TJq4/n4AZlf0UDrQ7MSvqiLNqTs7IpVmHmMpqhV/AJmp149im+spW44FyptCR2SG80w1+yWSFiiFy7DgLWC+oVT0VrpcSilnf5ScHfvi+wqy+fAc+yuFmzPzIcgLZAPgpuhCBgAec5sCzSpNAP2NwtMNz37NxoPc3uJ1RCHukmrdGmJwuO6Q36hu3y0uw0N7ljBASnAeI3ewBvbZq6GAOTq1G7F92QJaTU0fPZc4ZcGFp0p4agGHCgXesM/tUvHEs1gr8dh3GSltzRhaAhVat/vDhloMwvPLbQvrSEyEeGXdf0cUY0Tn5yXoShpn66xoFswSSadG2KLt16TbdEM0TrYWb72SwqHF2DIEfuznM7mxHCTWueXf1e1VhmFDaLVJafaz3nA81EvzhUSp2dVeNR/tJMbQ1eKh1r+YYivgb2CIKOi8j4YvR267gdYxQG9I9KAX6lIBhxN+OnmCiGxNyVynP2H7rhDfLxLElAY6kFqJAd+TFtHmKs1pj+jaV44LIEBFGtWn8ecvKAj1VTl2736utp9h4qBVWBcViSSLNg2Aul0KpKAqdsPtiTOFzew61QjPgYiFLNdhGeHfG/uqLmN0Mhjd8qeaWI3+mobZyCC4DhgkktBDf3QT4iUkofLj2oZKosyRltMoOULwkmzicSyk1XAE8grE3CXFXJMKgwgmfLAvQPAL7Xgy8+hAuHgH+vGpaXZ1FP+9XB6aSEZQjmqx/Juf16dDjDY= X-Microsoft-Antispam-Message-Info: m5qNfIgq6tdhmHsGdlXwF+fZRzzAJZxVb8RZNwnpX4UhfS6YY9nsKDonfj7cU4vaMSAKUNdO6q4xqvl4rb7BLXQiMakQ3NoRA/VqTKGeLdtqMby8x1Xsnc98PNlqtGMwvKxp09Py0EtL4N2wGDM0E1YSsiH/FgngRZYXhD6F++qwRV6JQb5AqeScMkVebSFs X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:E+cDcwooASS0Ebd+mAGY23bRibnn40dlycbKx4A6s/CZkNvkp6cCh1sqQ+820wFVo2/uvNmuv5JFdlrD+ghF3ynpfq8fVTBNxvQIuAhGzW4iceydRsxCg7dq0YCzReWZTl4l2MFqZI0ZFrgHbVLqPkbJxi5kWZadGcYhrk4xs/ex9XRWuBsVwsvy0wJbYNBp19HStOyHG/anl75rxKPle+LJ3W8rI88nb3IpH6oqcNG5KLYvm1VV3jyNOLT0FeHMJBg+MC8G7Xq1VOy6Pzjys5uwW4HIUdmKXhESnk/K9zpZ1vtXI3pv9t5KQ2wx5ftXG3a+RaBt56Ocr3z/fNO2O8A1+lopb7kWSXfR7/E3p/m3uK0FdbgggY7Zo+m5Qrxa00+JCaW471jaXkqTJ+VDjQlJR1pPAkgAIQjCs2+hifTt9OXuhwUme1VySoWnB/YSXK8FkDGTMbJ7vRCXZyjnIA==; 5:gTkqJFThuHdvKuFaKcmKODTwTIZqDucLWW0U3fkI0Uqd3zsS0kP9TBOE6ubgqVdp3q3RVEgdy2ijBtQs2JVO9r2NFKx0WBJXh/hkb8IR75LBE0159c11Wm1/+g1iQa5Y6hMHNJuYzHlKKZKyaiMaqOluCfafASIzOE62ym9yjtQ=; 24:TKOVb9afWFzZ+/BLsj79pIlYoELWXlW+QeBGLN23S/DomtgbaP9UWMiXgyaFxIAiRoKXuhdYYSkXn+dlqyZTtaZl20ivPnKckHuo/QD4pjI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:xN3DH6nPSdqHfkVXZKQ4R/556syltG3bMUuIbr1EqLYVe2d9D2Z+f3/PqevmU59h4YludFCB6UUoZqrNJM4zQKLJBu1XRnSsev2OnpfN7ZslleXzvBsPr/vNjjmCLQ+XbH9FT03m5KPmwAI1+lyafGL4wnYTbohDaQ+b6EVSSQes2YpCuxIKiGNaDwjL04WfEnXGqLtPBLlT2GiOmS7zAQ+dS0TDpz3NXLv6jvVzLkygk+B6M7Nqr+vLCS64g/nO; 20:nvsvkS7kQeZeQ6CD26YJIYW9J/mQ2GEVzHdezN9TwrplDt5fpIaB2iqoQX162/6+XlVxZ67DsTu5H9o+7QZspV/UVgjqHMWx7W+LNDGGbtfXFwCqOdbBgEvOuPXhEIm3k8DmWKKPZjhwhTsqCO3NBg4ATrUkvrBN+cbcp5nvjEOq91wdzBPnKtEDF5BVLY0bogcCf47uVqJV+rQFOyTNxIamocNULuVByXdierlffeFeDNqLpaZDQ366kCVYL/vN X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:24.3837 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d3df61cd-105a-4dae-103c-08d5942a17ba X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.74 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Use the statically loaded cache definitions if available and legacy-cache parameter is not set. Signed-off-by: Babu Moger --- 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 f4fbe3a..738927d 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -3938,8 +3938,13 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES); *ebx = (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | \ (L1_ITLB_4K_ASSOC << 8) | (L1_ITLB_4K_ENTRIES); - *ecx = encode_cache_cpuid80000005(&l1d_cache_amd); - *edx = encode_cache_cpuid80000005(&l1i_cache_amd); + if (env->cache_info.valid && !cpu->legacy_cache) { + *ecx = encode_cache_cpuid80000005(&env->cache_info.l1d_cache); + *edx = encode_cache_cpuid80000005(&env->cache_info.l1i_cache); + } else { + *ecx = encode_cache_cpuid80000005(&l1d_cache_amd); + *edx = encode_cache_cpuid80000005(&l1i_cache_amd); + } break; case 0x80000006: /* cache info (L2 cache) */ @@ -3955,9 +3960,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 = 0; From patchwork Tue Mar 27 21:31:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891819 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="FOyKYtpa"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409kpB3VxXz9s0y for ; Wed, 28 Mar 2018 08:35:46 +1100 (AEDT) Received: from localhost ([::1]:36214 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wFs-0005QQ-1a for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:35:44 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45042) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBn-0002Nv-DY for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBj-0003xB-UU for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:31 -0400 Received: from mail-bn3nam01on0052.outbound.protection.outlook.com ([104.47.33.52]:30064 helo=NAM01-BN3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f0wBj-0003wo-PD for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=gy/01DyXFDVPlZj3OfvyMa/J+2WCaRjOcxHsEswsEcA=; b=FOyKYtpatZa4H1zIfwk30Uv3tKEcLsQ8jMLi9mpNGWp6Tmio2fgK64+xoh2eYoueLJWqhIsh2jR3Qhe8guJ9cd+f8pk1QaxMpTFfYxL8bqhmQQYDQFLcRU4IOb488UxmMuNeWlapJYKiIj8IozV2FH3c6DqFt6EZOyIMWLeA1aw= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:25 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:08 -0400 Message-Id: <1522186271-27743-7-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7fc37b2c-cb64-4103-58ac-08d5942a1844 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:X70vjAAkTz3L3lBpPI2jjRDaihvBSNVG368C7saZpho6AzkPb2XfeR41i3uG8MKqQWj9PCXR/fDt72HSE/JHHhmxt95vMo68hTX/U3XKFq6swGMAxhNkHDdg0Hvq13/QIiKwrN+jAjqFSOnCfioNpfrKP4TpRU+Sr2TRjnDXfdKj2y6BzBRQjR8G0ofQTfi9xdImHj2UW5OJ/h1Z5yZ5AClC//fQ/AXxPeOvecUTOAx72C9jF9VXQr9OlF5uPin1; 25:HuUXLmPZ84+3JiZGh/S1BEEwh2llZPySQNtbS3OVo/y6GQelJRJI4swqln0T8p+nlZlAUuukZUKCs9UTjsO8bqpKdce3/9wzn5qjp3+Ok64Qkigg7cIbvzsW5Oh59AB64C+HWm22w8piE1zsW+0VB0sCAAob/6W2zzSDTVEeqp9mSDO9VN9UC1gq3V04Bw3rAglTymnlh1++D66DAdRXI+KZdayZh1nyY+e+DmWL3suuWqBtReorNPsaKVel6qqR6hQNPSWnh3Y/BltUswgstgmy2N41+UBsgo3b7oSpI9BmUcPtZpYTXXAPjGer0hl9fF4vsEptP3CsaJhcS8S3VA==; 31:gG45XUTXeVvGRqm5pQ7RC4pigZlaTak/3bPd3sGSW308CMdBu/is2lWIGjOxgdk13vInQQeGLFhhE/iAjzeZRM71Tb3cMdMli340zvdKMiio4h53sJuc8Jk2g9Ku5ogfHYvoKTPsZbBZ9tWTWxjm2IHdGS7dwDG6TeNIIMTciASlnTTV2LmaJaykLGBgMbkJayGakM+HVBIAfMiAD6KrRSSXUG/nxl3honuwyl27UYY= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:VTZBVjdtVPnXiSVE5Wg2qIXLrQOpsmG4L3ttF0wIHgCRHxQ6D47TTg4b/PtAEsMU5Jbsrf3xktxuTobXjzlZuEj66Bz2O2In45TNx8juVhwW5RcCYSlp0fjyd5cPLb/SI9NGSHa3Y6pFjy0WRnZeCLgLeCPUSQXWCzSXxQ7Yb+4pgKj6TziSg/owa6RbiJMEutd4oQiHyl7o6TVQKsi/bK81KtsQ9U556jg0Y78z0hM4uUg860k0yeeww8gge06koI3LnxZGmG4fwnOy9gKTGAg20UG8z7savo/7xXhu/D0q49H6hd4DdCYAw+G/nw54YAnKxrtxO7wQPd5gsYSjmdk+3YpEfJqn+L/xxawypPkGK+3EFNe8d6vhNlaKy3BtAIPXzK5tNoipx1HRiH2X7jLTaUsacbPO4KcOHLwlQJvJ9taI7SB9lTtdbBHt+8577lkIuHx3TDuBWJm814Bl17AsslfhNnEmLoYrQV31bqQTKAYrdYYTqQ4aejv3D49e; 4:fASEvgdJbuEGfv95zWcG8TrjjBahBq9h5TKF8d79gnf8iUFRy+L+K1/mX9ZsKSsoHrcwZc66Gu5Z26QskW740DocSZOCNc72OctuK1F62fC4avU6/9EQhLWlHgNh/2RClrt3e2l6CNQ1XXND+Ljo+HriF+0VKeWNeDuXWjL2CyirP3TrItO43ENGtY+wO3XQ0imOflPRoQ3QWLMhVj3d2mqJ5DGQsmAms1GcuV6rTLj+zpCzIIgyhemsupm/E2GSW/WH0xHYzbxpdzMPzlfl7z7NsBK8j8aJRjRAj+ezmOP1fj41k0D7JXtdSGraYz51 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:ffmK6NqcTB7bGLYb9rys/GNirdh2SGUvJRVYw6LoN?= qWSMvT+d9iv6KlCh+xZdMuTFGApcCnqZjJo1RVeC+gzPPuH1Un1U+OrGuzAB9Ij4Qu/vdJau2CdCNLFUESDIf0Zjbuo2X4sywQ3TesqFtLiXXy6NSwqvtqRejOK1rpIBpn+VLiIEYZkqu2b8e59dcYXLpIVqtDgHCskZO6jfiJyfPlxW6D1lZpOVsZ2k9gkhLeJqO+QTAiXsaNA6L28BZfQsKkdvG5czJ4ZJBwUX7TTy1AuCK5Q6YtHgN6/ldzRu258Wuhq7dh2kBbsdS8Wkk5N16IncWZkNDrv2y9egSe1UCcYHIJR2g0hs1VLmrQU/Y9PUVlzAsanIMVsI99H/OiBMwkki7QRjABC6TlqRdf2+S1jLLZYU4HJqxXCb2QvJiPQpOcEE6cKORkKEPYEChO7VNWbaTLBcWEbRlBfqJEKQAOaTTBLWZxo6N8lGA3wrJIXJe0viI6luWb3z/IisaAj5n2Gre4pGQxkigR49UCT0KIwKQ481kcGfSsD1VgHHl88sCJ4bIf9nIKUTpbE8ACL7qZwz3U8xvTuND6sgzlFV7WKRYze/PMnWRZQeLZ7ZuQiHGlLvf4Urnkgpq8GeI3TE/klQ6CDWvR+vrEt5cgKh+i7weeRU1uRfgwWETHVmYjtPpkNDCUEiD3K/8BjiEZX9nrelmcI+SdTuksLQu39rDADDsMvs6mIbRtcrO2bK2QBDHT0nK252WSU+dub94xS05WCF7lVxRz74y84bAkXEbu7rnf/35vsZumv2QJzknJt3ir/FijKDsxdtsr7zjLgPOAR8/6U1SLro4AFSORvzBJYcqMr3ZaTUkEevKtwSdQ9vM/4LX1MUgYUHHRogZwZHZPlMhQbBjHOiZ5lzWiFL2bDJ2FxqknBmZA8Ia0YBuNIel9pOXTujxuDkXsBaZl2e1asSdoI4IgRnd3BMEZiCwdiFqCWeTNyqpROXIdyLS/XAi7DERb3XZ4qIkoZ4WxRsvm8LSf36JRn0pwAWQ3d4DEn5JQvEGoYH7ld5PP57ZdnW+5SgLa/QbD5WvTDyip5x7iYd5pOu3vf0i30c1HmihPTOzWM8ErjIdP3gnGv0B+v3dd2VABWsI9Ye6SSO0VFWv9gF0S3c4lUomZ+Em/gXIuNmyv2keEELbKKgLIqs/hy/MQ56vRZG4Tkoe1p5M7cnndFph8G7aROBvDM0Mwgq9d6G1jZZ7Z9Unb94g405u0= X-Microsoft-Antispam-Message-Info: k68C0PQOflGv1bV54iW+vwvlAeTKMWX3f7IIhFxgqA/ZvMBPzPamDa2bMnHLJHiONM+wT31ow5vk5e12zI2zMjdfrOYNnmf3aWS+dRxW7Rx7dYtNjUitXJ1hBbHgrOQZ3GVyjG2s4z6WhCYHf8rM2ECmpdpceKmpibrl1HR7W4ugyTXUV0bALac9KSIV8IwD X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:fGwd3gQWs6j+dgqQVyFwD8Wgexy1NAmtahMm0YvqCQfPG8lUmQkAerdkhlpGaSU6udnfDngqYQpd3dBNvJtuAxXlBSgNs/fPmcBjAgFWZ12Y2GaDDjYkh5WP1Fpni5VItmeCOER/Op2ffvx+7jRPa37amECsGj8yFtTRuW+3CoMoLPfkd02qq5jX6GVK+vMBqzh3KT6LoyMskVDClIAblJWqh3+FNDlGK5Jc44ZiRh8hppoMtOQjqSlnF75oSy3D1XvO7CtmOsPXTZcSvQdU2IOoOZh5HRfF88xOW1mBXGHRj3cfrGB9tGhLxDwe2m6HFfvDC+KTJyW7JpVkeIxX88k0sjCgBFHIJLxhcyylmuY2J+iSqm7QatVbvINwbV2MLsZE9zpGTKdZv1Uz8G2GCwh4omTzgw2CY2L+mFN3dIAFHcEbU9Wjpb46yP0FLQkR9apEaX5w16PdFO++/4fmFQ==; 5:F3GsABipOTEZuWcPWiaflnaVKIZh/tC9yBirFZQEm8sn18VF+XMKSyOcUmlcEtifsYhvhAvcrN4IfZYNm1d4WYCsDiaDMlTp10mMGkXpv/fcSTvp0u9/BkyIFvReSUZXmjaVP7HFWri83QIz2srofssu+Tcs2HKQHFKhX6ui638=; 24:wPtS1g/R4enrGfv4HE5Qkdi7usHmiOJZ55COyyJvlzPdWID7HOX44JhHwTRBQeKHSjXwCuqabYUA1WruusuBXKfJuy35qB3uRvKHkJFO9tU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:dFJTMZOFXkTc0fNXN+xHP0vJqga+K8mmGlGkaDtk7YGQEsCsSXXC32ErdzIRAGGOmRNenY5veqPRT3qaQi66nj0cjjheqRmZruxlRU9cQPti5ZQ2cSzIHDlcldDlk/C1ZRWxZe49lfKczOeVDf91RhPmCKTMF0kqAhMh6mefFuLqmCz1B4H9c9prf7ra5kU8kbGDg60A9nLJJDpgs+fSTE21VUOYaWVpxm/lHjz1tUJXZSgqFWLvvP4ibU9OJxat; 20:nKoXziDJHTN2BNvEGSTZcIDlSYey0oblJX9jVetpv39aVl97GvcN3BX+fYvAiaPhhpnkAnmBwFdtu73FGT2uqRHazOT9suN2oOXDCBstXJZ0pspKgOY468BPtoiCkRtQKTVZvKfnfOEEyYPtXYEk64m2DiCsN62CVq3SJZj9HxhMoA7sfbeeBou1Xr6ROPnwpWEUrSnCbfRO4qSoaYbd0j2RN4zxIGoYbZ8yDsEhpZ0izYUXll7KMT77ZXCyDrP+ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:25.3369 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7fc37b2c-cb64-4103-58ac-08d5942a1844 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.52 Subject: [Qemu-devel] [PATCH v5 6/9] i386: Populate AMD Processor Cache Information for cpuid 0x8000001D X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add information for cpuid 0x8000001D leaf. Populate cache topology information for different cache types(Data Cache, Instruction Cache, L2 and L3) supported by 0x8000001D leaf. Please refer Processor Programming Reference (PPR) for AMD Family 17h Model for more details. Signed-off-by: Babu Moger --- target/i386/cpu.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ target/i386/kvm.c | 29 ++++++++++++++++-- 2 files changed, 117 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 738927d..f69f551 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -307,6 +307,14 @@ static uint32_t encode_cache_cpuid80000005(CPUCacheInfo *cache) a == ASSOC_FULL ? 0xF : \ 0 /* invalid value */) +/* Definitions used on CPUID Leaf 0x8000001D */ +/* Number of logical cores in a complex */ +#define CORES_IN_CMPLX 4 +/* Number of logical processors sharing cache */ +#define NUM_SHARING_CACHE(threads) (threads ? \ + (((CORES_IN_CMPLX - 1) * 2) + 1) : \ + (CORES_IN_CMPLX - 1)) + /* * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX * @l3 can be NULL. @@ -336,6 +344,40 @@ static void encode_cache_cpuid80000006(CPUCacheInfo *l2, } } +/* 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 == cache->line_size * cache->associativity * + cache->partitions * cache->sets); + + *eax = CACHE_TYPE(cache->type) | CACHE_LEVEL(cache->level) | + (cache->self_init ? CACHE_SELF_INIT_LEVEL : 0); + + if (CACHE_TYPE(cache->type) == UNIFIED_CACHE) { + *eax |= (NUM_SHARING_CACHE(nr_threads - 1) << 14); + } else { + *eax |= ((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 = (cache->line_size - 1) | + ((cache->partitions - 1) << 12) | + ((cache->associativity - 1) << 22); + + assert(cache->sets > 0); + *ecx = cache->sets - 1; + + *edx = (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: */ /* L1 data cache: */ @@ -4010,6 +4052,55 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, *edx = 0; } break; + case 0x8000001D: + *eax = 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 = *ebx = *ecx = *edx = 0; + break; + } + break; case 0xC0000000: *eax = env->cpuid_xlevel2; *ebx = 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 = &cpuid_data.entries[cpuid_i++]; - c->function = i; - c->flags = 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 = 0; ; j++) { + c->function = i; + c->flags = KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + c->index = j; + cpu_x86_cpuid(env, i, j, &c->eax, &c->ebx, &c->ecx, &c->edx); + + if (c->eax == 0) { + break; + } + if (cpuid_i == 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 = &cpuid_data.entries[cpuid_i++]; + } + break; + default: + c->function = i; + c->flags = 0; + cpu_x86_cpuid(env, i, 0, &c->eax, &c->ebx, &c->ecx, &c->edx); + break; + } } /* Call Centaur's CPUID instructions they are supported. */ From patchwork Tue Mar 27 21:31:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891820 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="bsOkOcha"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409kqD5TZzz9s19 for ; Wed, 28 Mar 2018 08:36:40 +1100 (AEDT) Received: from localhost ([::1]:36221 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wGk-0006Cl-5P for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:36:38 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45048) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBn-0002OP-S5 for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBk-0003y1-MY for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:31 -0400 Received: from mail-bn3nam01on0044.outbound.protection.outlook.com ([104.47.33.44]:44896 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 1f0wBk-0003xW-Hi for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:28 -0400 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=R2NwXhX2cqAeSxsui1F6Mayia9cl52OeJM7hV7WJCVk=; b=bsOkOchaFyluyM2zaCmLiy91bmKIy2BbIqLkQdIIe/WUdvTalwZPhY5oi6lRD68KUWOCoEWC6gBXDHxJW0we/Ur9jO+m2agDhCM3F3DTaahOYmM58/rNK2HulIpIiU+6tJLFgbSjYlCH89ogrX54Gga74YiGiG0ZBdQZ1UqLmng= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:26 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:09 -0400 Message-Id: <1522186271-27743-8-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e8b6a97a-643d-4c8c-dc73-08d5942a18c9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:BBgD26SlK4281sgpaz7Hcm3qPuUDrNrO9aqP9ASxXfkzOPD3+w9ShPWf5Rp5j7ILkxbutwrjyg8CLcy5UCsvJQJBffLidVu1zQSbfyEbQRE8T8eYEc/xjQT4rGBlk6Mn/E9RDk6d08OkpM4czd1kguoDdFecR2I5iv7AzBElYYUl4svr7WN55Tw/hEYw4icoQr6Au25JeDviZuueBqyIUFxp/1f4RDGgvmTb4ip23x/BiJLCvLP1Bqh5q2gffEyS; 25:KtK3BRDhdpz1ZNBOyhvEr7RiwnM4yLS0KbtEmJtlx55RHqorx595W4y9+ZdpJyURC+Nc9+0v/lu8OIFUriRJ13qEMJt7UG9VRUv46g9nUQXqXEMiZrcs0zfxsxGRTe3ETWOXIToWYQjiUS/urBcfuA22t5Hsihuanq4t6wgDUTU35sl21jKuIMQocb/NhsqGyJBydAm+izIdgu9H2dbepD7ro78KCHaegwP/Xv7Q4Qd8wFadVq2xgCR9Ej+3zUMoTphUDADDmEWOcOtn4CvWLIv8TA0G4A7jGbql/qtBzdbRPzAUT8xfE/a82aO5oLqCLQXrGN0VFgATe9d7Dgph8g==; 31:7u56FMI4dw/uW4kY9GyJDVlTb4ryXuenrdswQWdOC1mHJAcrM+XWTrGVrUt9Eutf+atojD4VVnZUHDidvhQIbYi7q6OHCVyS/3oX6qIIGQC6f4vmX0B+4ZG2bw6Yoz7uO/ehs2sgfWEfeHo57LStYW2i6ryKREzzpsAc2/Br1pMXR0oPzzvENlhm1GAPL+p5My+NALy6e1k6AF3IdWuSGT3+YsN7yy3baZQ+PkR5VDc= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:6/YDroksdjY93ZI6zF1g8/oqr7U1ZrhAINk1eWHip/GKNsDDyRjf6ux9FrVvqWIAvDn2RqVVohVEmbQPR1GgT0qc6xnggq2q7uS5dqZVj/u8mwjTzcUcZPjE2/Ay0U3tkvumCN6OhkJ3cPs34w2LC+bhhmafIXe4epBcIJQrrrrL2yuI/QWMZ73fZDdeceWdbAMX4bbF5EY+QoWU3QIZXjh6lG/1RDbDtcDGtnbA0+DFaIllQqxOUD/xxkI0Q+hmaX4X3Mj4E0NKOeWAFEGM1kF93d0SMFNE5iAo5V9jNEmXXAeYB33WWqNkXwcnlwCs0g93YU+dE99XXQR14+8hZAI9k3RUgjyrd/qHOA5wayt1kNZMQt550AF+5tx9Ss/WI9Kq9fm0/WtWMCFg5dnibKQu56vU3oKVfAtErX+ZywjTvoAg4Cgial5Y8kUEjZqfaJqueZOjclwnmNxMB5WCq1NXjWcNJm18DKLAkcb99C5Cy1Rf3x2e9TLIfwN3SLPG; 4:qlOWg0SiMqA2xok7xA3KIVrGJ9WNfOH/VYHLUyCOKxElvt2OgbinZJF9C2QdeZgQugDRtsIGiN8dt+/DY1/uj0f+glyqH/7b/BNcTER0zKtBK3LVD7lz1Y8C0vql3JmgONpKpISkeVKboEm3G/HSpO+lVZj4YQ1rOTVtPM57Sm0/KlTMV42XaMkOGkJF+RyL2AYfU6c62H/92eDkpxlB68KrAq11FdZ0hk972V+scmb/ZRGm2pk6kADUIsd5PsHyM/86wwXtgfS6Ui1Zp+XdBlalc3UZDZ38S5GjKq0X0tf/UYejJ125xhmBTPCWTkgY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:/fD2Y6XqHX/IQhLJpHW1BjaK/w0ibjvFFOC9Xptu7?= PVt38Q767L91QIMJ819rlZofYXWSsoxFGUIRR+3F+b4r8fr1pmwQu80nEjsVHSSNZM4rGTK62NmbLQNmmOueuzjaUbf5F9/75jv+kb4bWWGuxzNUx8fCwAVlisKReobyx3YW8M7ez56glurDXjP46hAaNoJEIds7p9SGA+Rbroq2q9v+6Ke5o4OwsCbP7WAQVgImY9LvfWR+ctXmOy5bkY7AcC/XxSuL4bAg7/IN0rCZkj8Tt9lz3B11Y+Cic7EdaoL5nv9qfBDBzWUm3WDglqI25sU2H9s64QQ7IuB1UWriEPq+2iY+RC0JG83RyKLDimUHRATLx/rorqLnEHs3OaBMdiSa3Wmlc3dQgx1PkMo8JAhUrxfmdXw2+t6/D/jBD9qPTMvpSbR9/S9YmbOawGXYLfKJb0qFNOaNqApJE76NT3VBF4SkTLWeWS2I5lndgliF5AehW+XNYAx7tjbRzNFz3WHjvpEpZcwb6TmHXjs4wQqzAGk/QW0QvH5BJUnCLey5LIuUmypINCNCaxyxXxALMBtBIz/pNKsPbvqPT4zWF56bKxyjEwp6TcGA7NCy7f8RlHBVdjYSnRXmh76twmjyop/cejL0VzFHRzjsrgo/Ct1jwudVp5+8Dw4QuWJCNSrqwgh0YuEAzB+iCGKxUh26xg3po0MhOxJYgo1o7uLleJYI04EFdyrsdAFbNrwj+zmIsoPtbHr2OhCC9It/rOupsatri7ci+jo8fS8kXiOWygk75QdqFFjlhq1w0RiA3e9TMFk85lhHyVHKzMS8rMzQxRGuGqv0wXvmeXklMMheKfwrGIpO1BKEUB9SV+WoPd4bdOgJGgpxIbdkkOLljHbFYlN3UAAJ2p4fuj5iCpP0DvP/r+qRAEPiycaTIoM7KsmjzGrxT2h94E7BUp2F86+Fd5PMMAY+w+/lWwWm1JzsZ9ogWLrBlw9ZVdMjgO3GinonjKdajFDSA5HsCpNk8fnhIZlGMCmudVawVg82zZXbz9SOoaQXBaxcyckHrxsV7mvpqePMqfFq3GuI7ybWmcxASBCHOrseo61pDnHH93tGksEcjHcjJlb4e11cruGDbjiLB9E3Y6Dmg8l1o6PF/gb+uInkAzfDywsq+caqMYOtSyy66dcWHtrbVhFigyi7wPsXaDBkTUPEk6Mf4jWKNriNy/oPb8uk+Lon4vVKI+vjTdZ2r4hmckLMDRl16wZY7U= X-Microsoft-Antispam-Message-Info: q3fvN5Z1Xgx26YFLpaNbSI6E/glAOIfA2kQchutUkOaQcR8ZmElfUEbK1GYar1njrG+jm9LLZun9cd2TljxyJv+CpXSRBKU3BJlGGT90Y9UXEsjLaCES/nXLvZscs2NJBCVSIvUTpkBdzwky57QhCOI/ZHxZGxpTp027YKR+egO+FgvpcuYDxwKSiICO/uBC X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:JUJFavcZ9mRSaKSkQ+KYxnrNjhmVqOYP2WsKD1Fmxo8I7CIUwriVeM8JyTRP7OsryFr/FNDuKCy6vMZqvjQSpqnV2c+Ojvl0sVN/IgSeG8630VHWatRqgdmaDwziSLtFd47nuaULoP3jSnMrMI9NwvFC02bFUPIVWrxk7gS40j4Squ6yAtth6mFyXZJrezcKPtOTttkhAw85zM2i0VLaaDVJY2XSeWLuLoTZh73bg9ix+7IY79E+aqlm2EWYJSbrZevBXSRRa2oTfHreeApDMR7zhwXgo2/FNFnLVvyahw5VdXhSefyVlmvxgKw8RixlhF9kHvgPPbsLBpgq4xMbDwwwv3poZE8HIFe8wY560UD8Rr3X2gISUeasEgNoRwdUSX3rWqiXlwHjCpAY/Q414a+OLzkunapaVf3xhsNBv/hduJ2H2kW0QRUAaIZJbCgiz9ztei2NHi96IhqyQnil+Q==; 5:6uSTU427gBF5LQVsKb2O1FmE6XlRzowUqUOnXjD/AaVHZ7yr9Rjw50vb15qrNftAZ1SyjQgTZOlCQmfao2ps+Y0npfgN11XoFgyFXrgkvIjkseC6s9zBqixvSt9gac3ZKr+oQkXDO9si8Wu+/wT1qoN8uHqJ86+xfh4V3+bLv/0=; 24:oxOygYgBvqyx+sDlRT1IsS+NX4tfT7OPsbRbvZilFQNnT/e97j6f8PnpOgWzl9kqLII6u/qYnl6lQAAfDxRZBza0F9Gd1l+aNQNMBJHRiqU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:/S109loGsP5+9kU1uW3n9DmbZzBDdA3Pizp969zQlrGAhbk8Rn7OcVP50XEFki0XQQDC5vnQBjKpve8sEggX9bZL3xqALUuI01tipBVYA8w+u5EosdWaz4NhYNpcX69apMzhP1D7tiNphNKhGpreoWCNYXsjVzwL+HzFLkhsC1qYGGVsuxGBgl4UTU/2tpJNOD+n7fgBm4iW0KGSIdwMOe2xwcNFofO5I15iSPet5Up+j33kzYKkYP0Z2VJwh3b7; 20:T7g7bFl5aGNct0Oy6H5S2dchrlARmdEyfuMmRfCG9RxQezbRte5RyseaSPri5xItUWd0CNtU+0/S4JBOvMchxgZKgVdfs9HQ4XJrzShUYbVYrtJJd3Pa+1skYyrTpuklWwNa0m6ElJblpJ6C1pNmhenRCjhjILWsShN+56QunYO13D3JScYURY+cvOCrl3QKTiV3dQSjFQ1O3OQQBr7nAqnh2DErYjgKlrUvHfeUwXmTlUwMVmLNUvEtx/b3ooxb X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:26.2431 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e8b6a97a-643d-4c8c-dc73-08d5942a18c9 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.44 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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 --- target/i386/cpu.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index f69f551..6f3ad44 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -315,6 +315,12 @@ static uint32_t encode_cache_cpuid80000005(CPUCacheInfo *cache) (((CORES_IN_CMPLX - 1) * 2) + 1) : \ (CORES_IN_CMPLX - 1)) +/* 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. @@ -4101,6 +4107,14 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, break; } break; + case 0x8000001E: + assert(cpu->core_id <= 255); + *eax = EXTENDED_APIC_ID((cs->nr_threads - 1), + cpu->socket_id, cpu->core_id, cpu->thread_id); + *ebx = (cs->nr_threads - 1) << 8 | cpu->core_id; + *ecx = cpu->socket_id; + *edx = 0; + break; case 0xC0000000: *eax = env->cpuid_xlevel2; *ebx = 0; From patchwork Tue Mar 27 21:31:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891824 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="pSFyhtqm"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409ksz3sRpz9s19 for ; Wed, 28 Mar 2018 08:39:03 +1100 (AEDT) Received: from localhost ([::1]:36230 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wJ2-00082c-GZ for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:39:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45074) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBo-0002PD-Py for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBl-0003zC-KX for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:32 -0400 Received: from mail-bn3nam01on0077.outbound.protection.outlook.com ([104.47.33.77]:43743 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 1f0wBl-0003yL-Fe for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:29 -0400 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=9znEw5mYslCCjxHBFO5YZFnvVZd0AU6NtXmzF4k5RTM=; b=pSFyhtqmXyWr+zfluRk0doiMQM/xTyvw2ann8nXpnCTFSUIrFPgMa+fCtfipdapCprFQiM8Afm/jDh7H4q755tbomVuSgzeryZeOlfWuNqVCqGdh6NKgj6En6Ifgg5W9apzUMj48BuKZ4fgotMluLakHZN38zqYwfqL+nbMDU70= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:27 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:10 -0400 Message-Id: <1522186271-27743-9-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a9a73d29-f169-4f7c-24de-08d5942a1954 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:E+ifZfPDPi4Z1uiCmUtHVtfrbhGu48I/MDhAbrqZ4v9dq26R+hJHMuKxNZif9pFfwpPG2w/y9A4ZJ3bOob2R7oqsf1jLr/Pb9Q0Q7RDWc5k8u5dpWpQIfttDrQ+gIGY3Hju39eNh0wrh7wdhDDl+Bu4vvyLCmmun8GHAyKw9bGG+Pw3ZjoTnE+vhkltDcNjSwHFko3uaBPv1uEtg+A1gb5EGDqvAs2gtyZxZFUr4kwwr9ScS0YgSkcfj6juYUVmG; 25:K/slV4kRU9c3EGfc0CLXlo1n3R8CZ0fa9Ov9s92pGTX8pgcWvKnXNJbeube+QvznxiaADnCvy7jXjnYUU6QYpHHXATFWrG0/3LQaaZr5KDCeq1P0dSO4JbVD0IOUSg1WLl/0ZfZYRLyj2pn8ci92K2iR7bEOLAVvJN03PJYF1ej4qp+l8HY0ZLwsYHlqyIPgbN7L5eBNNQykJJZCsbR+s7X+55NwLP38xPLYuvCnNBoCXcZcqh4kGYOG8O1mpIYt5rks5/KX17+xszpfHyNkNyrAxTKMitnRvMRP6jcIGWvVO1CuMR/5ZwQq3Miju2S27uEgiBjHnvWM+anCTqqNRQ==; 31:Jo9UwgMHLIpo0UjS9+xtbBqmEdOwuoQhr+Q+647vkNLQ3tWLxbD7l24ayMpPZT+qyCu3JEfWcP1hgs96olFkbuX19fOFPzCdSk8Sh5kJe9v1fyvY3U2viTezzkxn7OmG97wEKykYtzljcPwoKbKEgt3ZrZRjUUsOLESZpcqRToS8MSqcqa1hwQDmJ0juJ3LLb/pzCEWh+rrplfUzqMZCW/s0RDS4UOyEqoC3AjhyRAM= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:PnP/Eu0Gn+se5FYYaR7LFjBoEyA0ih93PGvhCF8Kr4jWe8WAI4cZZAxI7cu2+jCLTq32zyy6rPHC7gvTHknOyHKdMg01vQgNx8D2Z2kc+XJHPn0dCDZv5cnAbXhQsfzCQi0W5Ed6zuRn1FYZZIAHsHP6O4K4gEBpobAQYXm+fIvtXEFyLXu3gNYMkeg9j8jocGEipS9YGjdbQ0Ihs6jMLP17KIbOJTlAqV0+v1kClI19koj6Sq/6NYVKWX3q0hIK696z6xRetHT2D6OD9jTRDZv9s0BqVu+6GxBfIBKlLXI96YPMVrx7wGHHAiz57XJvwqjbPOpZRNO3Vw6snsQd6G30aPK9jzyuuD9SB3KcxiOGlUwusLvtvA0KT3QLVPiNKE6jtGZZRfEj/ccG4FUYGVNuU0/VS+XYpbn+YdbXDP3x35bKVjRm93mFFkWm48z+byejRySd0jK6dljuZBAMxfThudgXYFs/oMmSzAzn4necqLYfRdisNN2anmTQPCJX; 4:KCggGPJArYqZuiYkOLQ/iKMPx1qe5KOxe56rQvjdP1EWIZBwYvwfMTXfC2CWtNaFN/sZxxMywcq+oyBkBXBpwT5fHzW++r057m7/FUxQQrbcgobiETt6rNSBQhTaAE2EEU31evqrmQ6pGClM8Nt5/kKbUWqVPZofQ70fLoxAlEZAlxbpqJ/madHrMjtkTk7KommVCAHueoIRIXfGs5cS2W1QE4Uh579Qgx1a6I9QrooukGfXzE+hloIroL8OWE24SMpqqf+dDY2e+P27U9VSyTLaWPHUjMyhjLbCRgoxl3OK6uq3hnB8e98OvzsWc22v X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(59450400001)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:HtjwkWUvN7Vox4OjP1FHlAVdfuWAClxWQ7IjMjIwb?= kkCVlmYK6h36yR1wSQeNh2UTgBqZWJWT0Yc76JtGmo5rrebU+XPU/DAjjSE/yUBTbkjRHACZTlAQjH/bl7WGqc9oRrIbWKJxqwDG18c7s9y06Lmjpo4bXbVHop2CGFl3NFs9VKs8gRbODVENGL2rD01aZD5nXDYrL0v5Y3HwIeQMgZDCJmzTt8o/9m6zIJhL8RNn0DxuevmcwiXznKpfGIojGBoBJTMcu5ZngxQDY3CwiX31sQ+HKHs2soiaLvs8EDytMTrpkEhV19nqt5Cbx76i1y6Ffy5TL6XzR1C1ghxWOEhDb/MsNaPwBUoaUONtxobhPJ7jNkGdXsKO+RclC2v38cUUZr3wlW5pyaazFbfh1TRwtISgPSeo+WmDGJpuT5tcmAiuB2ZOw6qOV460zwgIypL8WwjYMKXFiZTTad2ZiA0PDO7NHGE/xrfG5lxrIh3fuePMy3TL2r9EB1MG6teWyrcNlj1dSbSQLgh4fw0U+ta/WWWu+PmrU1jvuI8krqw6CAMH++L1ISMWsrv3n+ChM262xRRY5gLUBaUJshShIr+NvIqKYdXGuNjSPCEsBMmz89k5rDpV14EWZn5YA46MAPDk6v8zpEN4RsvOLJ20mckxczHARNI4nOQJ7gmrcNO1r62wxxyChmQ1+4lRgJGf3CB359eNpPgYQ0BbhBbxZirumwzjG4V3jjJBPpmFfvGroxld+BzfydsAeLwLACFlspoLSjcjZ7pAXZTYTv0aVcihU9trqjr+kq2/MUznAJ/dBR9NZEhC9w1ODR1UQcwx289YbjB1FzjHZ5y4uk0GihWP6Pcv77DOhyHspc4C1o+jvvrlRMDMWHTjRuV9u31mlJfUiQo9KXCm13X/jXFSO6xMHPFa4Xg+XeLNhLHhUM3yFtetPAIwVB/KFX/C2kcnPVBzmKuBp8VHhf3l+xAO8Jerz6ljyWdVujpqfki0AJfd8RQ6TpSI7HU+tjo/+BfsRWFKZEAW/3/Q/DtIFMoAUKIJAJBp4morwaCw/N9sRSze2nOq5t/XwN19I3QXczGMdWeh+la1rs6PdOcsrBi6p463vmJImXFTTGTfqPfkMSVsJk/z23TdfoOZzg1C9BaZKLkCucNzHM4ka5vdAenYX1Byvl+MmBQw6ewWQHmZU9KEQZW/FC24OMhqvoKWxPIlsVOaBcUO0CN7OGEhGHmNpTcg0qcV4xDlFlBFH3vjdw/Iee6/Den9Qje/4We2O4pb9yt4s/TmdhQ+jv8dG0OCA== X-Microsoft-Antispam-Message-Info: 7r1E5DLXvz7/Sizt4Tusr3WwcS44ZJrYweSWr+inxrs++cntNMemY86QW/Yz2L+WgqZJJs0oQvqS61ZoCdh6ooH/qovmf7M8Y298N4PPzfD01GgEY6CA6XtaM+dsKPm45shJUt6HGpn/C8hPHSqmV4MeVMPSfz08yP68p0tTrwRiSu8SLK4MZuN84w9O5Vyo X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:7cOFgGhqByWxQjSfSwI5C0vuuqjf5VeiM8wc0Fjj+rjoLu2dwUbPm9xjnvd6ePe/1NPpxnqWK6gvvOf9YRMTkGxpezw+aQyxLt4M+DPL4F7tU+AdalHuVqidNCsMe+JvCdw0m/ynWfh9ly0vzHQolZgW01wDXgT/dRpH8lfEa5cAas+f3pLgcN1N272Dd0zZ02amLSis2VgT4h9ZRfvzgci8o/uBH+OJEywvkx/HkKonN+pM8K0iJHqvUh3P3uSLZelhZujU0mYpLa5NjzvKMO+zLA7sGwlCB4ZtchMxQ5l81EK0PZZalg4tC6TtbA4tT6c7AOp6jJfpGYb8Q2IYz6i3XAh9NFEuiR/Y0IzUFVgJEGPnjVEotYtt29n/85wQ7IsKmgAnAFS3wPR6hid3G//848Voh+ZCTRRxLo/Vj8iErk3I5BF9zoXwm+SK5fvWthBAH8s0fGKjq9uIZBppnw==; 5:FWPa1oRiSRgKpA1/0bbdsalAo6HMfs17rE+9FAPyiVfGGPoj9MzKBp/hE3rDtAiECqQjCU5lNyz0g6bDXMbHYIOMvF9JkLihu3sANZtumJ9FX/B/77pobYOPez6lbz9sUFcI5ja6vyXs+TwHYxWCq/SrI2olh0aVS43Y7KVhzPw=; 24:S5cijxjIsOSFof77aNwb01KEul0OhOULI8xTFmdsCF53z2kML99o+qaecUoigVg9F4oSuqvhM2H/Z+nwW0PNirjiN0jOZHhqa8TZa2FKpmM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:Qq2kzzUBFAnDtBAV4zjgmZmvRHOP0fFuj1IP6ZsnPag5IHDbPuQURk3fu7PaEAK2rktT3r/cHpUPebYy6w8f4s4aOtcIoS2BQ17OM8FGymeiiy1D2xwwVMzZa4UhQpXUntL+fk6Pa8WAUphi4bSBMz9OGRv/39LfEaWV94Oi6NZCCI3gaPiH5aQ3cwNtWRm9M/yjoHz0kWUWYrjeW6EjQOtQRxRg+dkYcPHS/eFojyt2wneaWs/5/nqSW2hOGVkJ; 20:kRnrJhIPfe0yzYG9dBElaQ0P2nxtpH3K7T40O8m0p4vTIkawRVg0FpxXdL3PyRpGOnOIsPjOwRNUECOIw6ibOf0BFMPXDr95Ex04+3RgAQUIeamnYT5eLl+mq6Yz1pjiIewUb702O9CHH9/K9SR/mAItEbFRiiCJtcwA7TAPM7CKD8Yh7n0B0nbfuG2ZrWD8DrrETJUnQtWyeUpKMsQBAmVJGoyhkefCWZEV2GLUUTI6DC4jg/k4ODSs5Q2gFbnm X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:27.1025 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a9a73d29-f169-4f7c-24de-08d5942a1954 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.77 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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 --- 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 6f3ad44..f8e7325 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2330,7 +2330,8 @@ static X86CPUDefinition builtin_x86_defs[] = { .features[FEAT_8000_0001_ECX] = 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] = CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_AVX2 | CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_RDSEED | @@ -2422,7 +2423,8 @@ static X86CPUDefinition builtin_x86_defs[] = { .features[FEAT_8000_0001_ECX] = 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] = CPUID_8000_0008_EBX_IBPB, .features[FEAT_7_0_EBX] = @@ -4575,6 +4577,11 @@ static void x86_cpu_expand_features(X86CPU *cpu, Error **errp) x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A); } + /* 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); From patchwork Tue Mar 27 21:31:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 891823 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="ptbyRkRV"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 409ks34RL4z9s0y for ; Wed, 28 Mar 2018 08:38:15 +1100 (AEDT) Received: from localhost ([::1]:36228 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wIH-0007Nu-4t for incoming@patchwork.ozlabs.org; Tue, 27 Mar 2018 17:38:13 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45096) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0wBq-0002R3-Kd for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0wBn-00043J-FT for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:34 -0400 Received: from mail-bn3nam01on0060.outbound.protection.outlook.com ([104.47.33.60]:8096 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 1f0wBn-00042U-38 for qemu-devel@nongnu.org; Tue, 27 Mar 2018 17:31:31 -0400 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=ZXMM6TI2hBIfyARPNE1BdsIgGbhQRYTNj2bsXSPPlZ0=; b=ptbyRkRVqUVrDH3UDwl6IsLRUnh4SKOWm+LueU8ATSXeSAZuA5XMxIYLP1s6ScwMgYPO7wp8do+Bpal7KroC3ZXn6nJWL8Vv/Ycaz+4EazaaherBcIlvmgRZE/zAdVM9mxTSAfjB0oJaEQgly4lgAmc7sk+EbggBTFRloxXv6UQ= Received: from linux-pyp0.amd.com (165.204.77.1) by DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.609.10; Tue, 27 Mar 2018 21:31:28 +0000 From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Tue, 27 Mar 2018 17:31:11 -0400 Message-Id: <1522186271-27743-10-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1522186271-27743-1-git-send-email-babu.moger@amd.com> References: <1522186271-27743-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR04CA0039.namprd04.prod.outlook.com (2603:10b6:903:c6::25) To DM5PR12MB1771.namprd12.prod.outlook.com (2603:10b6:3:113::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 192de3ca-588d-4b89-4643-08d5942a19d7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1771; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 3:J0KxVWwSSs53iEeqOZAZRN8QA/AC9Mw2dPHqIzGZLuuppOpURXtzxzqHG+GFyPuO4bYF64w2zD7N1I3CywsVqSrA9dPYdhxydPHqnLqvzmpu57uoLOs2K3RH4t+Cc1T0fx373dYLnZ6Rl9OLqc/AM7BIDxB/1l8nG8+iIWSmnt+FY9SfUBMjYAVLhHAzE1GCR2MCsapLPPgkOounHY1sxDa3XBuAzZVKVmwac6yMFubbMIoWlCmzILoFO8Ebmy6D; 25:c4gqVLfr8vvF1kMRPrHbkTDIaGhXqSTrOvsSsk0+2tCrd1edHFR6rZMn8K5gdaRJJCwImY2agKO1EO0QTYmbryutPwlP+sfFqHFgHHMXPIohOfxSGD9rPQnTTjTd0BdTwDRLPMs4o0gB2CQ7D4TrqBezc5Nmv4yC72UDYdgBSTdqCkbk7U7uDgYrLD/59GmUEKzbaRCzaj2TPy1uuuzPvN74UZ5YrMA0oRQ6/POMq4IgIC3l7BDgwP3ULkfz8SgGml3Wu0CQJoF73TfDsF6NkJeCC7/s/KYMRB4ctW+cpJMz+RiSsiJF3pODv//qDGCngHUio6fkAiccFLBjP5CrnA==; 31:ENeAz839g+expYf505SYpry3ux+iYXlKv75hu0tKVnqR+wQ0IieMXMarGMtFZuxrfOmcujLKZ2tuoNcTsuqEd0LxelFpPh1yIvul6NBp82UnUwBsfnNkb05FPsCYq/pg/WzkQlP7stclD+XIixhj7D1HD0YusH1VIPRAckdjieq7GkqhMA+fU/7w7SdwDs2T5KAuR03IXrGwNdWcouk9tDLtMTUOlfNxU/x6KMjFuZs= X-MS-TrafficTypeDiagnostic: DM5PR12MB1771: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 20:6ZQTK6fDmLHPrC6tyjMvFiIg4YO4IuXafm/uk686KbfUfzuqLFno/dSFdp4FmNVz0e/JOoFy9vxdjEifObjtH9p1fE1Q3jyNux2azQOg1UoXJUpXPE4wl0mn8PDt/dxzmz2eaPbzaFDD1v3b/+B+pIRrAfZMXiJxjSpVPAS4piUxp0bN6jNl0RdZrbudu0k1fo/F6+aU6pOStWmoMTxCVtBBV4/KQOIxUXDIPm+3Zj3CG3+nYpThcKXdjNqqPmVmea7R70bK9M7lMYu5fn184cGakkK9L+t9YHmeAabR65bjMyhoQ8Q1E4492Aa+IviEtfsoBzOxL2hc9PYLBwg5wOVA31rgtFdY8XUW8Lv2wGv448Rtg4l4d4mTgPq/RoTGBI2TcZQPJgKmbm2AvsuBJS9aEKl/HoR5cpnyOmh5deITx94uKc23yZSApiVznHI+LTt9qE9YwoKEYgO7QbZsNyZcmsxbs28b/rJDpNkqoguvuBz/7nZMPuxGQEf16814; 4:JpiYLfkmqjchOxnZYfwcPEjiZaBrvHq/ld4qMo1Hq9Ty/Gfm1nzBXZWW97IgHh9KpKo0jDnsGFwRWLWyUb6k82U5dyacz1S2WgZ1pauRCOzNXNndDzsJs1fhMoZ8eMkGzwzGVUmi5oe/y3EjRO2JH7J8rWod8CFBtMqQm6H38/2O64vedlyZ6OFIY01Lp2c/kbqdNwIv7dFRpzRHyBP/yKqXNA6lugdkH6RXMJqSD8rqzG7a0XIKFZUGoNykqtGLIJ7dlYo+oOBJ5x6ZtPKSAzNQAmEpTFPAGsboNxm/LcKslhgZjnrOZB+zfS76yyL8 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:DM5PR12MB1771; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1771; X-Forefront-PRVS: 0624A2429E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(346002)(39380400002)(376002)(39860400002)(199004)(189003)(36756003)(6666003)(105586002)(47776003)(76176011)(25786009)(66066001)(53416004)(97736004)(7696005)(51416003)(386003)(486005)(59450400001)(486005)(2906002)(72206003)(4720700003)(6486002)(52116002)(4326008)(11346002)(5660300001)(7736002)(305945005)(53936002)(81156014)(50466002)(8676002)(6346003)(81166006)(16526019)(106356001)(68736007)(50226002)(8936002)(3846002)(476003)(478600001)(26005)(2616005)(186003)(446003)(316002)(6116002)(956004)(86362001)(16586007)(48376002)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1771; H:linux-pyp0.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1771; 23:GevVnb6QwKLwC7pxkUUsUkWcMkmdiJmiDxuBIjh2U?= KDABPAPDBrN2py9Fp5TNyPfFRKLPaO0VdrJuFDLzC7S3wTFs2hunEjSD8soSzs6sz4IgKLOXcY+/CjcayRPe0Tjfrgpav0Vm4CnvljOtc4ucyIVjAQ+0XvhRbN5G6L1hDZT3tnl3Bk9zwplZsyoPP6MC8CvGOlGW+gZHt5hco6yM1sKet7le+H6kbRlqCjq1CE/KLgPp309ArjiQZuLrpJQlXF+2Q9y1Q+80HyW2XOH7qMD6Oo8vOCVdSVQPnlfxF/rV+LUS8H0AbYhOoAsyh4jDxuT1v+KJBAjHGR+6iBzIk1INmPfEXkn63EW27DRCXATENLyQFznuIjDvLBaxaOyeLRLTYBWzKe8r/SnUekuvHH+Ixk/sYH2b76itEjeO6sT7fzuu01sse/4S4Z69LOKtUiRdIvUTDSEiHKYwk0q54KqTmbGkDPc5pb51sP7ZObmCuNZo+cJUb7N/MqBh2Khl0bbit6x1rMzn87g7OcqmRfCzAPpGhERX0WB0jcBagz1dHxeY+ZhYJXBcRwmSbcXko6rR7RPOFCtyCBi40H1Caz69D44a6JPmN5GOiUKtVnDcJW9VDQo+KQlGP75yS1WNDZrDGf9L+exXtqoRdp6ILD8MNsk11UGl3LFjrpWHXdTdDGnAuv1+Jvxw2bJC06wQEX92IjpXgmI7Fo9q6fiPQJmfwR8XAuuJ1oissg6mPYcMvpIe/h0NJdIUYIwlKC7j+QOnDaE9ZAKoI2qRbwmZ95ZqV++zqGyZdbsl4+wwFzVf4fjRjUk8tKN8a0AFUHK0e+naxbMPM0HTSNVo/b/xETFtBm3VNdG60uT/mo/uudVe63dRYHjIJoWamDMWXdQXoHYHZ9CKAOKLyvumFwPJdmj16cxyNAZ3WHSob7bk8AQTgpOY2c5WQNtqs2MLOsT/IeQypmJM+sPgyv4RiXor1FE79KpHLL6S2LzzeBpmc+wE8MFrvQfJoYbFIXHDQCeCph092Qt8a7pbZYOL8PMqctmd+Zn2b462/VemJpV81IIBZABz0HSf5K7nBWKkKyUS4cUDbus3kKCtP87wYXMZ69mXBUXx2iqbi/VHLL4i7B+ubDoCiccbzAi6ho/6woC74LFXsa8MA/0cqZNIuTSfvJQxYzu44kWEOosOS3l44zAAF1xvOAGdh9tKfOOj/2n3j9SdkAleKR4fvh+1YQYdcBxUqJTN10sqjZSBOn1gPtaQPD0kAHBCxRX3EuptJdZTP/Hxibq6dqfRBXJMMofWA== X-Microsoft-Antispam-Message-Info: VzNQxIppl7He0KH4QJvjcDLPH6XyOjnPvQEcSeQS/nb8PpoZklnFMF/F0fGpEnamWJjIwuIMdlkhhYlZzZVIvb6MgdQsdiKF/cFE+R4lC4ihx+6ovezN8bBDratRrpKZSnEPIakkVBsDW8TcF2iouVOQsTcozOab6vEXSWNBsQOkFwDErYtP5inUo0mNOGBb X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 6:X65Of++H8Xmozpx2V4b/+LDiZgzJBb9GO2wwmqiXdgr+dqf7xAM6TVUpRZzKEQFL3p1hIQXCxmmtrsgEdDA0VR5OVMOI7gyoFfrojawAzasktbsaSceHE0BbxLqU3yTjTmoLuz/3JLzOqvGbEJ++7w0j0cXME82fks7i8GFzvPuFIxfVPoev6RE6Xdp74Vzq/7xax3op1XtHuFDBQjClC9iDwxswkpRcZpVn2kgGvOGwW5fFjO2Hc9WD2PxpfAfrm2BsSQwqxIYVIhQTvbM5D2B/z86JmAG2uEbzpYxeKzacxAdkMN3ZfCsuw3Ouu9K9/dgooB8wT6im7M2vTmsswaMapuvbb3rZYdVXaIN8AKQsGC/dkYq9dQqTZbJ/aH3vkZ7p6KOs6yP2vDJK91I9d5VxCuhgC3+vt190G1EmSCXdFDrWTzy7ojHYLt+CYFf2cLKoDJWcJNWZ0EIbj3mPiA==; 5:He27bgr6hsjDhJLkfJMGbcc3XRg2oh+kZf7C62xJIU6Xw15MOsaAxYDIop/1UvHZP0jYHjO/Qa/rl6X7aXBYMLcVgFGKpHaFPbopwrySCU1Ngd6ryRFSoZpwYVafJYmElDoJ/1SiO67WTSQgnY3GMaRbj6QjGI9SQfpXIcv3ZdY=; 24:FDcUm8Q9YZ+FuvOpeDOQ8cc4E9+WCgWjUryUJ5xXB1YuImeFAJaHo7SR3KlGPrkW9J+fAW9mi1Co6Vijt0hlVI4BrTSCAxVvE9NEVTAHusI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1771; 7:ACd8UZfWwhp2i1tV7+tSbn5coa+H0vL6Y9rRnFh/EwchjNqKYSTAEb/jlM9daclvzo/wU/RwUOnNyMxR7rUaj1HdB8NBmdrh979O9zBydpwUM2Iy3iowvZS0c7htQOVSU0JSXGKQ8z42LYUJ+0yM8fJJMrrOBBkgNgWGFUApOpnLp8p8IDFw+CsiiIW7qQi4tUlqMfdzJASG4WFoA6D06mulDft8khpWAB0SBC0T6300xp/7dhd/bUdmySBOyB6T; 20:eDSgiLSUteIOCY0NzRmnTKOxsfExbB8+q6Lhn3TmzNX0bESzbp00XizbeIAclPmD3a7caScz5TjKH19a7OM7HwU4I71R/tbXxHSVZCzSW4lrMgnjxg4UX+scE+gidfhHDkUGm9HRL+TnIFD3R4lzmcRa7voeFLoluVprL86YQkxEbf9SvPDDSxqnN3p0DcsBJBztmgtWLbtikEOHeIkGQadzMmyGm6Ryr+A6ICoxQXSBYr2SSfIQeED1JgvNKZPR X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2018 21:31:28.0087 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 192de3ca-588d-4b89-4643-08d5942a19d7 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1771 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.33.60 Subject: [Qemu-devel] [PATCH v5 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: babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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 --- 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 f8e7325..e216d54 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4824,17 +4824,20 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) qemu_init_vcpu(cs); - /* 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_0008_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 incorrect. */ - if (!IS_INTEL_CPU(env) && cs->nr_threads > 1 && !ht_warned) { - error_report("AMD CPU doesn't support hyperthreading. Please configure" - " -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 = true; }