From patchwork Fri Jun 8 22:56:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Babu Moger X-Patchwork-Id: 927074 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="aovYtRZz"; 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 412dCy01qBz9s1R for ; Sat, 9 Jun 2018 09:00:14 +1000 (AEST) Received: from localhost ([::1]:38406 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQMd-0007Xo-Lo for incoming@patchwork.ozlabs.org; Fri, 08 Jun 2018 19:00:11 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42884) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQJK-0005Az-KJ for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRQJG-0002pD-2X for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:46 -0400 Received: from mail-bl2nam02on0082.outbound.protection.outlook.com ([104.47.38.82]:53152 helo=NAM02-BL2-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 1fRQJF-0002oc-QU for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:42 -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:X-MS-Exchange-SenderADCheck; bh=7DRAiQkTbxUQ9S7Z8lVbl092MtmrJlwApwbSVC+pnYA=; b=aovYtRZzVTFw14prY0pRWoKsMuvXFCY6cTeHmkPt/+OQ077upyvHZeJTGlKedkhS7pwsNfd1TBfq4Z4DtuVUzbo290+aBGSEIOeFETSRGXQx+fFizZ2yIdRUmIbK2RTXQSxxex9SjD6rIhL/uaFR+bxZEXUeDZQsDE8gNoxtp4o= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; Received: from linux-h3ml.amd.com (165.204.77.1) by MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.14; Fri, 8 Jun 2018 22:56:37 +0000 From: Babu Moger To: mst@redhat.com, marcel.apfelbaum@gmail.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Fri, 8 Jun 2018 18:56:17 -0400 Message-Id: <1528498581-131037-2-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1528498581-131037-1-git-send-email-babu.moger@amd.com> References: <1528498581-131037-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0401CA0034.namprd04.prod.outlook.com (2603:10b6:803:2a::20) To MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR12MB2473; X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 3:z7rGaIgpP5a2373yggHPBdYU+ZscUS7l8/6j178zeLO40lWyCNwVLS7vLb8bcR6OlmUD8fR/GV6suNpXLw7x2Fg0W7/PmkmdoYBRXG5c8ZwAxUFnQT9a165gOZpYtxfOdoA9IvuJlqZcxrxfY1CbMkqlzQqFBKEitFPbKy9irhyamCznKhDfr3hl0duMYCnerlLz6oXtB82PCAjR3lKPr5kRxqo2kp28pszJrmMMD7BiZ3rjdB6D1AMY+QqRP+pJ; 25:niLS3hlgMV3t1657afBkueEKefyCEQLKz7oJhAI1DOezEztYxryodyMpEMSPa5tWom/eEtC+fcxLXcDx5oimhU991e4+K/YHSrEYjVKRSZDXN8dyya0rdm8zC0RGUd4RPPQJsy+57V8wSA2qaOsdkp2OUaYXqDcuGdbEO4klJNghXpvcp7UWNkYgdUuGozAOmm1n2Joyvx+NuMIevncUHM2sk9imtXUIytt0gpL9Mxr1xRmbUHRsgUHgaq10GdXARPWebeT2pVQDaXPrFZLxlkZxG0spq1z7ujB43Kmk975uIe7PKnCqHNKrk2jFQ7gyDb1R9YENfba6wjTVY5gIxA==; 31:Cu8jG3lMegHzQusXQyMI88QIDTAbeV736zzDTCFkWYTsIjln8kTXlEqv5TK8Fn5C4lDjKlZ380fCXpMDcrEyYoUBx2+h7QH0Z1h6RC219RR9LXNXD0oQ8oZlr2kg5hfes33kZTipN1Q9SvUlVFX9bCX8TmU+yyuffMQ+Rgtt4d6Q4dhu8KvNNY6M2T7nZcn2MYc21m75HedsJINS2isA+ik01trl9o8yKcQOeVDKk8s= X-MS-TrafficTypeDiagnostic: MW2PR12MB2473: X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 20:ovIsvhqOdFPrja3Pb9CEs3StgqLmeBedCe/93jZtrVvSlDfghybRg5Y1imj41Z7hcAojJ5bGFHPRoEuyLmK8/77NR5cu0a0Iv5vZZ5sMZjkS60dpadNgxSLJuXUorVHxXJ7MQlOklAHXv6tt8zxRlyJS5uRVvwma61pkgnMtMV7UzPnUArV1q3Zj/nW4n3R3rs1U7X/iT+++CaGnA3EmBfsFVrehrfE6TXiRxxaE5jo7MWGW++z334mSAULFtlDpvXr6hdqe9ayqW9OOysUFJNXtDWWbsDtvaHxARkuJbguCa8YIvbc7tKZB+sgK8jk1ogq72yEG3jU+bviP8Z2+Oa7pfzTb76V5FgCgOGMHwNo9xZnLtYuQmj7sOTrzSF2okpBmUlPUShA2uBKgrOq4Ko1u6JOQK1493R7xMQHtJFaZvAJCezYkWI7SRlwF4yOLMZ9CEYHT9rcLEpK07VPTkmqo6yOQOOkfpi0nmz1XDseAIb2fEtTC/iv1xy+N1UyN; 4:KpY/lD9zdrjlkNpVuz1yBknQQnY783UqUndbD+fK92y1xjCtfna6R//Fj1sAkWxcR+B9UC2BL8hpzhxp9UgKRoNTCgXPCpsG2aleysetW2o8orgM7UL9B6N67yTFMsheZPTMZwi4zkmh8s9NLyxLt7HCru/+q2T8KeYP7Jcr3jrMXbJOVmehoK9tMWelJ/1mo2e1THLoROvcluqtJq2BzFgc3KgJ79WuI1E8glu0cOI0Q9fAAo1zBb2q0pqtL+fGcRsJlr59mZgMMxXr1gwyqutc8zay3XQ5JQYhUO5O4nRDVKKa8V6IqSTA2aic2g1z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:MW2PR12MB2473; BCL:0; PCL:0; RULEID:; SRVR:MW2PR12MB2473; X-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39380400002)(396003)(39850400004)(366004)(189003)(199004)(956004)(7416002)(305945005)(6666003)(4720700003)(7736002)(53416004)(53936002)(48376002)(26005)(16526019)(105586002)(16586007)(106356001)(386003)(316002)(186003)(7696005)(52116002)(39060400002)(50226002)(51416003)(66066001)(47776003)(50466002)(446003)(8676002)(11346002)(8936002)(81166006)(81156014)(76176011)(4326008)(44832011)(486006)(2616005)(36756003)(476003)(25786009)(5660300001)(97736004)(6486002)(3846002)(6116002)(2906002)(86362001)(478600001)(68736007)(72206003); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2473; H:linux-h3ml.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR12MB2473; 23:KEy5A2tW5Lz/xicSk9cI0TkLEXH3bD5qRhq8+dWAY?= gCB9SYKyzSANx+6vEOUt3NNCbIwwQHdlMEwtirkiCu5HWtVNkEAQ+u2LrAPiAW6qriGwoE+d83z4cAmGdll1LziSsQmg2ELH1AsrQDtICIUpWlZNLVUeUnOcKq1PtdZ2FqMs4kfbOhWzvURa2BcR8QIsDo38t5LwiUPSJ72DYeTjUMRSKMgzath60q5jnsFYPO9x9+4ccmO+XtPgcy+FhgpyRk3NU9roXqBhd3EhA82j4KFulqDo319DQPkn9wvq0P3tQJzVXr0n17Ty1hb9ojqhnW+sPNCOdBzcw0LGTfwYVkV2FGVVqdT0qu7MPmaHaTR4sY2R5u42h52/19mtziCr+IsR4ECPgND9dsGY2I2uCVwwSKrsIGkHX5gj/ctKMGztxOTcPLpyfQqze08ODMfZt8PdH+i/eu/GohcIOZNEZPzSuYlBVkq6/6WDALTfnU4Hbl59fxHJsbdgCyTi0KdfUu5LXWUXS2SSa/ZBB/zxjmkZCMdkOwfh0MUUXFqOpeyEnbNpLGKm8pmVJpXi+BPUmJ556mLSezVAHNBliPzI5GO1q/orIGfu50bzTvqKB0rVFQ9A7ZRfATxDtV3fb9kUjCTraWSfQHVpd/uK+ycsbC8xZdZpkaBC6sbeXs43mwWfd44lPnXdHEPsAPSzeYkiaDmhVvQ3ia5OJJHDmWQBi9m4JS5WIIzA8DmkKWLxFO7d5JDpoLsdTH/pVrJ4i1DIAvAWoiUqsEa5DSroEie7K8cOVHYozxM+3RMrUymgz/0Iaes/JUCNAkgWvZyTFKZoNZ3dT9J2UowZ74Pxu+niZayTFBtIyfBlLNcm8I/5+AtMeZKE397KNuUo9FXgXVK+UJ/SMhuOuSBwJRV3Ofw/uozcqDDMQhc1lUbGKHIMka7wU9yD+AEQJGNmUCVJIIfEM2Blhu5ytLe9MLCYw183YIT+9TlRkIxjvfimslsFxMGsoZ3evt5wZsSaerytWFsu1fqziepfn+sUlcU9XRjyipwMm2AENjCfgB6qsIuhjH0kko1lrZppKByJ9f5xTdN5LAW8wV2GqVrLtvHxAr0+LniA65XIWUkRKCwY/FnziC46hd8kRJRXxUvW6xoyNgtUZRJrO2u0hvQg1tM7nvi2Q/n2jpatGv+K5Tk8NmA0oD++yQxEUXzD6dmW4sEDV3EWNY5M6/EjwSGK2+CfNZnqCeWkX/bjmCEVMOEreysU7UJi4Eigd8abJgBzZPTR1+d X-Microsoft-Antispam-Message-Info: IOSDXO5O7tnSuUiTM7YtRyPXFcwQSg8iiaANMgqrnBu5ElBBHrJvWoaIK47GG14xQgnuRYQM76Dozljt3cQLAobAu+Z7s/Fi8g7gZQDX7gADIiMe3Q7luF8XzYfd1VKvaHpB/cQ3ZdHeFfkkoQV/pKA+rvHTDBWBFsz66Omfb1TmRgW12Pgb9pb3sWzvmY5A X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 6:P8s5b9DNiPuEQLOMsv92s6pJHkb/4rbqMtpqD1ngvW+zBJgr/ITXvYj9o2bsmVAXICs7ntSd6EalBPt67yaEwUbnUH8RIATq8ThYmM5jR6Ty0GMg0zzyGmiDwV/mLfVfKRCJvKH8MmeLbPow3iK6TDyWW+1l2b+zlaTl1745g6wjHM30UC+tGIJjF9t1a0Czzs1crcMryIPccncxYvFmU15lJhIqKBQBV3wXxmoNSY6hslqln/y7ZuNHaUoEgssMVyaDQoEEMUXLLN7CDrP/w+ABRp74rS7dVugaA3TX9pGQ+72IZP9guDwk4Az27OSs7QOFPjuuWaHZWLwq0po+t0nZOYpq+MM0TWkDcEEwu5MD6a9rS0ERH4c3GgtgX09T4Giq/K2sm/1DnRO+M4+WQ9pmCPu3tv57Q55TIZ0DYccPa0y8MUYAWv6AoF3ZpeFOu2OilamGNJzrTVh8oS1gLA==; 5:Uyqnaidh7PeI/qMtxG3HdH1LknvoL0LYoknIji0wa3UMKvuveBICeEF01Vw7DRiFddL2AmUw3e8VWD/wtidTK7zDLI3BKhwE3VMmDXvsszMrQ7Zpg5kPquDjlfwOPfhfNzZPCWjLZ2fUpxEykMvaM0MlL5lsvo8W9XGWiGLq4OE=; 24:xeLR0r7SR9WldV4alvW3IBlNskjH6u84UmSDvx7T7P2TQWAVLWBpkJn3huB0u3+Z0U3TKulkBpjJR9GY3d8S9ATGsZF6AxbDra5zmNKTlgw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 7:UwfpqlJzNgECn2TTiWQmzANj6dGOny0SB7N/znHbIqPG1cn3soDB2pOgi9FxkARG4Kf8OV1kUnGNGLk3U0zvkxiigWTRYGVVyVobHuHKcTMx8iPBJprRDKabtQ+mYJtVZslkAp9VMS4I54aId7P3YjJgRZDA0Gq9WM2XNeGYMEu53W3POwIgr/uwc4hMLEUPMY5xzGrFYdYbPmZN/wJ/vlR7tpJ9pxCBEqQJhf9Ps9BHQGSqrRzjLGsfDhwCKBQN; 20:HkvoYxGVl822BJ185czPjFJ0Bo7LhcGRIOse+UtFXVR47ZEKWhNMiG08WrghKMg8GeZHu0GCQuxxBNYA8qZUWWtI6BR34u+REgvqazwKmE1NmrRIvjI40q2bG5GFNS3k03HzSDCBktXtYb59+4zRwzAA08LhPT3/l8z/IHrEKQekiCLcZVrbXMlmKHJwDBZIJFS+sxQL7/9hz0P9C/1RqzjtygKUkUP5+oeFxmAlk+WH3tPSak+wJQzGHh6EvLkd X-MS-Office365-Filtering-Correlation-Id: ab95a4c7-7f88-451b-05a0-08d5cd9317e1 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 22:56:37.7806 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ab95a4c7-7f88-451b-05a0-08d5cd9317e1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2473 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.82 Subject: [Qemu-devel] [PATCH v13 1/5] i386: Add support for CPUID_8000_001E for AMD X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Add support for cpuid leaf CPUID_8000_001E. Build the config that closely match the underlying hardware. Please refer to the Processor Programming Reference (PPR) for AMD Family 17h Model for more details. Signed-off-by: Babu Moger --- target/i386/cpu.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 1e69e68..86fb1a4 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -427,6 +427,87 @@ static void encode_cache_cpuid8000001d(CPUCacheInfo *cache, CPUState *cs, (cache->complex_indexing ? CACHE_COMPLEX_IDX : 0); } +/* Data structure to hold the configuration info for a given core index */ +struct core_topology { + /* core complex id of the current core index */ + int ccx_id; + /* + * Adjusted core index for this core in the topology + * This can be 0,1,2,3 with max 4 cores in a core complex + */ + int core_id; + /* Node id for this core index */ + int node_id; + /* Number of nodes in this config */ + int num_nodes; +}; + +/* + * Build the configuration closely match the EPYC hardware. Using the EPYC + * hardware configuration values (MAX_CCX, MAX_CORES_IN_CCX, MAX_CORES_IN_NODE) + * right now. This could change in future. + * nr_cores : Total number of cores in the config + * core_id : Core index of the current CPU + * topo : Data structure to hold all the config info for this core index + */ +static void build_core_topology(int nr_cores, int core_id, + struct core_topology *topo) +{ + int nodes, cores_in_ccx; + + /* First get the number of nodes required */ + nodes = nodes_in_socket(nr_cores); + + cores_in_ccx = cores_in_core_complex(nr_cores); + + topo->node_id = core_id / (cores_in_ccx * MAX_CCX); + topo->ccx_id = (core_id % (cores_in_ccx * MAX_CCX)) / cores_in_ccx; + topo->core_id = core_id % cores_in_ccx; + topo->num_nodes = nodes; +} + +/* Encode cache info for CPUID[8000001E] */ +static void encode_topo_cpuid8000001e(CPUState *cs, X86CPU *cpu, + uint32_t *eax, uint32_t *ebx, + uint32_t *ecx, uint32_t *edx) +{ + struct core_topology topo = {0}; + + build_core_topology(cs->nr_cores, cpu->core_id, &topo); + *eax = cpu->apic_id; + /* + * CPUID_Fn8000001E_EBX + * 31:16 Reserved + * 15:8 Threads per core (The number of threads per core is + * Threads per core + 1) + * 7:0 Core id (see bit decoding below) + * SMT: + * 4:3 node id + * 2 Core complex id + * 1:0 Core id + * Non SMT: + * 5:4 node id + * 3 Core complex id + * 1:0 Core id + */ + if (cs->nr_threads - 1) { + *ebx = ((cs->nr_threads - 1) << 8) | (topo.node_id << 3) | + (topo.ccx_id << 2) | topo.core_id; + } else { + *ebx = (topo.node_id << 4) | (topo.ccx_id << 3) | topo.core_id; + } + /* + * CPUID_Fn8000001E_ECX + * 31:11 Reserved + * 10:8 Nodes per processor (Nodes per processor is number of nodes + 1) + * 7:0 Node id (see bit decoding below) + * 2 Socket id + * 1:0 Node id + */ + *ecx = ((topo.num_nodes - 1) << 8) | (cpu->socket_id << 2) | topo.node_id; + *edx = 0; +} + /* * Definitions of the hardcoded cache entries we expose: * These are legacy cache values. If there is a need to change any @@ -4120,6 +4201,11 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, break; } break; + case 0x8000001E: + assert(cpu->core_id <= 255); + encode_topo_cpuid8000001e(cs, cpu, + eax, ebx, ecx, edx); + break; case 0xC0000000: *eax = env->cpuid_xlevel2; *ebx = 0; From patchwork Fri Jun 8 22:56:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Babu Moger X-Patchwork-Id: 927070 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="ThnLgIrT"; 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 412d8t48X4z9s1R for ; Sat, 9 Jun 2018 08:57:32 +1000 (AEST) Received: from localhost ([::1]:38395 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQK0-0005BI-Du for incoming@patchwork.ozlabs.org; Fri, 08 Jun 2018 18:57:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42885) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQJK-0005B0-Kc for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRQJG-0002pT-HX for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:46 -0400 Received: from mail-bl2nam02on0082.outbound.protection.outlook.com ([104.47.38.82]:53152 helo=NAM02-BL2-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 1fRQJG-0002oc-8v for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:42 -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:X-MS-Exchange-SenderADCheck; bh=2wcq9oU64GJ1wYscscWE7pRVTOBZL9MkP7xFtD3MVJY=; b=ThnLgIrTCNxTgI49lgvzImNshbE1p2881KvWcJqRav7RZgyah341jTC8hPyLkHdQGwdM/+n96fkpS8EvoBiTR4ULi9rGzky62k9nzl4uG2XI+4oa9K5qmDuRFHFad3ExwYKCSX6bEL1qbluNAKX13KZifLHOlkyd5EicqkVZpEo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; Received: from linux-h3ml.amd.com (165.204.77.1) by MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.14; Fri, 8 Jun 2018 22:56:39 +0000 From: Babu Moger To: mst@redhat.com, marcel.apfelbaum@gmail.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Fri, 8 Jun 2018 18:56:18 -0400 Message-Id: <1528498581-131037-3-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1528498581-131037-1-git-send-email-babu.moger@amd.com> References: <1528498581-131037-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0401CA0034.namprd04.prod.outlook.com (2603:10b6:803:2a::20) To MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR12MB2473; X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 3:Eo4C9Oub5KFvey0LwjLH8kTx5ZVMv7Dp1PxxgwxWM12quq6Blsf9oq7r3pt7N6xszycfv2X0r7EXgwHdEWPp8o0bsDyXXYZOYNgIpuhcZoklxi0oHofyIpjwgvnrPquO2JCfluh62lrJji/dBuJb/J0a/Dtwai7/Ghc7nJkA0BiLbA3i46QWOnE72tEjaapWhbb0jDInX8NsabhH+45OOcePMmRVR2obn1P+o6CaoL4PzXwge6N4ZD8yL1GzuPlA; 25:pyzmvbBPuPhOcuE9RDRiTP3UKL2F7upb0IvmLo+mFuIKyULWxAUez7HkHTPnGsqHIi7naDugQ4AclJRCgLTHoRjqLbvpznF2Y3ZS/gKqoCS/s0q1MxVuod1SDsh+I6kHyM1aLRXzsHAFYBHYjToQJ5b4VftBeX3AlVqXJL+sY4wSPK2jpVz+0llIpNhPbYeanDx/gPpubiO5VoMQX+TRFGc3TRBqT2LpvsYSqJtA3FRKPq8jvhvFfXEuCxCGMFzTR80FRGjPhJyN0qHbl5ZVVHrYPrEmSfV9FszXquT4S9aI7F3SDRm8QHXyy1/TLsFSJ6fZQxazGWJd5KXd7j96Ag==; 31:HPTK+50W7mO7UAlkKua1OuUcPXBAyyGkULYBiUVIOiQfSWlHISR1imINcEY0Vqp3ucFRDf/jYUzbMcM39s5AJU2wDMVY5B8TlEtnCp4rrYhKau6cUhN4JB+MMKdnTGyTTuTRp+YJMHZVOPcYgZmGrl98uqhvofFR8s5ampPjlXNr250BUAKlD9EnHSWWneCJ/vBsdwQwAEEzUnudooW4lrwpXHtxyu//abUOdxOAFnQ= X-MS-TrafficTypeDiagnostic: MW2PR12MB2473: X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 20:wCt2kuvvgbCvq0RWlsgjc9Bnd+BhrFJ3tj/pvXQ+pMat7sePHKlBdzRmf907OKPvvTkIE6BUzoBWTiPpHcp8dW6Ntw/Fxc7XAmu5w7H5LmIyOZJyPrOEj/1cJYGq5dDKduGiOXPcGHBw8KR9oPHU10gAprVhk85va3t6Poaw9ThxlBheujWZ7Ky4me5DzIyDc6WwaHa/bs3pQPoiA21PBMAdvpkkJvoiCt1RTct4GZHDvPIvCoSC8wkY9wuexL2/WM3vIQtcjwDfjfI0xpyBTr2lBSVAeEce2H06unuQAHOSmn7j78muGL6U6Ps4BbtPBkODXe3HsTD44nuyPbvn5vtKArJTFjFG4cEy9F3ZWjjM0DvTPUOvGkhwAfGNqF08i6viZs57i1gV3p14XjYghhWRteLIuwySpDLObONYdeXOoXSO71WZVlQGoxcWrQDaR22elhZ+LkUFSoTnxdwVoYvADW6ahafoR3z7TKgAMWvQ2baD9TN4CbTpQc02cAvm; 4:hF2+hiCOZnM45k/vKG8JzGxfM4UE7+7EcB4pQSB0tTdVng+INB5Cn2O6UjQKudn0pNkwlpNOMdDY640hswZi3r54ItXlaumwYKoH7Hgs9y0fRMHkcF2x2kphJzojgTnhw10I8y8rhy8cApvjInY4HwknBtgXJeqdBLESPS0Ygd39NRi5EEn9ezJKdB1x5cl7exloh6XD/lZMvP+AQo/7vWtexnzHehLvP1f0T2PyUu/Pe+rDuUV5DxLloqCa59CSv1kFPJ3w+n9+uTM6J3nIG1YNSl5KunFRtQgeNGnjRqZnQ1Ps/pHJVRlApOxg3+3BTTDxIezRD25ieHgNOcsupw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(28532068793085)(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:MW2PR12MB2473; BCL:0; PCL:0; RULEID:; SRVR:MW2PR12MB2473; X-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39380400002)(396003)(39850400004)(366004)(189003)(199004)(956004)(7416002)(305945005)(6666003)(4720700003)(7736002)(53416004)(53936002)(48376002)(26005)(16526019)(105586002)(16586007)(106356001)(386003)(316002)(186003)(7696005)(52116002)(39060400002)(50226002)(51416003)(66066001)(47776003)(50466002)(59450400001)(6306002)(446003)(8676002)(11346002)(8936002)(81166006)(81156014)(76176011)(4326008)(44832011)(486006)(2616005)(36756003)(476003)(25786009)(5660300001)(97736004)(6486002)(3846002)(6116002)(2906002)(86362001)(966005)(478600001)(45080400002)(68736007)(72206003); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2473; H:linux-h3ml.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR12MB2473; 23:eosNrgOp8Rc23cUzlMo4jkBdPAhIaE9rWE9oGKU2V?= V9bYqewAoZhYLtLUCH7yi9TNJIP4Xu4EgQ3tEvfTY3+3uhPyxmuhnvmDmZG7XNY2yL4gGqvBFmd+49W4pTsHmkDa+STnTFGyVG0gMmnP5sp94mLpGNIJ/t7QQpjiBlBjAJ/3KR3giyE8pK/+32Nd61SLobugCnGnlnnzwKdj3uP0ACnAmb/olv7QJWkCo8CxsCPZvJXaxJ0Z1j/1yqivgaewciMnbYLawfqN+ssk+M4rqyIUYFZWwuGGMAT11LMlqPru+0WhG+9F/IzCf7bYecajCWF01PDMjBRris2iKq/WbWsUzVa3r+QJwox+3WMy/4ZGFYmJusIVUx9PHip4vsNJATl4pnv+osN4+jXVQ7x/WxUsmpe7Z0KK7wq5Ch9/fOxc8+MQInsFZmNq/jOp9QFiqoIRJdVUONS93KPRJIOhM61Z/4v/FNSm4v2QPmFujNvMElAcKJrbULmaCns2TJZj/WHSh46VZvAI1FI3Evmi3RlhVQVjbQAokNGEEPZx+TanifVUUg5PDqFMuLhtdSzuIGCdClVyXmSZMy1FGNWdz/9FYMWLt0Vk2eOI+fjMyBfDDevMh4FKqTIzDQE4t7GZarLbPFT9m87P2c1tszZyq29tClMWPKOyILvSui7MPPWyk4bC5b5pZ9kI/8MONuYE1k44A3LgWb+T/2dmjUh8wGlVPwvDlqKkcbLoGMGi4oA/cuznEhLBO2gY70mgH9p0D3GD0+qRFOKSQpEugaKZ48DtobZv+4KmjZJwUxagzWr7bOpGY9r8mB1dgYfp8gjJc8DrwHBGZeYHoH4ZCUCcYnLM+jj8n0GJHwM/rweW1mfKfJ3w9eJlZuhZW3yzh1GvKsdLrz24RMJzYJefXUYD1kHhjVhvKi2BkeE8b3owRKdSITTXk48kDgxUEETGarMxgquaJYfqlBgw4vJ8nJwAGg1dvjvIkv4+i4DP5/oxp3IAddrkXErqaFFCZ285VOnt8QsR/eT7KG0om5UGHSkFAeuP4hztw6T/e0EooEzqaDuc9MpNNcQV/K1+dEwc6Lblw3wdMzlaBKp4rpV+LfKYp91DOVi8WlaK/iW3+2EexgV0pmZ2fVLNoeqSnb+KZjxwBDL5VI6FLz0g9sRb1RnJKoZ9sCmtxhqIb/7XFAkjy5LSRa0athn9TifUSlyOQHLRHothyTFmtsLVX4evFWEt5sSEpqIWMYIRPgCDIQ29PvXDYVKNOXP3tIgmQ9RONIewLWUu3udlcT5rpm/gcOM/XlF9TqCdNpfdxfuVRjajfU951X3ItKIqsEUlgSBCEveKpAkBdE3GpJqsVC53inbIQ== X-Microsoft-Antispam-Message-Info: Yt7PRjb5z/iEFd3H0wVkwVjbwQsRz7AzRmaM1TwCleAyT6rzGEK3nYizo/Re+lGAm5aMwG4cFh/EessYal8uqa1Y7it4OWR457b4F6cBNu8jyIgU0SlzeCfLxa1r/6qgv1v5sdMHCLNJSMdwh7lx5ZJPicbFUQIBZNhreotzz4H47QsU+47I+yemlWcs17Yv X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 6:0+fiV6nMJGcW1pu51fjxX9ubJx+X1lZkwq7FTHo+/YKj+NPBwD7bSK+CXoKVJKZKayP0Re1dRHi/8YK71hFlhr3KX4YTrh4J2WphyTs48ITOSlXDI4S/DumJ7eHRvAa+hHG2X4KMEiBF39zVGJfQYMaoOTl9cDsfwXTlWt8elG3DAn1MnqwAILJuDnwfZlPukhSCcfmRx40/l02lQezqu1DPwuI/fqUpy14OUDZ8joHoPmbkKv7Xq97UYNTBTLnsExyd2R/+ydFwB5y+Ecf2CTI5wxWVoL2nmsMTlb3/eL2NEN4e94iqHjgzumNnpWG7YEJOX8+XF6GApBDg7F4dI6+I1V3KdyuXucBNaFa1hL9Ymlg7RosyUdcbQ25Z3oZeZt8RgrQ9ydmzhw4u335JDyMWqr5m0o5qSLIpoxCj2lnXRaw446Tafcm8t+xJ4FIorTAn615ai/d/YvykcP94OQ==; 5:0/Mhl421x0oJyuQcLQh/DG71slqBqOogIjoTUbRhoBtGiRZswSR3BJbm5F1UdjmDMXdR0l4lgp3hs6iCXAv//I0Kuz2JK7ojS+/wcDDU3c0iR9DzIs6Erp7QKXVChCs4cOz5UVD/PpefF7N+Y7XAATY6o1E5dKYjctKeQkZMgOw=; 24:1v4bu7lWGBWFtPnz91zSQZQxTgx4COvQBIqTHen4TKJbUczlo2XZ0q3qekziY1fGS+SnysP/Qav3NhcEgEA3xc92Mu6ZZ0xih/rGJu0I11A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 7:mtWQpNibWksMX4xRqaZHJEvpstsD63f8r6WDO7TCISiyOGHMl2cRyvN8N7mI0ARkrs3wjkfrWximzmSXx4sUwc85LUkjG/WPw7kiZrhjUDh+QSQz8utSxU/nGrxSBIIrSpB581qKW53vh+g6Xa2CQj9YbdqpsScmScNhzveKsOOut7oGKyfBdXLbyxgRjb5c5/Uzj5IaVgm44pF/bM3rtaoI7ThvLkj6sIzuRC6+w9kCBdDb+IVQsHyVH1aYqrpX; 20:0OLFDKwvilUH6DpPfKwCZPbmcvUYaaVm+lku2gLd5AlbRxlY9w+H3Q0NSSyAWp0QSPHFbS56I3zwxlU/Ar9jRnWqm9KKOleDLHCmbTqGtw/hEWlpaGQrx8lKNi3jmu0TiLU8PFgQjxTjo6fqTqwauuzN5JBNnr+1NaArFZfv+bJ8XsMACJfLlHAGPusZpBSf+rIltF+MLgTclPrlhWebySlyzseYnI0TKWl3pF8lp2bNtSBBb4GACb/trywMAJTE X-MS-Office365-Filtering-Correlation-Id: e248b887-4e48-467b-90bd-08d5cd9318ac X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 22:56:39.1135 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e248b887-4e48-467b-90bd-08d5cd9318ac X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2473 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.82 Subject: [Qemu-devel] [PATCH v13 2/5] i386: Introduce auto_topoext bit to manage topoext X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Introduce the auto_topoext bit to to control topoext feature. Also add new field auto_topoext(in X86CPUDefinition). This will be used to enable topoext on newer CPU models where topoext can be supported. Signed-off-by: Babu Moger --- include/hw/i386/pc.h | 4 ++++ target/i386/cpu.c | 12 ++++++++++++ target/i386/cpu.h | 5 +++++ 3 files changed, 21 insertions(+) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 04d1f8c..cc30ec3 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -303,6 +303,10 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *); .driver = TYPE_X86_CPU,\ .property = "legacy-cache",\ .value = "on",\ + },{\ + .driver = TYPE_X86_CPU,\ + .property = "auto-topoext",\ + .value = "off",\ }, #define PC_COMPAT_2_11 \ diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 86fb1a4..d3411ed 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1283,6 +1283,8 @@ struct X86CPUDefinition { FeatureWordArray features; const char *model_id; CPUCaches *cache_info; + /* Set it if topoext can be enabled in CPU models */ + int auto_topoext; }; static CPUCaches epyc_cache_info = { @@ -3517,6 +3519,9 @@ static void x86_cpu_load_def(X86CPU *cpu, X86CPUDefinition *def, Error **errp) /* legacy-cache defaults to 'off' if CPU model provides cache info */ cpu->legacy_cache = !def->cache_info; + /* Set auto_topoext if both machine property and CPU model supports it */ + cpu->auto_topoext = cpu->auto_topoext & def->auto_topoext; + /* Special cases not set in the X86CPUDefinition structs: */ /* TODO: in-kernel irqchip for hvf */ if (kvm_enabled()) { @@ -5382,6 +5387,13 @@ static Property x86_cpu_properties[] = { DEFINE_PROP_BOOL("legacy-cache", X86CPU, legacy_cache, true), /* + * auto-topoext property will be used to enable topoext feature. + * This will be disabled on all the older CPU models. Will be + * enabled on newer CPU modeles which can support topology extention. + */ + DEFINE_PROP_BOOL("auto-topoext", X86CPU, auto_topoext, false), + + /* * From "Requirements for Implementing the Microsoft * Hypervisor Interface": * https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/tlfs diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 89c82be..8783d36 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1409,6 +1409,11 @@ struct X86CPU { */ bool legacy_cache; + /* Compatibility bits to enable topoext feature on all newer machines + * Disabled on older machines. Enabled on newer CPU models + */ + bool auto_topoext; + /* Compatibility bits for old machine types: */ bool enable_cpuid_0xb; From patchwork Fri Jun 8 22:56:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Babu Moger X-Patchwork-Id: 927075 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="gXZeP/ds"; 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 412dD150W6z9s1R for ; Sat, 9 Jun 2018 09:00:17 +1000 (AEST) Received: from localhost ([::1]:38407 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQMh-0007aC-DK for incoming@patchwork.ozlabs.org; Fri, 08 Jun 2018 19:00:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42910) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQJN-0005BH-7E for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRQJJ-0002qh-2r for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:49 -0400 Received: from mail-bl2nam02on0076.outbound.protection.outlook.com ([104.47.38.76]:45120 helo=NAM02-BL2-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 1fRQJI-0002qK-S2 for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:45 -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:X-MS-Exchange-SenderADCheck; bh=seqlIV0Dc2ch7wkwEmh4Ogs5GXyjyRMpz4UZlKL6rQ0=; b=gXZeP/ds0QQDOFOS52tv6XPfqqiGSqp6BaG5L1ZfXXhH9ckLacv6tQabCi0GkCHT4ZmvPoDHuJhpbCM+nvPjCrMB6dyd2+/OxU88hvnVb1YRZP2yNfv5cuuAOqxgC4+sFYRwCZbTu6jx8nym9kkVamIONVlxZzW2aocAHOrU5IU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; Received: from linux-h3ml.amd.com (165.204.77.1) by MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.14; Fri, 8 Jun 2018 22:56:41 +0000 From: Babu Moger To: mst@redhat.com, marcel.apfelbaum@gmail.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Fri, 8 Jun 2018 18:56:20 -0400 Message-Id: <1528498581-131037-5-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1528498581-131037-1-git-send-email-babu.moger@amd.com> References: <1528498581-131037-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0401CA0034.namprd04.prod.outlook.com (2603:10b6:803:2a::20) To MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR12MB2473; X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 3:AYc8opow2RE+j/MSivG2hRCbwPGQ1Wm+9BtuE+tmAV0OD1xkvLeCnCGWOX2XSxitVIf6xTh4msORokM0LlkcNt8QnsHlSDJqqzPzDX4kSm9huBMHBTuxfw5ocyRKUB0ZJN0P8wWEIQpkCxf2wzhkF4hrfqTIPgEEo2TISETyXccEmzqi93vCwui68YVMZDbO8MGSTkp4dzuhIn9psCxxB8LCnjw7Zbxn3dWtjFCSi0i2G02Fj0b8XLR+SRaE2lxy; 25:OFsqMY/3N9mzfwNHGW/RCrJpOCJhJPfiUlY5NEy+gEkML6FgLpcraD2+zqt+xg/3IRL/to0/EjyRa3SZWbIX7QWvRdDdDcZm8tgnGxjHmklJiGu8QEG1xfGORmHIj6k6dX71Wim6t73fCkVxEzARq/8pvARevoUH8m2V7FUKNRdkkPF7Al6aBAaejHViiPBnEcO1c2W/ZzIiOnAU8GB/SLHAJ9i3stWTpazsCtJuKcWYM9/tnHKltzNv6jG+jq97WJwNenRfDdCmIRRSruZ81txo29+xOiy1PWD8/ROo5VxMHvv+r9SoDgryw3dRkro4SRNHxGY8SO5/sTF8X+gPAA==; 31:Sp3ERgZeK1OyQBZnMMEGKw/Af57/8cyw92o4MXEUTHoHoFVi0/BvFAsc0ge23bI3nG2r6H0m+WDj2boq/nN96frM6fDMdu7uXQTJbW5lhcASZeFt8G7vIKWtIONWYcjyOBa0OvjZ7H2MuGg2NKiLqtRd6voo3wCNtndKd9klkBYBX7ODeSJ42i74ztvDzqoeVeJUSESYL/StV61VJF1cCYEGHs9EMx2o27nG3DGGU4A= X-MS-TrafficTypeDiagnostic: MW2PR12MB2473: X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 20:88N1ogGIh6YeS9743x90P1aRfj8GS8i1KaWJATWIcztqbs2EhuNS6cnblcAj3hmptlLdr5yHFjL+ozv8DcarjmxT3gTK+RIVRD4ya+S4yEAuw8TAdmYfR7jbL7Hcsysra3OJlZakc64k5k/PkczTcDyciFdl2bU6IvP2c9AzipCN+gdO9ZdPR3DXibud2DphgtsyoqIp1ekudt8US9ZkxGJs9uoc7GpJ2DXeW0f5oEPb+UqFkbU2jwR0sukRSeoUu8bLR229cZGaae3li8LYy4S51mdU4n04Tivjq4rI/55JXCPZuKTCM3+EfXCNZpFC0FReMEAIo/dlnP+r0zvw7GtxxpKp3eRKeaeTxGslQgm4jqlqBlV+LPwiyjswqWwgVQczuG+wU80ZsYvBrJe2Tzv1FsUwMebgfOruJwuO3be2ASF/Xd0xvDhAPreuwQ2EW0IyMMoVWetGtoeoG9LXnOeYgZhgCNCqFwEyV7WMBEc64ave+yvOvqKi5KxAOP+6; 4:MrwLEtUOd3O0z69sYJSeaF/m60Zkqvz6pWVRO7FxmGXX/zoneh51r9xjSMOB/OX4zRHSbf4dyPjcBTY1oUq1iDNl7rz0WHl3nX3POYIo0VGD1BnR7ATBBt7Ns0TEb0hc9gk5Pa2rmdkbyj5wS1f+ibPr6cpAcZkCQlKwLUae+tOgewHYgEabFFDcfrrbysCaubaqm0RJ0E8idlzkmKZ5KXPGfSYWbqiqpnZ++Ikf3AjcMd4nnbxMqLntEWaWXS3AZ5S43VuH0XhUYlNGiZaUNYps6HlriVyHsRsUCcWMMsTo03Bc8I/XYXd8wGPhM5vM X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:MW2PR12MB2473; BCL:0; PCL:0; RULEID:; SRVR:MW2PR12MB2473; X-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39380400002)(396003)(39850400004)(366004)(189003)(199004)(956004)(7416002)(305945005)(6666003)(4720700003)(7736002)(53416004)(53936002)(48376002)(26005)(16526019)(105586002)(16586007)(106356001)(386003)(316002)(186003)(7696005)(52116002)(39060400002)(50226002)(51416003)(66066001)(47776003)(50466002)(446003)(8676002)(11346002)(8936002)(81166006)(81156014)(76176011)(4326008)(44832011)(486006)(2616005)(36756003)(476003)(25786009)(5660300001)(97736004)(6486002)(3846002)(6116002)(2906002)(86362001)(478600001)(68736007)(72206003); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2473; H:linux-h3ml.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR12MB2473; 23:EWu//VL5XtYis34+hTUdEbldDSbAjLUhU9cjMnekV?= z4rCiwqDUq9eDXrPpJwBD8ls2w+3zCRlCgQ1dHpNK5AvMKZCQ7SC72MGWoW90hZqwauR7miaK0alzHx5MKXMDra+t0PznKkHO6edfXOFjoh+g5Amg//MqjMUTM9vOkGO6t8fUfz9QW3GwZcDUCJgEvjE3e/jtMRNlR0fJNegtsAwz2eEXQ3TR77lb2+ty1iaWVA61CfHLpAiGYjmX4v6uBE8X53svkn0dhezeGsbXezoPk+ti+JIS2EtvJkeRlFvdQzjMPtQntCN7vC6Xsf0gQd1N84MBf5xSwyOzq5dswTczCQKmCZUZM2BugPn/LlTiNEF+NYK/JXI0R4jla3KksKzlWV26S/wj10lGSwtaT8VKtzuPWBNaNsbpFsfrt28Z57shL9fzWhWSlj4E7uDUK6rCWipPbGq2IC5G3hMBpSkWOA2m2vGj7t35eLMiXh/Sq2rnjwDgqFpq1XkDwoTB7Lizn3sZohd5sSKPmwbebH6V3gSVG4wwtglnJyF33qIrbsC2bJJjIYwdWW58CCubkT+HFhZFCuScOLC0eQGJ6Cz9tIsDCyxCvH8FI/GPsxjYiU4Bquxz7sWKw9DdexI64zBgJxutSRRQKIAXVxQDZtuHthPcDjhksYy9F67tUys6GclNqqO/CiTPhP/hMhIcpRQiA24H9BEZi1VojTFdRfDzlTf23xY73ZzU7hQ5VhbGG8s8Nz4YXS2+R4TLLzSNxx7FZZcUPVYE/eY9N+BceW26DxIZ+fKwtTOJrm28ndNRghXuhrMVotu2KN5Wc2o88+vx8jVt9w6/+R4lAb7TkFJkL6stvpMpEpXk2n24BM/A40W0BJ1cc1y/C92BZJHSDYFwmQLb6chO5fn7MVCl9QLTxOsh+eZ2FQXXUZnqgjwtD26Bv3JhWDmQWeUlycLVY85mxZzEHRmGi+Oa6QO18pPjQX1lTC04+/Je5/UBHWySqVd7qyosFe72ZiQtzoDa/txWOLk6JY3+Mu6dsNsoA/Xzxj1hR48qNT3Lr7cZQ3ZPdm26nK9veBy1ktq1m4E5jY4x8Li10BW/121bcZOpNVn4zcPlVrlIpK+EWNOE7vmuMaeV5CCArsq7Z3Sj51YF0uKf5I3BGYStenqD7L9wMG9hrIz52RxnEN36cFEqaCvyLw8lLzyCnHVGM+tVYJ8hGBzOQOn9nAFkfncCecrpZ0B0+60qZNEJ12VsEB1ebNxETCpyd2T4+zKEATpXJT5t20 X-Microsoft-Antispam-Message-Info: f5gpBlaXLGj5Nsx/fiODY5HUGyUSUBGkWLnBNId2K6iI9K3a56i0ToXNQBtGw0i4dniQETes4TtiM8LSdvt6UevGBGBGwY0F7X4dTcZ5zmXnVnqfMoUsQkzv+eRjWzHgt50ujhDbHcIjVHRYUcNLet6y3kbWyy2HLr1GwqMrxcEVjUNx1k+Nn22LWKNfUmyf X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 6:EFK+nFEwqHUl32UrOdUFdANdQ9kmkPqVkSR9zjjkEhuZrz5zVaadQ/Lsv4peHeAuFSasrIakD+3a5mJnb2SI1h7I3Pffe6fySLIrl27N6HI1k7sun43iT7PWGy/6x9P9CqeSoATINM0lhv5vjFwynVdm2Yj6R7UoHutjKLl8OCee5Nz3/gIe64e4aDWpZUbF8AdlRdAOhXq6jDrF13bRkLANbqp7BbHDZMm82vsw+6ZtUwkdODRT/YS74lKuScJF4ZnGfIp+1JCdvA2nRs9MRgH0Hue2gzXdaM2VPmSUlGqnL42PY++P7xs5605qrTPkT+lsjMetFiF2rqEFTUImb4hrPZ1NzDM23bahCfIBZXHxiBKnfHfQktcBhda2Lu+YmbnQSEOPixm/5SXuz7cMcWP2CdKkVSaAA53QextLAv6IQJu2AAp1T/9ylIOdI6GgwPODoApHi783vWvbaQ66Ag==; 5:mq6+28NjUsV4cOpC7z54zbbAyRqH3Hesa5eIZ+Mg7T74mYzslHYTLp1G5h0j42aL/cyADLhCD5HDkeRlk57pquw+okS6Wlq9/zjZW3jLrGkaDuBbzBxsRlMQvX/cFfgBq/ZX7mnSLKHHmmarizliIJsKjmDQe2Ee3qvvSMAcjaI=; 24:ipn85GF6QJBpIad110+kwnF1xON+5R851ICxog/D0c7LGBluwjkP3815tixLQNxzfQMBMcTIGswR/2vpdH5J4ek4yTdFFtH5OXG9f1n4u4Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 7:8AynhE98VWQBz9w0vuzsNjMyYsiuRM588HKySpqeh76srYAh4XBoW1x1h8gmJV1jT3GB6tEc4zhes56jigc1q6FByhDoSAxqXpwKYgGeAoEN0cSUxq5xni2Vq09Bej89ZdHZdkoO4j0jAT7ZcCgMq/hVZX027IwLe/Uu8VbOteu65UPlPmo8Vo6J+uEBVv+ZC6Hc2KIA58uKDH+JhIaUzvJ4ZNDp1BEsYBsoSon8br+m9iBl7mqsYabDgZAB5KA8; 20:rnCNVn5pMM0GWwZ3ypHgOl/T6pOF5qSoPT9ds4mMaO7A3633oVieoe60bdiqnmzOejMwnWqJeCOrFrqUQUu3wmbauYsTLIQPS/sSCmlLBnfPhZavR4tdz2G4CP3cHqSUrSwZuqeEr76L+3n52bcdjPXG0nNCRdZGWd+h/W3b/EZnEMXRXGA49j0IKNOMF1ZJu9Q+4jskbxTtglD0h+d2uPwjCfHnGuNqr0ybyD7CZw7p7FkcjxTxqmPQavrIFGQc X-MS-Office365-Filtering-Correlation-Id: 476dda97-bb69-4002-7290-08d5cd931a40 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 22:56:41.7584 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 476dda97-bb69-4002-7290-08d5cd931a40 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2473 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.76 Subject: [Qemu-devel] [PATCH v13 4/5] i386: Verify and enable topoext feature if supported X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" If the CPU model supports topoext feature, enabled the feature automatically if it can be supported. Signed-off-by: Babu Moger --- target/i386/cpu.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 4dd9a82..88bc73d 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4763,6 +4763,33 @@ static int x86_cpu_filter_features(X86CPU *cpu) #define IS_AMD_CPU(env) ((env)->cpuid_vendor1 == CPUID_VENDOR_AMD_1 && \ (env)->cpuid_vendor2 == CPUID_VENDOR_AMD_2 && \ (env)->cpuid_vendor3 == CPUID_VENDOR_AMD_3) +/* + * Check if we can support this topology + * Fail if number of cores are beyond the supported config + * or nr_threads is more than 2 + */ +static int topology_supports_topoext(int nr_cores, int nr_threads, + Error **errp) +{ + if (nr_cores > (MAX_CORES_IN_NODE * MAX_NODES_PER_SOCKET)) { + error_setg(errp, "TOPOEXT unsupported with %d cores per socket", + nr_cores); + error_append_hint(errp, "TOPOEXT supports only up to %d cores per" + " socket\n", + (MAX_CORES_IN_NODE * MAX_NODES_PER_SOCKET)); + return false; + } + + if (nr_threads > 2) { + error_setg(errp, "TOPOEXT unsupported with %d threads per core", + nr_threads); + error_append_hint(errp, "TOPOEXT supports only up to 2 threads" + " per core\n"); + return false; + } + return true; +} + static void x86_cpu_realizefn(DeviceState *dev, Error **errp) { CPUState *cs = CPU(dev); @@ -4953,6 +4980,19 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) qemu_init_vcpu(cs); + if (cpu->auto_topoext && + !(env->user_features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT)) { + if (cs->nr_cores <= (MAX_CORES_IN_NODE * MAX_NODES_PER_SOCKET) && + (cs->nr_threads <= 2)) { + env->features[FEAT_8000_0001_ECX] |= CPUID_EXT3_TOPOEXT; + } + } + + if ((env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT) && + !topology_supports_topoext(cs->nr_cores, cs->nr_threads, errp)) { + return; + } + /* 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 From patchwork Fri Jun 8 22:56:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Babu Moger X-Patchwork-Id: 927073 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="X5Wy9fF5"; 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 412d8w5kxPz9s1R for ; Sat, 9 Jun 2018 08:57:36 +1000 (AEST) Received: from localhost ([::1]:38398 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQK6-0005Ev-FC for incoming@patchwork.ozlabs.org; Fri, 08 Jun 2018 18:57:34 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42922) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQJO-0005CN-BN for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fRQJK-0002rG-D8 for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:50 -0400 Received: from mail-bl2nam02on0065.outbound.protection.outlook.com ([104.47.38.65]:43104 helo=NAM02-BL2-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 1fRQJK-0002qr-6I for qemu-devel@nongnu.org; Fri, 08 Jun 2018 18:56:46 -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:X-MS-Exchange-SenderADCheck; bh=FWiBeBsfhf6HECtbM2qSC8HTfXeDgHwkt7ZstxlyeCY=; b=X5Wy9fF5gKziriI+ECF80zIYX4lTpA78HadAR8JspIJZfb1vISyIVEiLBuMfe0SosUqt9ujvLnwxvcPlduWgvm63bRcLI7cLXDuZvzKOrkqMa9v99Q5ANzPFeM0z1VoyVXPToon50z6eS1ezwocuzGgphDkOC0no+gHxtYkJJHU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; Received: from linux-h3ml.amd.com (165.204.77.1) by MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.14; Fri, 8 Jun 2018 22:56:43 +0000 From: Babu Moger To: mst@redhat.com, marcel.apfelbaum@gmail.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Fri, 8 Jun 2018 18:56:21 -0400 Message-Id: <1528498581-131037-6-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1528498581-131037-1-git-send-email-babu.moger@amd.com> References: <1528498581-131037-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0401CA0034.namprd04.prod.outlook.com (2603:10b6:803:2a::20) To MW2PR12MB2473.namprd12.prod.outlook.com (2603:10b6:907:9::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR12MB2473; X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 3:sgUVy98S2nORNwr3rus4scpV55psB4It6DDgT3Q8sa4oSfBN0Z4kinf7hwelLSDpqTqHlq8zhRARK2+pNaEyl6hdSnQRTuwDFfxas/Y9pfoYHRGKUjWVlnOoJTm9Gbyo2TGstRcYcVx6tPjFFqqcqVyUl5lUvkU8lTC+2sjROuErSqCvJ3iVDiG3YDubYm5VdLwtYALyJfrx2tTs792K5NQJS6n6qEpjhWHDW371G3NZ/i9HulDDxAA0kOsXqG35; 25:YttUoiwrRSEjbgQDiGmsQLKC4sc2ceE2xJ6Beigudx2CO5GZvP2LCXsvfY0ZlzNfebgRmS2p6Aib254p+5xSDTgtYzrlAa7slUk3YIwNr0y5XDgHe/k1jMUKSvE/W/je1ZZcANlnyWDmdsYgbYiu7OGS0SqSKExjRBCK8TaYMLr4CqLOaXrB3mNSNlq91P9qfxmMC/k4LzflJNxFWe6ra4rfuATiC4WsPlZOQ4QBM8L+bns7ST6ijU5OuU2Ld3AN03wYeIkHVAodcF+y/zsQrphtuRCin+robwngx/ON3iiCjlTz0mn/2nUJ4djSLXR1MKxyzS78+3Hcph0M7B8oAQ==; 31:Dsgh3tTPZWjADxfBv36/FQsfp+NtSlrobU5f84CyUx2//h4diEBWCM9nReGmsYe4LmdHJtA2HU/HM+6TW3wvD003PBwcJyrZKWR2+QbZQ9x6XbE5JWi2WGEyyfx+xrrxfcLi1alQ/KlcXOdwnopa+H8eM1c17eegWkl52al9stgDwFRySErP+17X5Rbe6k+Jf9oPv9gxDIeJkTdDw5nqpgZilsR9Rkx9E7qshMxEits= X-MS-TrafficTypeDiagnostic: MW2PR12MB2473: X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 20:1PnFCBA1/tjVENnhNblDhXy2V/ZNrpRP5OZWyNolCSiL8ffS5i8coT/5lHZP+zUi8b1PMLTCJz4+RqJlotrO+McRUG7zpaWuvuZTaKTItZKUzUxINE/V23F8kfsmgQRo5sDqRuJ6nRUzelwJ/uI1atxK6SPQB2MLlhC7YTNB3rQDWnL/NuTaWzLb2VovCbMGSRCnp2y/t3krWiJ/u3cvAhEIn68dUfaCJO9SesHxwT99r+ZkR+y+BOwreRHKEVvVyVyoPyp99C0s/wo2FtAumC3A8cFTjFHzdKVell4ykz1fYFfIVirt4/oNu+AosZxIu0/9WAVBxFd3NygL2wadXb0px+uY8WvcrBv1mCcY1s52FiFrhjLcW8lSGqXuJ46XAhwW/sdbKHXt3Xskkp9gXkyXNG7zepxAyJolpFa6YU7W7aq2Xf6ksDY0q7X84aSamgXTi4p9DmpL/R1RyYtcm1YhKaD417JkH78fu85z2ZWjZm/T7EvlDoBv+eIkXUzL; 4:cgHH5oLkE++CjuqGvM+SI0mXTqF9idikvw7LaRCCCiRH4YxIy7c18m0ZLrMrSRK6vEMIAW7bq/F/GHGukZsULZa13WuH0I3IrYKQTRqLsnvPk4WhdMpkkcwf7uZSKMk3Z9knNmIcXdGKV+fr54sPV1CL7X2S6yXqmNXukdoABZg3XDgAPNwAudp/UrGe5WygGdRyebv99tEElwXLLoekIMeGT3L+fSKGjD4PX8Gs/jhcy9gwMaqJ5hGPw6/JAIY9No8q0hii+9mcxc+kSHVG3e+SYx/Okp0llkgeftf+rPCfGrBh0K0u+KRP3V2gjG8C X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:MW2PR12MB2473; BCL:0; PCL:0; RULEID:; SRVR:MW2PR12MB2473; X-Forefront-PRVS: 06973FFAD3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39380400002)(396003)(39850400004)(366004)(189003)(199004)(956004)(7416002)(305945005)(6666003)(4720700003)(7736002)(53416004)(53936002)(48376002)(26005)(16526019)(105586002)(16586007)(106356001)(386003)(316002)(186003)(7696005)(52116002)(39060400002)(50226002)(51416003)(66066001)(47776003)(50466002)(59450400001)(446003)(8676002)(11346002)(8936002)(81166006)(81156014)(76176011)(4326008)(44832011)(486006)(2616005)(36756003)(476003)(25786009)(5660300001)(97736004)(6486002)(3846002)(6116002)(2906002)(86362001)(478600001)(68736007)(72206003)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2473; H:linux-h3ml.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR12MB2473; 23:/zHrIQBQ/PMK9IcPLNWnDwwMk3c99t2i5qiKROx6U?= B253DdQmsbqGTSkxG5UDCh4Zlb5v+zDVLrAF6z9bv+hCClggCVPvqic3XnNPE8z3S7oq8BSpL4LMMUxhORw0kCONjcllgJG+8pOT8xtJuY7HDimE9AdWWSxSc9uBqEGuqG0ZS2+Bvcom+0AWQCHm59dctwm6QEWK2v8d7+pfXqPNjtOck6p4KQ9yeEp1Dg6qG7uPUaR1I0TJyVHbWG00MguqokG156xhGc8psbe3xlQFKhJEmnRnQJbiVWJJHF1atySTTTNW8Lqdnrno8i1/Wm/TGyGexB/YU4jbeN9E7zKtfrNUmx/t1Tn02SSfXd+vSI6tlt3vj8zrQn6SRM9fP4NXaG+tUU+bG4jAErYOucmaS3qkF83cgcVHpkP+AXNroDoB896aG1jaTJuMR8FOHk3o3vLq0e/L344c65+glzTDPYHLPMFvNwfirGucjpmEXOrA26edEePbLnnusCxk8FzyBjzX8xfas3/LMZKyMPdnjMHH3p8f2S/tswGV1OMiGXeUtLzNBWRtUTNLezECikseyAzTkIs0udtZtXKeNCPyOklgsxdhhGNA+p3y4HRl+shUJHTPbKTYZLBK8SCkJXJjptbZ9VEN9eZZhmrV65/QJnDA5ixrfDEFg3DCiSQeY/HOG7B7rRjrWgZbOw7UiLnNFHATMplhNn6kUNvrJJNzWdSwqSpYwEow4s6/Q71loyAkyd30V2UzRepU7VAZ+C8ui9O2SKmzoVSFEVihOQ4/GCv28a0A0e+/2jXg6r3otvKSqFW5RSX/8k2pGefP8xTA4Vqq9tZzFmdWxzAsXIRkQVwTPuc7m8rAlxbCgeGboehgR6Gwx6N4FCjXgjMgkg8dG3NhRLVkbamXMULVTupj4YwjTXe8C6V9L3JMcWR1ztoE7WS0ESEn20zuAL6fjncn/9zhdICv1HmDh+qhFVB43EpGwCVOE9NbywXYuixW5fodm1ZbMh2pdAFq/4k9fsV0okLwh5gqrqlRmeyMZ+hHlKnCLQCwSKiBNLqi6mbfeJMllcZRLG/rCrCExDVbZYsLIOhl2d86Zh7IFLIhaiJRFUUei04gV3lg8xTG2BbFODO09h5AMWHc3WAGSThnE3K9JjLvcu5mYE6S+94zdM2zdBSdEthllt7U6AeGswJ2D1v+HUCiHbaH3a2zb+wn8NKXHjm63knKAmL+gpS7d9+g5Lkyg2/LcE56MitRBf/sQfR0WNpdR2CkdAOCIWQ0I4zLlXb2VMq9FtJfsGGtIwKtBdVncLcmceYOrkXKZ5gcP6mpCqQKLG87ojnUZ8oR3jj X-Microsoft-Antispam-Message-Info: ZBEWBuX4psU+w1eQJ8OSpm04oETvphtxKLatnl174Hhp4LFiBeKsB0MqIe37q78TUU1dnQOYunbabd9BoSm2TzSu4X4N+Nj6b7DePR5KEWOrhBBOxOtTCtCt3m0l5jOdJ7EPXMELX8AuNZNO/rQp1YQWrTIqQlGvQoBH2uHd+nvQZsovt72tLgrjlzCd43W0 X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 6:sM91IyOqrkXcIplnhLVtxxwuWmEfLHGG0LI9nbiETC8hIPOttNdM8MvhTTAq/It38dMDuKNZHX68kxH945A2wjv0Nzn8bG8SsTwAEP8ypCAP60K+8zMjIrxr9tRgbmVktJEz0u9dk4AVwKJ3EUXW3JI60i1pOJhl+3JIo0YPMDSse62OPifX/5MZCwJpRKIn45xcE9Lj6NIpz3qxx9gvXpOWrHSx/7YDlgjcOZx+EMrmUrpkDoOO3GRFe3toAjMAQ4nehRSPhRshOj5D3v/LJLmnPT+Bcecf1D3RUL62ibIihZKvY0g1HYF56FuFHbDN3cCPd1EaSig+XxzRTESz0lOz0Ry/3P/4tjEuOAJCYUu4YL0jhoPlzVPoSa4Pz5L6MH4y4IWB9RWbiZkzXLqKdSdg2KhYYWSlClgXsH7m5Z/TyuIdRrnLQ0+pIxmrTgonfGJwfRwZ932xVB/dTM+dng==; 5:/66coXI+ZDZwO1psTDTlVxsGW1u6jIDxIgVbHyRYW0hcMhXDoVW1nVP/qBvxVfxqjtu+cPmgx96XyK4BpcoupqRdJw9ifoGZmVwxQaRQ/FjpUvtowm4aOzp8JDJjvb83NOnmNIwZtQ9qRYausoQXuaCTWfdA3YZhG01Sa2FggSY=; 24:oqsy6xeIFPlm8eec7xOGVAV8lyab2cE5huTzeFJwa8JSoDe/nO9zhUS2K7iR4EkHgk9FZiQv7EKTd6vLbVD6rM8gMeDf6YsfwqJmHx2iYAc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2473; 7:7NMg1o4ELFVNCwTM/40gFbk/WOnPE+sLhgnAVVEoNNboIEYw2CV8nc+UMypSSd08DuuIr/oeX11BTH9NwNe1HU8VSYshSBXB+ivyP7ESQSxPpMMuDdFzxDlE6RFalJbSm+Dk5MioiGvCsc5Eb1i1Hc2bxityNyQ1icjkLMcsTrXz8b4zZ5OPBmL63NsaRktFQ8r2M91oR7YCsuJxdRul/UmiudJYZ+yThyb8BrShRAAfFBR2NBOE9pjYdtJSNVlw; 20:XVUsFMgtjyBOP19jyOR71tyI51mFPhu85Ua2qSY01AkribOHWx1YzYhaSHuzyS19YUeZfB2vbs+x7mu+BuA3BlMoxXyAQ0GRTRE0DVVQt/5vpxvj6AmBv6uYPo88xof+XU4z/R0wfTRmXJzKImCOgS/sr2MAaw2szcOxfvPBNzmFrasRGtACzChAdytQDw6Q5NZZYFByGb5PrmDYHQwmJN72r8rfUfrDo5xVs2lONSzzEpHGnyL+kK0QXT7VTRkZ X-MS-Office365-Filtering-Correlation-Id: 4f31c159-d07a-4c56-d61a-08d5cd931b0b X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2018 22:56:43.0933 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4f31c159-d07a-4c56-d61a-08d5cd931b0b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2473 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.38.65 Subject: [Qemu-devel] [PATCH v13 5/5] i386: Remove generic SMT thread check X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+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 Tested-by: Geoffrey McRae Reviewed-by: Eduardo Habkost --- target/i386/cpu.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 88bc73d..a55e501 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4993,17 +4993,22 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) return; } - /* 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(%d). Please configure -smp " + "options properly or try enabling topoext feature.", + cs->nr_threads); ht_warned = true; }