From patchwork Mon May 14 16:41:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Moger, Babu" X-Patchwork-Id: 913097 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="hfgTSRBf"; 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 40l64L5G2Cz9s0W for ; Tue, 15 May 2018 02:44:50 +1000 (AEST) Received: from localhost ([::1]:47195 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fIGae-0008Ac-DC for incoming@patchwork.ozlabs.org; Mon, 14 May 2018 12:44:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58496) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fIGYK-0006s1-0p for qemu-devel@nongnu.org; Mon, 14 May 2018 12:42:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fIGYI-0005iW-0K for qemu-devel@nongnu.org; Mon, 14 May 2018 12:42:24 -0400 Received: from mail-cys01nam02on0088.outbound.protection.outlook.com ([104.47.37.88]:9120 helo=NAM02-CY1-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 1fIGYH-0005i0-PH for qemu-devel@nongnu.org; Mon, 14 May 2018 12:42:21 -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=BdvpuPC9TFp8bFY2HBsGRV0gd8yK8SxKJEh6W4P3Ymg=; b=hfgTSRBf0PeAJWNlak7eTRmxLcp+mu9C6jREP2skV7Pw4jU9P+ngQIFgcmYxJnFVaR/6Mek1I1NVVmEl0XondFq2GEwGfpPZABvIbAwAWsDn2HnkbYH5rgAsXtkYWwlNR65xByl/7ifEBzEBrPQJMz+YcQqgpKsZ1vMY44LFfDU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; Received: from bmoger-ubuntu.amd.com (165.204.78.1) by MW2PR12MB2476.namprd12.prod.outlook.com (2603:10b6:907:9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Mon, 14 May 2018 16:42:18 +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: Mon, 14 May 2018 11:41:54 -0500 Message-Id: <20180514164156.27034-6-babu.moger@amd.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180514164156.27034-1-babu.moger@amd.com> References: <20180514164156.27034-1-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: SN4PR0701CA0008.namprd07.prod.outlook.com (2603:10b6:803:28::18) To MW2PR12MB2476.namprd12.prod.outlook.com (2603:10b6:907:9::15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR12MB2476; X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2476; 3:w36JgSs1ClLonb4OVos+CHva6Av7PlwqtwapUEx8Zib6GKsuKRmvBhCthet2WjoxQzJhYfByjUOgj0Ppf4nE4EosU6AbOTpy3j2mI2+Z2GzCf7/jpNFg9X9Tt85iEz1eCU1dylBsnitJxjB8fLuI5b8UWHKO9B/ISyi/JPHALBaXpiozBAeXZbnUETuFhoycjOlzxZa9pf4QyoWWb9+UvHowZXAyZpQhKMBHDd2EziQhrGWUqyCqLR6MCH/rZ/cP; 25:oLSEhIuS68V65VfEroCQMcxEjOj49la9wbJdDGNmNNUQA6Z/Ax/YyD6qHlD5yAA+3NrCSq8jkgJ/+RYdJ1M6iFXG+cHeNVcy5FsstzLvkp7li7Jm/DUqvluFanLh8cEYlymXapVy8xkZCLgFbASJIuISlWvbKRY7GQe4tP7/I6zJYN9SGaH7chQ/IfEMSYACkNL0+n8a+gjKXtWCSJkVZS0+XueXfWFHEr4IMQDe5wKhQMoL1UtpXFn4J4bHiCwQ658du1Amf0c7RRs9PS++I2+nNHoiYSMXUVdE2+A6JoV2KWIqHojx+qhP63SH/zjaztF7SM7yAMrLIc6rmZmNww==; 31:OjtbIZNg442iydIiH/KP0RdKP/Tg6rCXl6/LLlXxATOVfZVeJhjcz1PKqU6Kmig7XimBWgx5IJTnWX7fltNTEx8cIhQbi/atRB7h8L0qrPnMePnOH2QXHuvv5TYafb4Umu+BIgvAz/aeowZYVmNtHsvzOa27a+p9qOeDhHsC71zR02it/tOq7VKX6UlF+SopNjTTURq7BV49qcclsevqYQbkU9dLDb76nGy/oBpFWNc= X-MS-TrafficTypeDiagnostic: MW2PR12MB2476: X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2476; 20:SoZguBNHNZgRmsY/6J3uXNRTs0n44QX6XyNTaz3Zz054WHYvb4SwJWU5C6hAtegWIpY/21jJy6OvJ80TRUbVMIiRM48t++ydEn8MQHnrTcYjQjnxVYY+bBte1h/PyB2f0lsArDwTNNkT3Nazi5bxgHUluBxcKySfNvfUl6VBshS5QTr2IzSuxT9iJMh52uOEO4r0ekBKIR2NMYwzSHtZaTAZuGOPQnzOccwCn8EilVitAymnHV7WfeLVgD3VTXK4WXq1gO28TGXGkFU16BeDYSa7dgdHt0439RUCGcT2yFDQJsqPXC+TH7lHlHizlq8LDVPdqyQrP0gZQdToO7GHxLDAkZrJMefcCR7eJS5rDsODDZoTvW7MBtAjHmjMd8SCRtLtc3P9AG05D4t9KaZLqIJcP+BUXCcxW7BBjNaWF9GH226nCySFGvKdGjRP+YyTyuur9h1+uZZqE+4a4Jct77PJfpzdfS5025eaaXR2juCb3gyUtnZa3EySoFwC1upP; 4:SSPDlUVCtEMJAyNgRxyt3bN0f9QwosOCYvNsXSmZYBgL6ZaQOTAVHk/sF/lloMUGuO7j9l8VcA8srGWX/RCYCU+XFqi12MC0V+Hgfubh5TnUMMxnVRp69Evk3WashxfMgmHc4dchruO2x0ne6VWvY5wlTFLQFBgGPnCSX3v3EPEk+vD13hYeGoG33r9yShdncFR/msW1Xa2KhaCbJvRGrK4H4mvvZeMnF6axoyLsFv7rs/OtkaHT2HTvoViGdPd1WGoGaFMvhs3rlqUZN3v6qm6rRWHIk47zU725ZNiyGTLDSgP+EgR6+NHVEjNEmlJt 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)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:MW2PR12MB2476; BCL:0; PCL:0; RULEID:; SRVR:MW2PR12MB2476; X-Forefront-PRVS: 067270ECAF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(396003)(346002)(376002)(366004)(199004)(189003)(50226002)(53936002)(50466002)(8936002)(8676002)(39060400002)(48376002)(2616005)(486006)(476003)(305945005)(25786009)(7736002)(6666003)(446003)(11346002)(956004)(5660300001)(76176011)(186003)(36756003)(86362001)(575784001)(16526019)(81166006)(26005)(4326008)(386003)(81156014)(7416002)(106356001)(53416004)(72206003)(97736004)(316002)(47776003)(478600001)(105586002)(51416003)(68736007)(6116002)(3846002)(16586007)(2906002)(6486002)(1076002)(44832011)(7696005)(66066001)(52116002); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2476; H:bmoger-ubuntu.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR12MB2476; 23:zPrIcrUmSoAGqbrKWTJlxKogPj4NTZ61SMchLvw6o?= C24EZGotv4GmOifKlXCojLk7z7/5m5l1lvgQc2qxsxiIql9idz9x5v0h+vCa5e33DCl/446psVtWYaAJo7U2XVTKPxoEMLraWbtzvJA7DLxuoIzBoVJFwdeOHloiHaQAtYc8zUSITnNbntDvoI2ZlDtWBK9TpzPZ6X9RmVIE38MFU+IMswMyqMfE0rZ43UVhwAg186hkrBpc/773qo8GSVHJs7lvWVmsP5WKBBmpxZivy8jAc17C5L/FqKWlkviWhtSGWYMKJIwWGbRW2IIsckSWJ37prt0EjFm844kj++/Y++n16yn32Y9jT1DFLvh67z7671V2z+fdDcv2anAuTUEtggqItR7LUOipeqa2u4jJ+AXvlKI9dRIMb8d62fd+F9aXkvExP89/vkqeMtzeOeShNoHlA8VtjQuL7PAz9vnd4psX/I3FC32VDla6t0K6F3WRARC6cU0zEQjkMfCOOMczOSZlq/y+EGXv41JM311nOBPraq6vRv3sofMLJD5T/Zw0HBujPGGSHO1RCf8rU5HlXzKwavxhjBayyV+JHVn5Y0p/JKTsw06bqYHeMb9wjfUpdbKGiQ30Oo3/CNpqqCjUvck+Wx4TPZAZfM248nIjyT37RyOU7XaxZ7LG0XPsoypEGUOCbtdaMxL8gCvThktKgsQKJChVHmDbv1smLfmryASJTnZtYvXdRhdxSJ38iXRr9T43F1Ok81slDEuroQUjsFMIUzn6gtXZ0xby8KqVPXjRsylmf+uCHiYjNxat+JNUNtypXmx1qmkwXk0ZEKJAwWead4CkkLiR6/epoTR1O7U5HCR+J3lbweBi8f2nPWBu3CamoY1h1HIIa/IEtsNQDHMv35hfa80ia9fBYD1cDmLL6iexxOoPlwVt5QMZJgW4RzC6ziLpEfX+e92IQ18chiqvAT9YO3F33ixgIdkmD843wligCnL8Q8uLZ3atK59y6AQHQ3tT51nWVhR68SIBws53wYlMjXxk1GfiSFGTmaWLnhQFMN06M3VaTIXCfNO8HrpuTVYhQDuCvNG/8JJ1ZlfNBLMCLC0T2eRZWXRO3BHYL/nQeAeHWg8Q3LsUXoBnPPjq0CbKN+V4VobwB5Tv8NQPHen5JD8iLHzycMmYP7a350lqz9+ZUqUgtHZaVHUFhj+vjbFnBoLAkU26cK1OF4YjnBpYkD1tyROxvlhCHjbT58Hu8/lRGamsJfOx9iFhgOrybP/m/ELoComoMYyKZ7T1R/4O3Dhux/P0iIT3w== X-Microsoft-Antispam-Message-Info: 2aC7CsWfBzzm+6TZOR4xmbbFJ5nbyF0MXIrEIsBi/gfr9TnLWYWS9/EEQrFo2TBCjp3cRMvq3LVFzM0Ax8pQl/mTkcvHwfZbspbMUl5DJbN/wykq0lYY25LrZUcn2CJ0ocobwc/Re3Nhv6eBTgK5a0TlKT4GzVuQmJ+JbHd9jIz8jcB5fqcBftH8V9pvEaex X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2476; 6:xzRAiDsEBa37bHHOwX7dWWgQ89+HDXl93aPXn2J4Sn0vy79+kWuySuUU+qsuZ/kCJO+qhHHbywtvJsrdKr5d4aHZN3EH0TyveaEdHCf8XpZbSBq+RgwjLyzZA8mY/nRGFCi/4TyUnQiwBYK240PgpoymVYKMQJS4k81ShwqLRLk/Kxdfnamx/E6DkgQNRieCviHjv56I3MnujZ5NS94rhxg3GAH00F9acnmL+4HM7bGbWCgktpwzMF11IkNPZfRqIiP2lZ127CHxVBv5ncBfc19pnKLl2Pd6oHPR0h650wmbTp/7i/flZ8+fw8ap9B49rANohSA2iMisYZRfvVOAJUPlzBo8cb40ueSGA/IA7W5hkcWeYaxWvMI81XdWSXEQ7+PLQFtoueGOWZUf3m3xzGRRbMEvP+J7PhkCof/hlrPVK13Khuyn422rFlCAeABdo/CgN5hjSbLk950EGUk5iQ==; 5:6eo8C9ZwjNJV8UAmJoznt/DGg5lmzq7dMEbAbvN/6JUTrTesMHtRSQb4JFU5lAcJybAScjeINoh9ufxvj1hhPAgPZEnGFXJS9gXShb2Uzwte4A4EX+2x2D0C2IdET1LExrHPXqww5NdKKCBy3fBbZoXe/ntTx+u1pJojI4bU3JQ=; 24:XXZYzmZCMxm8gjDfiwkc15uZvwfIF65nUpQvcTGjhQ6O7i/v/pfROCzKBdXYUSF7tSfdd28Uo88n0Kz0VtD7ITY8uEI5Rb9KBH1UlfcVxmo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR12MB2476; 7:QFgCbGcPinZSH64rExZsitFOH+Ln4SP3k+dWCZVlTvm1YkEiarpfrzM7ympvXvUTWaspbHhdrV8QDtZ4kcJEzkYd1YOCx0kqBKsovvMp+0P8H7b9ZOFESwjaV+vUoCxCOTOeFNqUEMCK4hWbqQN+5gzsaGIzn0qahxcrd6lBI1G3+b79faS59gczajfA99+IoWmI6gIUj0NQQ7EDpZddIaTcAH3nNQaOWnMNKvzoKfrx3PEuiiooxPd4qihyxAVn; 20:kptx8zy31q6lhU7vCCFf1/swa2OcFzA/c/pOYNVOdvjDpuDNXFTiH90gQWTTnSd3ioPiDZkdJyGB9YpmLIpZJy32ngWgvWHfGWQW4dwyxwf7FoA+mauyQcd/nPPZraRW8bcAwRVWHZWN3gl1dMErRJDglw4IN0DsUVFYt0HHE8pvNRKucnyw271SC0Wii7qnm8V1K83ZRPCHFvw6g85NGGteWvPK8qo1nkYblF7VyYMePQ1FV66/lsbjyaDHzSvy X-MS-Office365-Filtering-Correlation-Id: b28a8c64-dae9-4bb5-5671-08d5b9b9a8e5 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2018 16:42:18.7421 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b28a8c64-dae9-4bb5-5671-08d5b9b9a8e5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2476 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.37.88 Subject: [Qemu-devel] [PATCH v9 5/7] 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" Populate threads/core_id/apic_ids/socket_id when CPUID_EXT3_TOPOEXT feature is supported. This is required to support hyperthreading feature on AMD CPUs. This is supported via CPUID_8000_001E extended functions. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- include/hw/i386/topology.h | 6 ++++++ target/i386/cpu.c | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/include/hw/i386/topology.h b/include/hw/i386/topology.h index 1ebaee0f76..4af746e50c 100644 --- a/include/hw/i386/topology.h +++ b/include/hw/i386/topology.h @@ -145,4 +145,10 @@ static inline apic_id_t x86_apicid_from_cpu_idx(unsigned nr_cores, return apicid_from_topo_ids(nr_cores, nr_threads, &topo); } +/* 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)) + #endif /* HW_I386_TOPOLOGY_H */ diff --git a/target/i386/cpu.c b/target/i386/cpu.c index c06a9f5ebe..18a7872b7d 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4071,6 +4071,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;