From nobody Wed Feb 11 02:33:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1528498885448726.0416578963284; Fri, 8 Jun 2018 16:01:25 -0700 (PDT) Received: from localhost ([::1]:38417 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fRQNo-0008R8-O4 for importer@patchew.org; Fri, 08 Jun 2018 19:01:24 -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 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 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; 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: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR12MB2473; 23:EWu//VL5XtYis34+hTUdEbldDSbAjLUhU9cjMnekV?= =?us-ascii?Q?z4rCiwqDUq9eDXrPpJwBD8ls2w+3zCRlCgQ1dHpNK5AvMKZCQ7SC72MGWoW9?= =?us-ascii?Q?0hZqwauR7miaK0alzHx5MKXMDra+t0PznKkHO6edfXOFjoh+g5Amg//MqjMU?= =?us-ascii?Q?TM9vOkGO6t8fUfz9QW3GwZcDUCJgEvjE3e/jtMRNlR0fJNegtsAwz2eEXQ3T?= =?us-ascii?Q?R77lb2+ty1iaWVA61CfHLpAiGYjmX4v6uBE8X53svkn0dhezeGsbXezoPk+t?= =?us-ascii?Q?i+JIS2EtvJkeRlFvdQzjMPtQntCN7vC6Xsf0gQd1N84MBf5xSwyOzq5dswTc?= =?us-ascii?Q?zCQKmCZUZM2BugPn/LlTiNEF+NYK/JXI0R4jla3KksKzlWV26S/wj10lGSwt?= =?us-ascii?Q?aT8VKtzuPWBNaNsbpFsfrt28Z57shL9fzWhWSlj4E7uDUK6rCWipPbGq2IC5?= =?us-ascii?Q?G3hMBpSkWOA2m2vGj7t35eLMiXh/Sq2rnjwDgqFpq1XkDwoTB7Lizn3sZohd?= =?us-ascii?Q?5sSKPmwbebH6V3gSVG4wwtglnJyF33qIrbsC2bJJjIYwdWW58CCubkT+HFhZ?= =?us-ascii?Q?FCuScOLC0eQGJ6Cz9tIsDCyxCvH8FI/GPsxjYiU4Bquxz7sWKw9DdexI64zB?= =?us-ascii?Q?gJxutSRRQKIAXVxQDZtuHthPcDjhksYy9F67tUys6GclNqqO/CiTPhP/hMhI?= =?us-ascii?Q?cpRQiA24H9BEZi1VojTFdRfDzlTf23xY73ZzU7hQ5VhbGG8s8Nz4YXS2+R4T?= =?us-ascii?Q?LLzSNxx7FZZcUPVYE/eY9N+BceW26DxIZ+fKwtTOJrm28ndNRghXuhrMVotu?= =?us-ascii?Q?2KN5Wc2o88+vx8jVt9w6/+R4lAb7TkFJkL6stvpMpEpXk2n24BM/A40W0BJ1?= =?us-ascii?Q?cc1y/C92BZJHSDYFwmQLb6chO5fn7MVCl9QLTxOsh+eZ2FQXXUZnqgjwtD26?= =?us-ascii?Q?Bv3JhWDmQWeUlycLVY85mxZzEHRmGi+Oa6QO18pPjQX1lTC04+/Je5/UBHWy?= =?us-ascii?Q?SqVd7qyosFe72ZiQtzoDa/txWOLk6JY3+Mu6dsNsoA/Xzxj1hR48qNT3Lr7c?= =?us-ascii?Q?ZQ3ZPdm26nK9veBy1ktq1m4E5jY4x8Li10BW/121bcZOpNVn4zcPlVrlIpK+?= =?us-ascii?Q?EWNOE7vmuMaeV5CCArsq7Z3Sj51YF0uKf5I3BGYStenqD7L9wMG9hrIz52Rx?= =?us-ascii?Q?nEN36cFEqaCvyLw8lLzyCnHVGM+tVYJ8hGBzOQOn9nAFkfncCecrpZ0B0+60?= =?us-ascii?Q?qZNEJ12VsEB1ebNxETCpyd2T4+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+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 =3D=3D CPUID_VENDOR_AMD_1 &&= \ (env)->cpuid_vendor2 =3D=3D CPUID_VENDOR_AMD_2 &&= \ (env)->cpuid_vendor3 =3D=3D 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 =3D CPU(dev); @@ -4953,6 +4980,19 @@ static void x86_cpu_realizefn(DeviceState *dev, Erro= r **errp) =20 qemu_init_vcpu(cs); =20 + if (cpu->auto_topoext && + !(env->user_features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT)) { + if (cs->nr_cores <=3D (MAX_CORES_IN_NODE * MAX_NODES_PER_SOCKET) && + (cs->nr_threads <=3D 2)) { + env->features[FEAT_8000_0001_ECX] |=3D 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 --=20 1.8.3.1