From nobody Wed Oct 29 06:55:00 2025 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 1524761380644365.7878650858121; Thu, 26 Apr 2018 09:49:40 -0700 (PDT) Received: from localhost ([::1]:43478 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBk5T-0002Lk-OW for importer@patchew.org; Thu, 26 Apr 2018 12:49:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45028) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjg-0000L5-2M for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjjc-0003Fa-CS for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:08 -0400 Received: from mail-sn1nam01on0075.outbound.protection.outlook.com ([104.47.32.75]:12173 helo=NAM01-SN1-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 1fBjjc-0003Be-44 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:04 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:26:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+oyGcmycKSNdphI6jSX4Q/D21NMJngzJ2bg073KOSE4=; b=rdLsT7UmZ57YiRvoxFHidsWSOvHQjnpvBtDzHNYKjrkEe/KFfCercNWD9DbFu4LT6qcl8HzKa0kJ7PUH4VgCk7XDWxsaPxYFYLs2YP+Z45x83ewlxmcg/8IazB+MdvYhrC2COV0IArG6GysosmefB/nMpWWXWIlBul3WlbYqsoY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:41 -0500 Message-Id: <1524760009-24710-2-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:+enL6nTlcI7PzTPVkofN4aHZ3nPDPkTp9rJgNrRNliZTXs/NqQLSYBazTfcHKbeT6MvuAQUmTt0EinIpNXTuTxyMsMoOQqvBomr0shrD6FahByYhvyUotKiZ4OZJf5YyFufwKAolmQOURATKlP3lexu8f7BLaFfCCmh5f+EnqRrzqo3oKZmFfGfj6Z8R56rtYq9y9+9VuwwIzZv3W3iO178dTy73USLDzNKpeFyrovohZOn5zVpc+1PEkBOjgMAH; 25:55UX4XKjMvUB7KhM+6M14EaAOQgilhmTNf6lwkkHFLA/1BNbSnTSOHHq8G9GvT7i25TSFMpi3rLJGTxMPM5Fd8JMN9bqga7zQRgb6vr0D0yEPqgqjLtaPogk+BzgZA3nXPEgD5dADHvRbrUA5b5F0NDxg8BeRQ9t2TlveXweJ3aQSqZgIl6J3OEzYiClYqILrLlshdMxHg+PE4BX84n5wG7CNKKtm5fpnBhy1BdesLxpr5InqnR97Y+BiWgYT8CA29Bin8Zt0mgVF34kEc5lrSDK+IXOG5X1yTobJ3Yy4B6IVFHsIICNPDZ9dY5x1No/tN6DkagG2mXs8Ra3xWwcow==; 31:ru6gKUjpIk93qBZBK1CSP8TALSdH6OaJ/0BUA94euONNIZ+T2Lkq1Q+DxkJ930HHbbPtnrNCPz+5iBH9KtIar5TcV+8QubNiJlsolqPFE7gFEu/mvuYiqzEJN5CZ7jD74u41i7cx93CfFnXd9zMrZ/itrt3/2nRyUEiDsZy5zTaCqRLR3nZ3Hshj19tYhbISgnAZ+fjejJEPT7LxgCjM2khNIXgavUb4tIrG0kRxNEk= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:27P6LJnaKFM7WWMiXKh0/tP4NC5C1TUJoywhAnhZzs5dn8+IGOSyvLhE+dvDf++Ge1yKO13AtEy/DKuT7+iFAbhs1sWG/aJd4C0rmwjLCVM7Yt4+Ep+MEs0CPe1dagdXggJbY7AdgNYTfV4WyLpHnVszkqV6ZKywQnHF757ff/rosV/uYjxYZhseZWtmxt+y8yd/NbkDcPSbiNCtdm3psVBhaXEAyEhJIlP69ttl80PaDHwiRGK0WHow8zN4d7mbYPKqW3YzoSpgxutYX/EyoPM9ZvJpsMokFHPncHqANeDMZk/L671fxMKneU/dCzRhCJK0vVA572QFq7BZ+xYoo0JrT6ca9tcl7Hn8vyHgOs0Zj2EtYrqxzsO9zWeE1IW3c9+l87Rr7mzAxq6UMY+5NqhzW6VqWnfE+8FQKYWFIFELJPYyLs+sua94e4TR7dhNcG3lw26kIeqQSCXySI87ycuuH0THiwXJgO2323a5MdqsNYT5fV2Ieb6jejRKBzBz; 4:9m6p/FiBbpfRAU34vel+MrH6qxGaXLL38m4nSJY3g+mLik8f264ZI+m+iuQX4+wJaZGlKo1oKys2nvpnwlWAK+o4zYNSsj0/UvCKilpKi8DTvkD7qrHVNdQNIxP6w/PK882S884TYBt8bsZ4T+WO3RPy0c42HrNCH+T03+siMx5JR9phw2dPVxMaOCY2m9ULMwfZ7VXlcGfxN/fvG05QkIyDysfTh/M3ZsJBdf9pledjnE3YKWWfqAo2YjbfzHqftpvMyh4VAmCJ0OaYptGE49ZkOIncFtTlbVrL5iEaqVp8W30M0KWie5UIN8ypSZC0 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(59450400001)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(575784001)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:6p5l9klyTTCiA2KZOCxJeGgZcZIX2IVD+R/qNP3ob?= =?us-ascii?Q?d53OH8JcrVqP1voYlgtAlydwU5L4ZpnKRBfPDa/UGB5n6rP21cM/Ij/omBW2?= =?us-ascii?Q?tIrfkpXZDf5cgrKLPqt136bswXSCBvl9VN5EYnkfCKKQz5xFSKMh/GPS/ob0?= =?us-ascii?Q?SPm5hpqMkVG5qeIMpq9dEy/6WY+iHIPQLjA3sBXyqyBCFkVYc7s0JNbvfJ6T?= =?us-ascii?Q?793mMgJOTB4EiMBx+n/w6FoLB/aqtJn9n3ig2xt46EUo2kkWoHuIQMK0dW/C?= =?us-ascii?Q?VREWwL9IxAunDt0VVJMAw3aRRLGPgGbNkAjiKn0NxnixkpdHfbrj5HF31mVh?= =?us-ascii?Q?DQ97BVnGAtIrFVJ84DuDhInWfVeSGzn2CDX3qcmzgjmXFs5t1+UiKynSxbtZ?= =?us-ascii?Q?hlLRqfbpJSaaubD+ELLUbjL6iNORJeeKmauVQW/O5k15MYui7AxUVgnkji8I?= =?us-ascii?Q?d4eF+uUTcxBKMu7rUsKzCgCaTKqMoEzNS1d7aol0lh4PYgX1KVLMQ9+hRFsA?= =?us-ascii?Q?FTkfU0mk6NmxJ8jUN4CfQEKvBsR9Xy93t3cDgiqQolUUxnP6YHIrcRWjcI00?= =?us-ascii?Q?N0z4K3s8Bm4HlPQ64EsB9RnexVQP25mwq9q08gi/Ls3BRvm8MhWGqnbGcnE+?= =?us-ascii?Q?6sxWJnrcmuRCoihkYdh9HP+VQvIkoYaLjdhLD/5P0V+fdqK3GSUkMGYMa43b?= =?us-ascii?Q?mlFkKU/yVvo430HOA1V5XK7nT8t6MbqAyUWn8yHOciOEZzVFZHBQBVPRGYOz?= =?us-ascii?Q?PUdecUkgB248fGLqGYhyLyeRQwVIoROKnFly7sA4E2SODL+JzwJrPf5TGGor?= =?us-ascii?Q?O/u7iyHnXW/NisTD5V0uuYbNaizRuLlANeMx85BZw4xqPsJGCMwd1UL/4q2b?= =?us-ascii?Q?eS3XNRWAG263U0ZI5i1mbsHlSFG9/uoWR5hmvSiSISKBwfW7FQm54CcKCwcL?= =?us-ascii?Q?O0ev6vc0KmX/i3WF/TdWX3pA3gAfpxhhuoaB2/DARKq4HJKF6kqsiS6dqALi?= =?us-ascii?Q?L05dsP8jy49F9t/NwDm85AcX7w81IsOifcETSRu2yrwIFmSKpe84/t6TqwNI?= =?us-ascii?Q?RNrsVlYHlG9JPlnPg/YPYVOPL+yT8rpVWpcQg9ZS1SAGN8AwZr+R7ihBS2w7?= =?us-ascii?Q?Q8Vjb+2I+yolhsTtTfmlbOwl3cVbEHx90ndhAj6KjMxuqXuEWCf1wL1vWvrs?= =?us-ascii?Q?c50d1At/cfaaQYfiqXBv9RaTDj2tH4Oc0NwgauEXhTrRbCGsafN9LmSuvaMr?= =?us-ascii?Q?HXN4hSdlP2zgKh6HYggIpyrQvAQfVXaHlJbyTdiyHEAVbLHmr14CvrcQYFT2?= =?us-ascii?B?QT09?= X-Microsoft-Antispam-Message-Info: A/MaZPpABVsOeIyVs/CbzBf3C4mnfgfZw8cz3Kh+zNjGdksATtGmARidal6cKFwMvYvfW1QAxJCIZIjDQBfFcvmoFhq/qboy6oi+lmwY4fXn8okWWHKCqJYlGyIK4V88Vd0SvRI4c8BCmIfn16ggY9V0dTOewKtpT5/j60hYqb09114YBFiTJMsJ+gyA6GQP X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:gqXtcUZ3tXbYY6lDGl6YAwSPVPoIHJIEZl7k6+jBP/QwrnGpmdV8glru7J8CVLnRbNrsHtk3ItoITfvFcTM2aEX9n8W1SdTgsenvoReX17iff+rA3/8EJ5Z01DSu82BAIoTI0ELNbn9Z+t2fqDg1vCeimCfxPN+vF9LCU01utjlmpjaKupQXnYsMwJKw0L6sD24vx+IV8RSWbKbDWLeuLhNSQU+xeHwpMROgp2P7T7DKr3BREQTUIdCvyYo5PzYoaxMOOnE4jlpYfhJBFL4LsuXnPwn6itC0velMG009QYjBb6jjW5IK1U67xNx9Zuw709frEr+BY+uIsT2GeSo1Lz+14v+p7eNsC5BGmPlwiwOzvRMSoi/ztNn27/b9nZdBvwL+PglomnykThauXGatjPtTCA2NRk0xdNHhiBIzU5X1gX6xg9v6xJW5zTRvfldYfPzc+KChj2urDgml4sswjQ==; 5:FdMVSrJ14jJwKvMnrCgIRls4w/qVRsV3LshuqfEGvus09HyUo++a6DASZOtxDjRrQKhgu4tlIZxDeja3QYnN7PJ75fwzr9evmY03SYQ7WkA/hOzHhrQwB/lbMyB8Pe5K9Tc7oqzRpmRzr/wyF4Cue6dbp7nzyXCm/MTQ23h3j0c=; 24:Sb0o9lJvIJ2eUJJVdSG8+WSUFmpDBALYlaG9yt6vSnahqZE5GmmDmzE57iPZj59Ty1Ij4+VpdakslF2ejKQ3sEIBx2DNiT6cZr/MRK1+Rc0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:NLGQroAmH2GX8kTyo5lOm+clQhl0XhHMAZ0dhAwlEtL+cssWqC8BjVFF9DQ0Wva/0gz96CbcpkHlT3rH0a0mfEJ9jyGVInu9J3CyzPYVoPc4GVnQh6/qVVjdNa/RnfSWM+jjbH76z3fCy468G9ZSbVQA60oek3JZDN6naflB3kGlJYAkXdVOnPA2MavQYKLOpXFKccPCkKBGNV5vfe1YcVPtVSBBfhxtvbRnUZuJKJzd5lezFwRqdFLpJbfoDYMJ; 20:V2n3d7cI3zIaK4DLuPkcDGcxuaQrMIRPGiiwhUNGGNk2ig2t61SHdF9Kt0Tq1YVCkalknoegptNrNKOk/bYYHFmgpi7+jLUoM4AleEqg4Csf9XN2JKJN62cpX3mIbGiPiVay/rEGGSOumybgQnm3rl9PmSdKBXbrca91U/4ZBFuFtchMjHWGezXFxwFNV/srlTYFfJuLcjs8rfHBJL+inJUJl2R/0yqBk4pgYqexj1jz/ldyKdz1QU0Xp3boKm51 X-MS-Office365-Filtering-Correlation-Id: e18c6c28-48ea-42ec-3bb4-08d5ab9288ed X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:26:58.4866 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e18c6c28-48ea-42ec-3bb4-08d5ab9288ed X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.75 Subject: [Qemu-devel] [PATCH v7 1/9] i386: Helpers to encode cache information consistently X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Eduardo Habkost Instead of having a collection of macros that need to be used in complex expressions to build CPUID data, define a CPUCacheInfo struct that can hold information about a given cache. Helper functions will take a CPUCacheInfo struct as input to encode CPUID leaves for a cache. This will help us ensure consistency between cache information CPUID leaves, and make the existing inconsistencies in CPUID info more visible. Signed-off-by: Eduardo Habkost Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 495 ++++++++++++++++++++++++++++++++++++++++----------= ---- target/i386/cpu.h | 53 ++++++ 2 files changed, 424 insertions(+), 124 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a20fe26..b6c1592 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -56,33 +56,240 @@ =20 #include "disas/capstone.h" =20 +/* Helpers for building CPUID[2] descriptors: */ + +struct CPUID2CacheDescriptorInfo { + enum CacheType type; + int level; + int size; + int line_size; + int associativity; +}; =20 -/* Cache topology CPUID constants: */ +#define KiB 1024 +#define MiB (1024 * 1024) =20 -/* CPUID Leaf 2 Descriptors */ +/* + * Known CPUID 2 cache descriptors. + * From Intel SDM Volume 2A, CPUID instruction + */ +struct CPUID2CacheDescriptorInfo cpuid2_cache_descriptors[] =3D { + [0x06] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 8 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x08] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x09] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 32 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x0A] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 8 * Ki= B, + .associativity =3D 2, .line_size =3D 32, }, + [0x0C] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x0D] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x0E] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 24 * Ki= B, + .associativity =3D 6, .line_size =3D 64, }, + [0x1D] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 128 * Ki= B, + .associativity =3D 2, .line_size =3D 64, }, + [0x21] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 256 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x22, 0x23 are not included + */ + [0x24] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x25, 0x20 are not included + */ + [0x2C] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 32 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x30] =3D { .level =3D 1, .type =3D ICACHE, .size =3D 32 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x41] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 128 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x42] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 256 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x43] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x44] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x45] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 4, .line_size =3D 32, }, + [0x46] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 4 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x47] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 8 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x48] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 3 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + /* Descriptor 0x49 depends on CPU family/model, so it is not included = */ + [0x4A] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 6 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0x4B] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 8 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0x4C] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 12 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0x4D] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 16 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0x4E] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 6 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, + [0x60] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x66] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 8 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x67] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 16 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x68] =3D { .level =3D 1, .type =3D DCACHE, .size =3D 32 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x78] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + /* lines per sector is not supported cpuid2_cache_descriptor(), + * so descriptors 0x79, 0x7A, 0x7B, 0x7C are not included. + */ + [0x7D] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x7F] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 2, .line_size =3D 64, }, + [0x80] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 8, .line_size =3D 64, }, + [0x82] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 256 * Ki= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x83] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x84] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x85] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 8, .line_size =3D 32, }, + [0x86] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0x87] =3D { .level =3D 2, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xD0] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 512 * Ki= B, + .associativity =3D 4, .line_size =3D 64, }, + [0xD1] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + [0xD2] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 4, .line_size =3D 64, }, + [0xD6] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 1 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xD7] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xD8] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 4 * Mi= B, + .associativity =3D 8, .line_size =3D 64, }, + [0xDC] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 1.5 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0xDD] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 3 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0xDE] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 6 * Mi= B, + .associativity =3D 12, .line_size =3D 64, }, + [0xE2] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 2 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0xE3] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 4 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0xE4] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 8 * Mi= B, + .associativity =3D 16, .line_size =3D 64, }, + [0xEA] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 12 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, + [0xEB] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 18 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, + [0xEC] =3D { .level =3D 3, .type =3D UNIFIED_CACHE, .size =3D 24 * Mi= B, + .associativity =3D 24, .line_size =3D 64, }, +}; + +/* + * "CPUID leaf 2 does not report cache descriptor information, + * use CPUID leaf 4 to query cache parameters" + */ +#define CACHE_DESCRIPTOR_UNAVAILABLE 0xFF =20 -#define CPUID_2_L1D_32KB_8WAY_64B 0x2c -#define CPUID_2_L1I_32KB_8WAY_64B 0x30 -#define CPUID_2_L2_2MB_8WAY_64B 0x7d -#define CPUID_2_L3_16MB_16WAY_64B 0x4d +/* + * Return a CPUID 2 cache descriptor for a given cache. + * If no known descriptor is found, return CACHE_DESCRIPTOR_UNAVAILABLE + */ +static uint8_t cpuid2_cache_descriptor(CPUCacheInfo *cache) +{ + int i; + + assert(cache->size > 0); + assert(cache->level > 0); + assert(cache->line_size > 0); + assert(cache->associativity > 0); + for (i =3D 0; i < ARRAY_SIZE(cpuid2_cache_descriptors); i++) { + struct CPUID2CacheDescriptorInfo *d =3D &cpuid2_cache_descriptors[= i]; + if (d->level =3D=3D cache->level && d->type =3D=3D cache->type && + d->size =3D=3D cache->size && d->line_size =3D=3D cache->line_= size && + d->associativity =3D=3D cache->associativity) { + return i; + } + } =20 + return CACHE_DESCRIPTOR_UNAVAILABLE; +} =20 /* CPUID Leaf 4 constants: */ =20 /* EAX: */ -#define CPUID_4_TYPE_DCACHE 1 -#define CPUID_4_TYPE_ICACHE 2 -#define CPUID_4_TYPE_UNIFIED 3 +#define CACHE_TYPE_D 1 +#define CACHE_TYPE_I 2 +#define CACHE_TYPE_UNIFIED 3 =20 -#define CPUID_4_LEVEL(l) ((l) << 5) +#define CACHE_LEVEL(l) (l << 5) =20 -#define CPUID_4_SELF_INIT_LEVEL (1 << 8) -#define CPUID_4_FULLY_ASSOC (1 << 9) +#define CACHE_SELF_INIT_LEVEL (1 << 8) =20 /* EDX: */ -#define CPUID_4_NO_INVD_SHARING (1 << 0) -#define CPUID_4_INCLUSIVE (1 << 1) -#define CPUID_4_COMPLEX_IDX (1 << 2) +#define CACHE_NO_INVD_SHARING (1 << 0) +#define CACHE_INCLUSIVE (1 << 1) +#define CACHE_COMPLEX_IDX (1 << 2) + +/* Encode CacheType for CPUID[4].EAX */ +#define CACHE_TYPE(t) (((t) =3D=3D DCACHE) ? CACHE_TYPE_D : \ + ((t) =3D=3D ICACHE) ? CACHE_TYPE_I : \ + ((t) =3D=3D UNIFIED_CACHE) ? CACHE_TYPE_UNIFIED := \ + 0 /* Invalid value */) + + +/* Encode cache info for CPUID[4] */ +static void encode_cache_cpuid4(CPUCacheInfo *cache, + int num_apic_ids, int num_cores, + uint32_t *eax, uint32_t *ebx, + uint32_t *ecx, uint32_t *edx) +{ + assert(cache->size =3D=3D cache->line_size * cache->associativity * + cache->partitions * cache->sets); + + assert(num_apic_ids > 0); + *eax =3D CACHE_TYPE(cache->type) | + CACHE_LEVEL(cache->level) | + (cache->self_init ? CACHE_SELF_INIT_LEVEL : 0) | + ((num_cores - 1) << 26) | + ((num_apic_ids - 1) << 14); + + assert(cache->line_size > 0); + assert(cache->partitions > 0); + assert(cache->associativity > 0); + /* We don't implement fully-associative caches */ + assert(cache->associativity < cache->sets); + *ebx =3D (cache->line_size - 1) | + ((cache->partitions - 1) << 12) | + ((cache->associativity - 1) << 22); + + assert(cache->sets > 0); + *ecx =3D cache->sets - 1; + + *edx =3D (cache->no_invd_sharing ? CACHE_NO_INVD_SHARING : 0) | + (cache->inclusive ? CACHE_INCLUSIVE : 0) | + (cache->complex_indexing ? CACHE_COMPLEX_IDX : 0); +} + +/* Encode cache info for CPUID[0x80000005].ECX or CPUID[0x80000005].EDX */ +static uint32_t encode_cache_cpuid80000005(CPUCacheInfo *cache) +{ + assert(cache->size % 1024 =3D=3D 0); + assert(cache->lines_per_tag > 0); + assert(cache->associativity > 0); + assert(cache->line_size > 0); + return ((cache->size / 1024) << 24) | (cache->associativity << 16) | + (cache->lines_per_tag << 8) | (cache->line_size); +} =20 #define ASSOC_FULL 0xFF =20 @@ -100,57 +307,140 @@ a =3D=3D ASSOC_FULL ? 0xF : \ 0 /* invalid value */) =20 +/* + * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX + * @l3 can be NULL. + */ +static void encode_cache_cpuid80000006(CPUCacheInfo *l2, + CPUCacheInfo *l3, + uint32_t *ecx, uint32_t *edx) +{ + assert(l2->size % 1024 =3D=3D 0); + assert(l2->associativity > 0); + assert(l2->lines_per_tag > 0); + assert(l2->line_size > 0); + *ecx =3D ((l2->size / 1024) << 16) | + (AMD_ENC_ASSOC(l2->associativity) << 12) | + (l2->lines_per_tag << 8) | (l2->line_size); + + if (l3) { + assert(l3->size % (512 * 1024) =3D=3D 0); + assert(l3->associativity > 0); + assert(l3->lines_per_tag > 0); + assert(l3->line_size > 0); + *edx =3D ((l3->size / (512 * 1024)) << 18) | + (AMD_ENC_ASSOC(l3->associativity) << 12) | + (l3->lines_per_tag << 8) | (l3->line_size); + } else { + *edx =3D 0; + } +} =20 /* Definitions of the hardcoded cache entries we expose: */ =20 /* L1 data cache: */ -#define L1D_LINE_SIZE 64 -#define L1D_ASSOCIATIVITY 8 -#define L1D_SETS 64 -#define L1D_PARTITIONS 1 -/* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 32KiB */ -#define L1D_DESCRIPTOR CPUID_2_L1D_32KB_8WAY_64B +static CPUCacheInfo l1d_cache =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 32 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 8, + .sets =3D 64, + .partitions =3D 1, + .no_invd_sharing =3D true, +}; + /*FIXME: CPUID leaf 0x80000005 is inconsistent with leaves 2 & 4 */ -#define L1D_LINES_PER_TAG 1 -#define L1D_SIZE_KB_AMD 64 -#define L1D_ASSOCIATIVITY_AMD 2 +static CPUCacheInfo l1d_cache_amd =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 64 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 2, + .sets =3D 512, + .partitions =3D 1, + .lines_per_tag =3D 1, + .no_invd_sharing =3D true, +}; =20 /* L1 instruction cache: */ -#define L1I_LINE_SIZE 64 -#define L1I_ASSOCIATIVITY 8 -#define L1I_SETS 64 -#define L1I_PARTITIONS 1 -/* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 32KiB */ -#define L1I_DESCRIPTOR CPUID_2_L1I_32KB_8WAY_64B +static CPUCacheInfo l1i_cache =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 32 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 8, + .sets =3D 64, + .partitions =3D 1, + .no_invd_sharing =3D true, +}; + /*FIXME: CPUID leaf 0x80000005 is inconsistent with leaves 2 & 4 */ -#define L1I_LINES_PER_TAG 1 -#define L1I_SIZE_KB_AMD 64 -#define L1I_ASSOCIATIVITY_AMD 2 +static CPUCacheInfo l1i_cache_amd =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 64 * KiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 2, + .sets =3D 512, + .partitions =3D 1, + .lines_per_tag =3D 1, + .no_invd_sharing =3D true, +}; =20 /* Level 2 unified cache: */ -#define L2_LINE_SIZE 64 -#define L2_ASSOCIATIVITY 16 -#define L2_SETS 4096 -#define L2_PARTITIONS 1 -/* Size =3D LINE_SIZE*ASSOCIATIVITY*SETS*PARTITIONS =3D 4MiB */ +static CPUCacheInfo l2_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 4 * MiB, + .self_init =3D 1, + .line_size =3D 64, + .associativity =3D 16, + .sets =3D 4096, + .partitions =3D 1, + .no_invd_sharing =3D true, +}; + /*FIXME: CPUID leaf 2 descriptor is inconsistent with CPUID leaf 4 */ -#define L2_DESCRIPTOR CPUID_2_L2_2MB_8WAY_64B +static CPUCacheInfo l2_cache_cpuid2 =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 2 * MiB, + .line_size =3D 64, + .associativity =3D 8, +}; + + /*FIXME: CPUID leaf 0x80000006 is inconsistent with leaves 2 & 4 */ -#define L2_LINES_PER_TAG 1 -#define L2_SIZE_KB_AMD 512 +static CPUCacheInfo l2_cache_amd =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 512 * KiB, + .line_size =3D 64, + .lines_per_tag =3D 1, + .associativity =3D 8, + .sets =3D 1024, + .partitions =3D 1, +}; =20 /* Level 3 unified cache: */ -#define L3_SIZE_KB 0 /* disabled */ -#define L3_ASSOCIATIVITY 0 /* disabled */ -#define L3_LINES_PER_TAG 0 /* disabled */ -#define L3_LINE_SIZE 0 /* disabled */ -#define L3_N_LINE_SIZE 64 -#define L3_N_ASSOCIATIVITY 16 -#define L3_N_SETS 16384 -#define L3_N_PARTITIONS 1 -#define L3_N_DESCRIPTOR CPUID_2_L3_16MB_16WAY_64B -#define L3_N_LINES_PER_TAG 1 -#define L3_N_SIZE_KB_AMD 16384 +static CPUCacheInfo l3_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 3, + .size =3D 16 * MiB, + .line_size =3D 64, + .associativity =3D 16, + .sets =3D 16384, + .partitions =3D 1, + .lines_per_tag =3D 1, + .self_init =3D true, + .inclusive =3D true, + .complex_indexing =3D true, +}; =20 /* TLB definitions: */ =20 @@ -3301,85 +3591,53 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index= , uint32_t count, if (!cpu->enable_l3_cache) { *ecx =3D 0; } else { - *ecx =3D L3_N_DESCRIPTOR; + *ecx =3D cpuid2_cache_descriptor(&l3_cache); } - *edx =3D (L1D_DESCRIPTOR << 16) | \ - (L1I_DESCRIPTOR << 8) | \ - (L2_DESCRIPTOR); + *edx =3D (cpuid2_cache_descriptor(&l1d_cache) << 16) | + (cpuid2_cache_descriptor(&l1i_cache) << 8) | + (cpuid2_cache_descriptor(&l2_cache_cpuid2)); break; case 4: /* cache info: needed for Core compatibility */ if (cpu->cache_info_passthrough) { host_cpuid(index, count, eax, ebx, ecx, edx); + /* QEMU gives out its own APIC IDs, never pass down bits 31..2= 6. */ *eax &=3D ~0xFC000000; + if ((*eax & 31) && cs->nr_cores > 1) { + *eax |=3D (cs->nr_cores - 1) << 26; + } } else { *eax =3D 0; switch (count) { case 0: /* L1 dcache info */ - *eax |=3D CPUID_4_TYPE_DCACHE | \ - CPUID_4_LEVEL(1) | \ - CPUID_4_SELF_INIT_LEVEL; - *ebx =3D (L1D_LINE_SIZE - 1) | \ - ((L1D_PARTITIONS - 1) << 12) | \ - ((L1D_ASSOCIATIVITY - 1) << 22); - *ecx =3D L1D_SETS - 1; - *edx =3D CPUID_4_NO_INVD_SHARING; + encode_cache_cpuid4(&l1d_cache, + 1, cs->nr_cores, + eax, ebx, ecx, edx); break; case 1: /* L1 icache info */ - *eax |=3D CPUID_4_TYPE_ICACHE | \ - CPUID_4_LEVEL(1) | \ - CPUID_4_SELF_INIT_LEVEL; - *ebx =3D (L1I_LINE_SIZE - 1) | \ - ((L1I_PARTITIONS - 1) << 12) | \ - ((L1I_ASSOCIATIVITY - 1) << 22); - *ecx =3D L1I_SETS - 1; - *edx =3D CPUID_4_NO_INVD_SHARING; + encode_cache_cpuid4(&l1i_cache, + 1, cs->nr_cores, + eax, ebx, ecx, edx); break; case 2: /* L2 cache info */ - *eax |=3D CPUID_4_TYPE_UNIFIED | \ - CPUID_4_LEVEL(2) | \ - CPUID_4_SELF_INIT_LEVEL; - if (cs->nr_threads > 1) { - *eax |=3D (cs->nr_threads - 1) << 14; - } - *ebx =3D (L2_LINE_SIZE - 1) | \ - ((L2_PARTITIONS - 1) << 12) | \ - ((L2_ASSOCIATIVITY - 1) << 22); - *ecx =3D L2_SETS - 1; - *edx =3D CPUID_4_NO_INVD_SHARING; + encode_cache_cpuid4(&l2_cache, + cs->nr_threads, cs->nr_cores, + eax, ebx, ecx, edx); break; case 3: /* L3 cache info */ - if (!cpu->enable_l3_cache) { - *eax =3D 0; - *ebx =3D 0; - *ecx =3D 0; - *edx =3D 0; + pkg_offset =3D apicid_pkg_offset(cs->nr_cores, cs->nr_thre= ads); + if (cpu->enable_l3_cache) { + encode_cache_cpuid4(&l3_cache, + (1 << pkg_offset), cs->nr_cores, + eax, ebx, ecx, edx); break; } - *eax |=3D CPUID_4_TYPE_UNIFIED | \ - CPUID_4_LEVEL(3) | \ - CPUID_4_SELF_INIT_LEVEL; - pkg_offset =3D apicid_pkg_offset(cs->nr_cores, cs->nr_thre= ads); - *eax |=3D ((1 << pkg_offset) - 1) << 14; - *ebx =3D (L3_N_LINE_SIZE - 1) | \ - ((L3_N_PARTITIONS - 1) << 12) | \ - ((L3_N_ASSOCIATIVITY - 1) << 22); - *ecx =3D L3_N_SETS - 1; - *edx =3D CPUID_4_INCLUSIVE | CPUID_4_COMPLEX_IDX; - break; + /* fall through */ default: /* end of info */ - *eax =3D 0; - *ebx =3D 0; - *ecx =3D 0; - *edx =3D 0; + *eax =3D *ebx =3D *ecx =3D *edx =3D 0; break; } } - - /* QEMU gives out its own APIC IDs, never pass down bits 31..26. = */ - if ((*eax & 31) && cs->nr_cores > 1) { - *eax |=3D (cs->nr_cores - 1) << 26; - } break; case 5: /* mwait info: needed for Core compatibility */ @@ -3583,10 +3841,8 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES); *ebx =3D (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | \ (L1_ITLB_4K_ASSOC << 8) | (L1_ITLB_4K_ENTRIES); - *ecx =3D (L1D_SIZE_KB_AMD << 24) | (L1D_ASSOCIATIVITY_AMD << 16) |= \ - (L1D_LINES_PER_TAG << 8) | (L1D_LINE_SIZE); - *edx =3D (L1I_SIZE_KB_AMD << 24) | (L1I_ASSOCIATIVITY_AMD << 16) |= \ - (L1I_LINES_PER_TAG << 8) | (L1I_LINE_SIZE); + *ecx =3D encode_cache_cpuid80000005(&l1d_cache_amd); + *edx =3D encode_cache_cpuid80000005(&l1i_cache_amd); break; case 0x80000006: /* cache info (L2 cache) */ @@ -3602,18 +3858,9 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L2_DTLB_4K_ENTRIES << 16) | \ (AMD_ENC_ASSOC(L2_ITLB_4K_ASSOC) << 12) | \ (L2_ITLB_4K_ENTRIES); - *ecx =3D (L2_SIZE_KB_AMD << 16) | \ - (AMD_ENC_ASSOC(L2_ASSOCIATIVITY) << 12) | \ - (L2_LINES_PER_TAG << 8) | (L2_LINE_SIZE); - if (!cpu->enable_l3_cache) { - *edx =3D ((L3_SIZE_KB / 512) << 18) | \ - (AMD_ENC_ASSOC(L3_ASSOCIATIVITY) << 12) | \ - (L3_LINES_PER_TAG << 8) | (L3_LINE_SIZE); - } else { - *edx =3D ((L3_N_SIZE_KB_AMD / 512) << 18) | \ - (AMD_ENC_ASSOC(L3_N_ASSOCIATIVITY) << 12) | \ - (L3_N_LINES_PER_TAG << 8) | (L3_N_LINE_SIZE); - } + encode_cache_cpuid80000006(&l2_cache_amd, + cpu->enable_l3_cache ? &l3_cache : NULL, + ecx, edx); break; case 0x80000007: *eax =3D 0; diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 1b219fa..fa03e2c 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1044,6 +1044,59 @@ typedef enum TPRAccess { TPR_ACCESS_WRITE, } TPRAccess; =20 +/* Cache information data structures: */ + +enum CacheType { + DCACHE, + ICACHE, + UNIFIED_CACHE +}; + +typedef struct CPUCacheInfo { + enum CacheType type; + uint8_t level; + /* Size in bytes */ + uint32_t size; + /* Line size, in bytes */ + uint16_t line_size; + /* + * Associativity. + * Note: representation of fully-associative caches is not implemented + */ + uint8_t associativity; + /* Physical line partitions. CPUID[0x8000001D].EBX, CPUID[4].EBX */ + uint8_t partitions; + /* Number of sets. CPUID[0x8000001D].ECX, CPUID[4].ECX */ + uint32_t sets; + /* + * Lines per tag. + * AMD-specific: CPUID[0x80000005], CPUID[0x80000006]. + * (Is this synonym to @partitions?) + */ + uint8_t lines_per_tag; + + /* Self-initializing cache */ + bool self_init; + /* + * WBINVD/INVD is not guaranteed to act upon lower level caches of + * non-originating threads sharing this cache. + * CPUID[4].EDX[bit 0], CPUID[0x8000001D].EDX[bit 0] + */ + bool no_invd_sharing; + /* + * Cache is inclusive of lower cache levels. + * CPUID[4].EDX[bit 1], CPUID[0x8000001D].EDX[bit 1]. + */ + bool inclusive; + /* + * A complex function is used to index the cache, potentially using all + * address bits. CPUID[4].EDX[bit 2]. + */ + bool complex_indexing; +} CPUCacheInfo; + + + typedef struct CPUX86State { /* standard registers */ target_ulong regs[CPU_NB_REGS]; --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 1524761051636229.73024398602774; Thu, 26 Apr 2018 09:44:11 -0700 (PDT) Received: from localhost ([::1]:43448 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBk0A-00069J-O2 for importer@patchew.org; Thu, 26 Apr 2018 12:44:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45029) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjg-0000L6-2d for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjjc-0003Fu-J3 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:08 -0400 Received: from mail-sn1nam01on0075.outbound.protection.outlook.com ([104.47.32.75]:12173 helo=NAM01-SN1-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 1fBjjc-0003Be-E7 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:04 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=L4z2dWSqJNIBCjFfulphUKnoTUKwOhXAQ1u9KzdD6c8=; b=PdHtaNFIVokDO5lPZIF5dKbEC/RygsADk5zSCLN+pk5sElKeDQ+tWueSSxfwMzhHDtv2X6AIA7hKuaG4c0Trx0MUPv+s2BepkaZERZmAErQcz2ovqUaU+AWDUvjfe96DWgQeJFH5BBs7eNqwpwTCrUvCofrtZBjWt11UbloBSWQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:42 -0500 Message-Id: <1524760009-24710-3-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:HPWwQrK/AEqsnouB3vedqDPonFhEeJh/4u//v12jN/TBdFdbF1c94G0ItYu1s6IpkoaPuvem5uk/A2rtD1qrdjEtnTGYZtHBv6E+EF9K+q8Jid3xcxXZko10LTkwxo5vOF3efHzIz+U5YjfEfu8/4zd3MZuDDTauYKtrvQ7c1rXETktBcCHYLdOVo9c2yTPUcJvmtwNdqul3kj2dljTRET7nLqPP7No/hDSa8NyicAaErEaJvSDEjPyNcNghz6NA; 25:UhvY5W5Q2bi3sJEKTMUgX4wfP68LbMURwWC/XIGLyLTNyYeIik4RVFysRvZaYSY/0Ga2PRa90Kyuku4oEROHr2FW7CjSWCXeCoye/GG0gVspGpCSksA1B9Si9gFcFCYMYxt6UO9A97eJxkU3+Be+9h3bIfpkzVjnH5CBJyREl0ar/RJR84RP9jqaRluVStdw/SfxvBixnXBPwgmrxf+QKTAIdF9soEhq3ts0z0ClK4Lbyxaxv3QE+H+KQerpMrHwtMmvkyxXIGzTWrP6Ghn6JMi1FfZ7uHHVgDJffwNkC0OdHa4PI1p/r6GL4DeDOR/9DSIk0tsjHF5DgG8wRGPqXA==; 31:3cJo2U19wxdV+scuzNhwabH3CWeT7wchqoyPIN1RkOz/MD3gQmXq0yhzo60VBvkzQi6IVYRCTN/LBLh+jFWNcg4sp3l2yXUae/Dc8s5QkC7qyQAYhFqEgg/cvXDlGooxeULGfKitS6Z4QFsGDSyAK/N+eoR8pq2rGZHh5OWBoKlpT5b+Ye2F7DntV7vBiNh6guwUkxOJLLPMWgakJpXp/HH7QuibzMafTwnYyDluHHo= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:7F3rEuOcp3ejBuNerWLh+xd1quCXsG2DKaf85NDm6u1FWhShFF7dkyI3ybVmvu+ozM4uuEpGxlxJ9gyC9nfJxAOZvME2hFXZZfmYkuG9WdUf5sUjQOGQ0THBa2epdQ1uH1CvYZ+xO5805iLpBoCcTsOnpvArZmdcS0sSxUmy1rEfrVIKFo89nlyks7TG51o7abfahT5k5B00XS/ZL5UwRtv2jIv2ukRi1U4SGf+LShA0szSa9aVGcLemGIva3Z0MaYiR3Ok6SEgdSJhgvf2IOCvsIP9dL5rbLtY9NkhBkFeCSEkfL1BFG4AAPoqgs+IGpUEzmRyt4bTxhm4wc8uNPo/j/jeORY4xXYXCtTTGEFhsoGWNmZpwMmnRyCIpfyqzLEP1qhzB4iMXfPuTjs5oXpcr9c1e0kN6yCbg0VkJAF3jJFcA+i3w85YDK0k1FlG9vWTAxcGp4aLljO7S/g6zcGvXtuZMPWb4DCvlqKgBKZf5e5LuUZG6X4rfe6ZSCy43; 4:F0dG0VAZsPuLBJn1dWlF49/oGntWeWvcVpaOapDxbrRf37xam4L17DIwSFXefHLjH3cVtqVvWlM7eLO7mOQmrK+oNDfVK0dMvNSvz8CYFyp+E+fNLSPbhUzUBKTZ59Di4I0RtP+3oMyvcqHJMJnyCPZe9yrs/T6vG70xSFB82uhEJ1y0WoUzJxeGtYC2feCLsoSfz6sEhwZiPxHfmzN9YeFupwqe1uNUABvXVxGSkhWOfWbTPEbnZjHclwWOHRfcl7m2GMOF63UpjYqrXoqCs56DKfizJlfNXmSHnqhRdbZo23GLU5GGgG0Z4XCUOwyy X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(15760500003)(52116002)(476003)(97736004)(59450400001)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(575784001)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:UgsqIEOjc+CMvTi0RnALQS4RETMctOpdiXc1DjX5R?= =?us-ascii?Q?00iwPWikFgPCpxe3UCLaDmWOYRaWBmQu5OXfk2rKlTFoESfKHcTmlSZ+5CkP?= =?us-ascii?Q?YaCPc9Zt2tGUyNJbA3X1ufcfTshbhNu/FMlfQohmyoNUs4HN2oOIVn5oxBu7?= =?us-ascii?Q?LsAg+CYCdiBQ2uMUKEBQw+rMV0uvyRK3zXpEqbCw9Rt2SGmZtzglXMNGPiKz?= =?us-ascii?Q?hY4UlylU4Zmuil7wzHy1YbzV/dUUBSmAX+PMiaDzsb7g8NI0Zv3Xr1wtaOxA?= =?us-ascii?Q?5+pYIzC+iIRPDzQFYq23T6su3+10tTMf2P0Hp3+4WVsoUtluNZp93Dr9I9V8?= =?us-ascii?Q?PbwUOnzOCTEW481Uuf59ERm+GLBU/3JuGfpRRiQ0w1egWpwXtHHfucohh9PC?= =?us-ascii?Q?onStGwk6NlQQjLI5rlrvKKgaUf9QexHiel2A8/YmOK3JkPHqgPnnp9lXts44?= =?us-ascii?Q?ezUgVOwS7KrO9Yjhtw9Kqai6V6hcGV44YNhms+a6eKWlbOU3B8gPGVdN1h5B?= =?us-ascii?Q?tv8OvXuPOXjNXJs/A1B8A7LMtsAOOYGi8T0EmsdRobHM/a4xC5yYUw/o3SYG?= =?us-ascii?Q?FAMjBiDzkQ6PHndu3/3BewOqqPN7tA+7c6CwpwUVQkvFkQayawLKRqdRL8wi?= =?us-ascii?Q?s4pLq7c8G1+uxbFuOYdqrsy9kUuIMptoDs8IcQmuRqLvAVfoFOW+rU4nZQ9y?= =?us-ascii?Q?eLZe7tWvPZaS/2iirF8NZsnJAKotFFkDIlpjXCm63oEBiiubh9rGZN6tBMzl?= =?us-ascii?Q?4HZZqHCbJrLi2jkkvUsKzXfdnOtUtVhmJlognRl2duGrDx+qQthdd8hs3yGw?= =?us-ascii?Q?j1LRlRaeb0U+ehxZDWYxALNYPxNAgzVZWvG4KfMCQ7YIym9h/5Q6vX6er2q2?= =?us-ascii?Q?4xpaZMlw8tzsAKfXnkfG+cUTI5jmrYtRf62NEolNsLvaj7Wy9UdmaxDOPBQd?= =?us-ascii?Q?pjUR0nxBBhJ0AAr6BQjcdnqiGqxthXQybxu5uEmzRtGgGwY7cenTlUaN6chj?= =?us-ascii?Q?wdy+36Pa7nRFLDKsXVrNWPIHNgAYg3Xvmb3glr0KV9gq+yTgSxcyEZpfgn5a?= =?us-ascii?Q?It4XN0aswo/ndnt9KMygPKt0S4O48M6g/8+uHTGn93yTfDf4zF/se8SDA3R1?= =?us-ascii?Q?9FyvUaj2sUU79X7xWOd/UVeffBEdeo11lx+tRg8KdWRctRg4WsqvGbatVtXp?= =?us-ascii?Q?VnP7BdMHTdQZRmXEob5EEinxh2GFOWQGdwiF1VDCYe7loGGekZ0OQaYM01xo?= =?us-ascii?Q?1DmX2d69l9mnmWPaM4uTNF2q5E91Z2Dy0VJGtpeK2t0IX462YCrWgVGnQ2MU?= =?us-ascii?B?UT09?= X-Microsoft-Antispam-Message-Info: FK6O4kJ1fv6aMTY/g32K5ZctjQzUq5Q7CrE954Mavw/E+RD53tWJ7Ms6SwMYcyJY45zE2fy96M/Sggh3Z9t81Yjp9RXH5b5LFzDfqv8wSIR5DCiEdZThSvkoEyFLdTplIeH9tkgfPgs8oOHjRIjgAF5xGlszbVYSPA+J4RWcaERbWHZrMYJCmDxAb2l5XFTB X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:ltDMELnAvFTg00hzv23d9KJwzJdkfpvWJfD4zupr7wkxVFf8LE7nKBsU9kMKEsTr8CKmspNLRITRp7Dc9GvJh+5XG2GgX33F5uQyfh5P0idIeIT9MQnAlzJ+4lAMMJXEMgn/o3+OuB74M6IYU3Eu8ju/JneqCcoyPXXBJTaSKfmQRT0WlJpaMivsUs+GBI9eMIRBiJDE9YvnY+Ul0ERa8PBHgUa3lFoQs8D/j5Cz5y2C5HGnYEf9MTXs620DGxBifyNPni1cWWNntFXmMn89RX4p/7bX9ApFBHNf1Ev8tqPqlosueP6c2XyPkM6U9i05RIa8XwajdlpRmxtRsRGq13Jvd6qO6SikFJkiRfG0+zyoVaWztnsuyHPYC71/vHLDvK8FlUJ4BIJDSU+SAJD2KK0v+BFsfl1lzv6SSOuk/rFKtScOvoKkc8Zj1iPlZamqF0m8PHTzCkhXj2DIYaUEmQ==; 5:rYprhbMbwW48A7g/jF6tKpgMknmlCMk5SucIZ26Hokuho0CMbgDro0kGgbWEu0Enx6a+r2iYVAuNr7nTcp2mFq+za+wjQszwxPQSgDMbqGNsQwRkjD+vR5ClbPWqfZ1eUTEIM8b79fMfWE3mL9qy6kDDDLUnXctHdSmawWUhN6Q=; 24:LkMdo3CugFsTyYOV0XMwrs/htKxbKOzD67pLlVP6IJBVbADFmkSO7JVHg/4AXfVqHIMA/1xwMi4lcWNrLqmhid7wmJWkLzHr/+q0k5O9LzY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:5GvRGu4LvVLWMcXyRYAkk2hLS/4+OsIsmA3eBgQVNscd7v9+toLmtQUA7Q57ZSGxWIU4QajYGm6SWimt5h23kQECWEUAbFERGquLlpJ/xAUMTp5ug4pPMDDpGEXyp/yDbkE1p3laa4y7H/+Zwy+PcChSlmrkJ3zZfk3BDqKC5887OQ3l4Nz2qEo2btnbvQl+ZDUR+tqKNaaj+O/WhKXqv2iQifpKUUBwkEVoIkcJ6F4ULBqY3ScM10HG4LcsSg/m; 20:QlxOeSe4bzrxJvU0YRu+CW+weOj8ureyRFNiKjKLCYwZQauXhKmnvy1q/JIyYNZqSFoLNq+L2u8oISgzSfFCYBRnfuY6+VkSmqOkNk0AtI/tvYsxx+LgWmA+f150JqWRO589JeIwDUd7ZMGqinfOottqAe/ZLJNj3xQJFWycejAsTQzyDqngT9Cx1M1xCbF7tna5fE8A6iYIk3/AO6fjn2DZ234gtqkfP41tQhfkHJz7lM3N7KfhY6OyiqAMY0l2 X-MS-Office365-Filtering-Correlation-Id: b9222e35-1f3a-4c58-2fe4-08d5ab928a04 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:00.3148 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b9222e35-1f3a-4c58-2fe4-08d5ab928a04 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.75 Subject: [Qemu-devel] [PATCH v7 2/9] i386: Add cache information in X86CPUDefinition X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add cache information in X86CPUDefinition and CPUX86State. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae Reviewed-by: Eduardo Habkost --- 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 b6c1592..a518a0f 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -1105,6 +1105,7 @@ struct X86CPUDefinition { int stepping; FeatureWordArray features; const char *model_id; + CPUCaches cache_info; }; =20 static X86CPUDefinition builtin_x86_defs[] =3D { @@ -3242,6 +3243,9 @@ static void x86_cpu_load_def(X86CPU *cpu, X86CPUDefin= ition *def, Error **errp) env->features[w] =3D def->features[w]; } =20 + /* Load Cache information from the X86CPUDefinition */ + memcpy(&env->cache_info, &def->cache_info, sizeof(CPUCaches)); + /* Special cases not set in the X86CPUDefinition structs: */ /* TODO: in-kernel irqchip for hvf */ if (kvm_enabled()) { diff --git a/target/i386/cpu.h b/target/i386/cpu.h index fa03e2c..1213bb7 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1096,6 +1096,13 @@ typedef struct CPUCacheInfo { } CPUCacheInfo; =20 =20 +typedef struct CPUCaches { + bool valid; + CPUCacheInfo l1d_cache; + CPUCacheInfo l1i_cache; + CPUCacheInfo l2_cache; + CPUCacheInfo l3_cache; +} CPUCaches; =20 typedef struct CPUX86State { /* standard registers */ @@ -1282,6 +1289,7 @@ typedef struct CPUX86State { /* Features that were explicitly enabled/disabled */ FeatureWordArray user_features; uint32_t cpuid_model[12]; + CPUCaches cache_info; =20 /* MTRRs */ uint64_t mtrr_fixed[11]; --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 1524760326950158.767029423371; Thu, 26 Apr 2018 09:32:06 -0700 (PDT) Received: from localhost ([::1]:43373 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjoU-0004L0-2C for importer@patchew.org; Thu, 26 Apr 2018 12:32:06 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45049) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjh-0000Mb-G1 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjjd-0003Hx-IE for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:09 -0400 Received: from mail-sn1nam01on0058.outbound.protection.outlook.com ([104.47.32.58]:4736 helo=NAM01-SN1-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 1fBjjd-0003Gq-BY for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:05 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=5/tCxPTRnV2VhNpqenvJex6S5oshV7Vf1DXQe3GX2mY=; b=0I3Ky7FQxkFb1h7cNwkfa+Jttpr1m4nz+HT5uC25U3Q4tpdYCbIXR+Yoa7C9fdoPPYFLoFIFoNNc83JFE8qPvD/j9dSmdN96KBw1Y88SWADFRT/R/3vrVHCEpJY2CVHr7zmM4kfTN4iu9+DeYWlZJoCdq8hs0vFvv6+fD/3lIkc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:43 -0500 Message-Id: <1524760009-24710-4-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:56UoofkoHW4LcMIpkQ8yijB8yeVxW9IAeReutJkvRU8YIUMApfZx7Hs7pnxNwtz61izrGehzdwlhCMnJ0tNpw9AT9uIGD2bEWg1W50ouiKQ4dvAo2k8NZs4dkGAt29mRr+P4UG39X1Xy4vtXFboF/mgJaznljYuCP8Y1jerBPhvIW1nazD1FfHRI6voRy/AK2lJQHD7TrLZLwF/7P5RYIfURebYC6A6xwX5SLNhKZwIAdj02N92lFDVyblcGeqMr; 25:nKR3heKOPlz1NmKipfhSXBTQeI8188jEd3PEer0ebtKgibUc52Vcm2XG+GoK6X3vmRqP7rTKZFGvVBxIQh/goTpf6scpkEM0vcPL9XRucrFbrjkPoSAS2lTB/5OLhv3FNQR6UZ3MPJ0IHA2cKEEihF5ljIMpEhh3hRzL5/2Xvh+hAqt3EhEi61b6JETn/qo9zcrGiB1xTGuty5arn1Uy63M8+LXRh2WxV2ydC142EmoS9j20tIhnRDuEtkoXR8bIBCl4PhX90nYWjurd5d5Q+SgKBCHmauB8MIvvZqLrfaAD3Dv9vMRQ1RwKS4vzoPQGNr149kLpRaD+ngtMWl2JJA==; 31:SBpkWXcB2HSI11WljPtcl/w9CumLT9G3rl8CQn1nqrpJusSbcdtqb6BTUXE3SE+zWwK1tHhPLZl9dfMiO8lgKKC0WEVTgenLVn7ewocBo/E4kWlo0LDLxqDpoCQDW2qdVOi2ZfSZcDdLMWyH7iuBd4+iNIPIiI1cHLBA/KztdJperae7Bp733Vxa2ZW/jy7Ebfu0AOFdlBWUVjJYHBKe+6utmOjn/rx9S6GIFVflKj8= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:M2O/WalL4pViB7ixCriTVccrd5xTaqStjoxQlcc7X2zbaOuRCMdG8pMjQQjH0s0Vy747dFzaDLQ5c7m4lCbeKyZYVjbKuMUtLWYH7Zs4z4LU0Nk0Plv6FrBQiwOwxEyds7zrDta21HhQpePdv5WYBkfYkfRUckRPAf5EkrG2jIa9p01x5CIgPiXA6MaYYUb5qmKZUyGYJDC+YVwH5Qqpgo94ozengX11CG2RZEhogk2WL/hS3MtXs5fh7lPYvXkFeP1P3YK3WJrhYUpMgZwHnDAMh5I43eu+gJQZTDkX5P2TDq4gHDqjY06IOeSq3fJmErDu5nSdI9PLr+7sJcNXtNRVbUHXQtmpF8P1zFhj18MJTb5PskIALHd15rq9ImMdSuaCSnmpXEvdmjZbITsurauA6Nw61aO1BewFPfvm9e/bDr6alRmwv5m2lKbW1XLY8hpg2xK3qyRSGGUfsLWFenWK6610nqWixS7BmITkSplQFQmniJqc3KuGCIEa7bDG; 4:RpZZTg7CDTJmHE1V/uEuUd8Oa6pZaVAiu5lgAbSU8FkPF+sh2/qSWaUkheuGkvy5mtHcnuBdPLg5LHQ00BWgy4Pqfsy2rWGXF/ZieZ1WZzXP6jJZR5pMw71OJkFMcEmCDETkVk38Ft9wPnhaOyTpQCKCJ6Xa6DGI2ed0qnLEaBbcuA0elO4kvjnItaOSLVq/kssx38JCzqUiuG11UnST/eA5wxejo9eAVgBIw0cXiXSmi+aU6l9mYROJQof28rJ0nk4uyXsNPUPBnrIjHNDVhN/Lg1Z2m569gV13Hckekt60uY/ws3IFGPWK8gLBLkQ1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(575784001)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:c9xQJSrieu7xp6KU7UgdtiQ2U35pUqCJAIatF/quN?= =?us-ascii?Q?c3EfizEzdRo1/mawiWmhdpvXrOvLgUdctA0qhQz2l+Fi7ItsRNZ0BSTcufEG?= =?us-ascii?Q?QZEJ9of+UTQcvCEf8fZwZ5icQclZdt8rFy0z82QWuNjk4JPizvGNDRP1q+Q1?= =?us-ascii?Q?q29H6or1vAlqU1K3d96rbUYXPv6QYHCg8eoERrBRl5eb5MTZ+HBTBAHUSQvk?= =?us-ascii?Q?S/68GUwVARhSDp68ZXblsYPo4BN9GInuCMyPW15gg9DDR2vEn43I7NIMsft6?= =?us-ascii?Q?Nei+vmiurEn+pP6q5r4UwARbcYDkmmXkAbq6uUGyGC4YwsZIDiTTxGt0mTMw?= =?us-ascii?Q?P6Trxd34xvIrA0UHQ8/Ehgof9VLeKRC4rVKF4CHUceJM1887FICT6W06cJia?= =?us-ascii?Q?6WOF4i3aHbDy+owwKoxaRPyuwIrauTSzdK5DZqB57P3KhE9xs+pcCe/mdrxL?= =?us-ascii?Q?db15oCsmyrGBXAVvA95700pb307JOk3AZr1oNzQh9E9X1mwE9U/iq70gWI9R?= =?us-ascii?Q?V3+B+1lLBE03hNWkxSKdiW9AnnVx3kq+yX42AgtOnC58skDHBar5Kts52tiO?= =?us-ascii?Q?pmMIKrklcYhffY5+HtwtIZITR6eKxuVHTO+bnFRhD+QEelrAJrSOzJdDM452?= =?us-ascii?Q?ZNuw1zMOHnAyx88F9AHDrgXwxmoyXRBj5+OIg8GRLKDo2kHz+xfHzCKhfY8x?= =?us-ascii?Q?LJ8eWItL2SXddPWBKjheHsA4fgMS7vkB8dHZfX2RtC55fq2D1ox67F3xuAbb?= =?us-ascii?Q?R7KYRURpTDMplJqLQhuePipLZIdltRkK+ChfzqY38bwXiPb1IDWaFMrnT3ly?= =?us-ascii?Q?SXYhprMAbTL0vgOBebhjeHqebcz1vZrjCXL6UL5qBpCWblhyO5rUrWpr7z7l?= =?us-ascii?Q?5c2AF146CWB8xI3vV6GOuqyrRHhzbyQFDR9JC49nZTA7FTeSWSCyKE/fQnXe?= =?us-ascii?Q?Gh7UtqlKA8coNvnP/9M1D3a1stlee2e3lTy2z9Zim2ajR6fJilSiGnLp1hjF?= =?us-ascii?Q?kPpnfZOKrelmimkjipBhhB5vYESMUQFtwt6w6ABK5J+aEhwiC3PBWId2S47a?= =?us-ascii?Q?MADebR0WLOwBQCBQfWuuyAzKttGE57UYzDvM+ZSKGSQ2SYCsp9LKAsNgtKHJ?= =?us-ascii?Q?EWUu2LI9bBpNbu0hZHFG0f/nABG3d0qNqvDJFdPg7WZYY+sXULlGKoyleVO5?= =?us-ascii?Q?yTIIKePx564dElX1yhuqY7k0Kti3pRRO3MS7ntpR/HofPShxFV+yNU3JcifR?= =?us-ascii?Q?2OnP0YVUaTvtLC+rZQ=3D?= X-Microsoft-Antispam-Message-Info: gg7Ps74CUsn17rw/A7xKjbmzHdnUt46NXVa28ovQ76k9SUXvY68V+8fectpHv1MBeO79STk6ezWsi4VGgqKSWV+q9/3XkAICaEZ6G1Yk+QL0DJfWIrZkLdRXuul+k/bqYlPp4FAhuRNcxYXg9wcQ1cbskMdgSlL+nk1KbCPE2yJ2APcPOejIdGH63pQaaMiL X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:C6aS1Z452+XIKzCbbgA5k5lfdweec/JaDoWRgnRRFvWFFI3UqteOw6G2SrrQV8Ygv3pd76cJuu5qNQ2MINiYrSWEvjbawCP1e9VnOBK32vOAakWSu4eAewxIla69IGo1pRjEZ3e8xcX7YzZIgnD/Lb08JcIld4ilILatVry3QBJ1L4GUH/3Esvw1zS44MGUQkI2OuKayMMUf8DglnCD0VUI/XNN96RTKdtFyXWO3khapKDmTJ+MM5NR4iqLh7HEBA2OAHtVFgBSzLAT7mXWhyY68YknvtsUJBC4sO0cXoTGLcMIvAbOPlnFzqCbVAemiZwi4MPvDA/T3AA7fLOe/N89ohNU0k2ExRStxdPp68fqmNM8VawYUBbDnRozQVdeH5ulz+8axsuEJUvmN5xz8GFi2qA0wMJPcREEojv+SXG7rEt8nbDP713Fm9/Ue/W1TjQ3wtgQoPU0je3VYcJmRGg==; 5:F3QZoDLAr1apDyblEki4Oaw+nYDdwFGNXc+VQN9pcNJ7cqD5CdLS4VT3JcXAEDeNC8dvFCZV2YCrYT6U5FbtmGdQ+T83NJVw0R1a730eyPMvb1UjWLB/whsxnU2pUrcW69o4FOGa+w/3BtK2HGV/HNRgweiMXz8aR/LBT/STo4c=; 24:YK5tVqwomntbX6bgFFLmIDintpu9sZEA7IvwmwnEQcP90WkM0JjnWJLj6dQApvAz5/S2RKBJV5uf4jxrU193MFhGrAsmacEIrO45LNadTtg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:99kdkbrnw1X93/ji80au4m6cynws4ouZhGBGxah+of/lFNACaJ3V/pfbWhj9Ky2GLY8Wf1h3k4EobU+vcoOHY+5WVt5VitHeSPHzZVeOMzClU00/fYJhGmPTLoP9es6A9yuc5CIZhv/pTzBCguFLZMBIjAyJAlocyl2XyJKV/6CKwS6g62/HasErXzOOZOl6v60bhGAiVI9vNg2G8ZkgZu3B4+MzhwvzaPgvm7Vbsl4Yr+pKaxJejk3fM2gPFgT2; 20:LWX6iIcgEH1zadOl+teQRZKibZHumzUylM3MukNogXJEPFAo4CaqBIwxNz+9IbvMDTN3aWV1lAtpX8eFhm8NwIy6Uu/RQ873tX22bCc3DYBIO63b5+75vADPo4AGFz2M4s6HCRFLIaHIOLewBDnajUwmawrq6CjMVD1qUW9FbfgloivPAK9OO3rk1OrsSuVNc8/sgr+xPoDxn8tY2IZuUKrSRL4MkqnI5ojy6Ik+kmYI+Vrei1AKPkYvWYoTqV98 X-MS-Office365-Filtering-Correlation-Id: 11c509c5-eea1-4d78-7617-08d5ab928acc X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:01.6273 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 11c509c5-eea1-4d78-7617-08d5ab928acc X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.58 Subject: [Qemu-devel] [PATCH v7 3/9] i386: Initialize cache information for EPYC family processors X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Initialize pre-determined cache information for EPYC processors. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 96 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a518a0f..5d88363 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2302,6 +2302,54 @@ static X86CPUDefinition builtin_x86_defs[] =3D { CPUID_6_EAX_ARAT, .xlevel =3D 0x8000000A, .model_id =3D "AMD EPYC Processor", + .cache_info.valid =3D 1, + .cache_info.l1d_cache =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 32 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 64, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l1i_cache =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 64 * KiB, + .line_size =3D 64, + .associativity =3D 4, + .partitions =3D 1, + .sets =3D 256, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l2_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 512 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 1024, + .lines_per_tag =3D 1, + }, + .cache_info.l3_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 3, + .size =3D 8 * MiB, + .line_size =3D 64, + .associativity =3D 16, + .partitions =3D 1, + .sets =3D 8192, + .lines_per_tag =3D 1, + .self_init =3D true, + .inclusive =3D true, + .complex_indexing =3D true, + }, }, { .name =3D "EPYC-IBPB", @@ -2348,6 +2396,54 @@ static X86CPUDefinition builtin_x86_defs[] =3D { CPUID_6_EAX_ARAT, .xlevel =3D 0x8000000A, .model_id =3D "AMD EPYC Processor (with IBPB)", + .cache_info.valid =3D 1, + .cache_info.l1d_cache =3D { + .type =3D DCACHE, + .level =3D 1, + .size =3D 32 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 64, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l1i_cache =3D { + .type =3D ICACHE, + .level =3D 1, + .size =3D 64 * KiB, + .line_size =3D 64, + .associativity =3D 4, + .partitions =3D 1, + .sets =3D 256, + .lines_per_tag =3D 1, + .self_init =3D 1, + .no_invd_sharing =3D true, + }, + .cache_info.l2_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 2, + .size =3D 512 * KiB, + .line_size =3D 64, + .associativity =3D 8, + .partitions =3D 1, + .sets =3D 1024, + .lines_per_tag =3D 1, + }, + .cache_info.l3_cache =3D { + .type =3D UNIFIED_CACHE, + .level =3D 3, + .size =3D 8 * MiB, + .line_size =3D 64, + .associativity =3D 16, + .partitions =3D 1, + .sets =3D 8192, + .lines_per_tag =3D 1, + .self_init =3D true, + .inclusive =3D true, + .complex_indexing =3D true, + }, }, }; =20 --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 1524760702204238.52013754567463; Thu, 26 Apr 2018 09:38:22 -0700 (PDT) Received: from localhost ([::1]:43413 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjuR-0000w6-Af for importer@patchew.org; Thu, 26 Apr 2018 12:38:15 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45064) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjji-0000OK-FX for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjje-0003IT-Hx for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:10 -0400 Received: from mail-sn1nam01on0045.outbound.protection.outlook.com ([104.47.32.45]:14786 helo=NAM01-SN1-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 1fBjje-0003I7-AZ for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:06 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=FpIL3ndkzNTxmnCBHn+V6RG0azA2eeaie5hGPmBl4R0=; b=1NXGto3hw+XjSMt2bRORylfTsfSKmr6yLlvx0+MeCkLJ3Ok/p0WmnHgQsfEqbpaX3CTiA8Unm9sdk3o2MmZBgGitXnMbT7n5fSk+9ZE9eegAsDkWsHA5hTSzPsXvc2HM+nAw63A1E9fibmGXVTKKZhYavYf7nHru7CSUi+IGRTA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:44 -0500 Message-Id: <1524760009-24710-5-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:wt18YnPRlQIGaRt9ijEnMHYDkeTQ05QWjxImi6QBAp24b7XsXfE9EO51inuVQ47dAwiwduoq1EwPLFPvxZLke/LJ/p7NePKWXRRn/BnnEgfAhVeZIefFfKo9qyxLZ0Okru0CvQLg0p43EElfR8wZylULHpnrFJKxJAKEwkVObKgL+A/xwEeSPsulRKAwHwT+kUy7D+Er4YmMbksgG04zZfMBwC2CQKl6oy7axF/P53w6yfnVhWehJoCSXcX7zXcY; 25:0yR1fPcGQX7zSW9wIQCHoRteuz5lz9IL2CA/GiPQZjEtyknWcxIQk7kEsr4S7E1yr0KRXQY467ZdXo2aXiju+0mEg3m6mDj2+jSE/DEQS/UX+ob2fSG2CY094tLVnACcc/qlUXVQBSTMjAMPiwEtidO3aO736obV0s7FN1KiT6qP9+nKI9l/xbq110TVDHm6ak75SlV+bFljoEHdFokqHAdZCJiDsQ5oRVGMTp9lt/4s3dktZVIuhb687yXyp5+81ZHJrknzbZQThWuXVvGgt5F7JBMvIWLJH33QcoXVZljsTbi8uAr5bHu5ae8ULAjqoBOVt3XhDLc6Sf1rGVIXgQ==; 31:ga7xJnfOmpIepofC9ACzSp4fE8dAeafw1Pul1tpPm3iFZlMEQwoOsCVnFIspPzjIfG5Q3l59gai3QT4qoQlBkyvmWinKKJbEyUGB4Ar2j8QmE+wQsZB7j1a5IJgGUoep11fNqh4jzJdTCnpZLDCASuBSRV24/mtnrbDe0l8ySMKPzQlCBRfR8/MdxCGM2kqgUynh5OxXHq2Acl1ujErZLuNHGlwDkz/nEFqJ6JCi8fU= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:3wpDi8/MYZsslCnYtSry1ZVEf30hgqxGvqkUSkyi+tIwjuFZOtEfuFgyU7/6mzXForJZq57p4ry94HKuJ8HNnJBBmvppuZ5ZMXEtxkhCsEtRR0+2daYEiGpcvYl5CpVUPwmedoXQ9TBHewxpvyP5YboRlQNjC8PgYYta7E85prm6r3EB3lO8AgKggYvV20WHgzVxFcKRs1u1QfgJSTb4WXhGscMxFwZwrlzjinWZBQRILQ+++pbtEQ7nFlqCxNwmtoIR+KO2XPVaIBS8vCOASB3FIA67j7r5FdR6mZJMl086l/jQrxHEYQUUA9Zs8FHMLDN2KcJHVxwQ3Kx++z9KhHGNHJa+H1QPQloqb5v0s+Zsqn/CfLa1QWE1z7KhYYqKJVSOgIC8k+pClLvkyPVVZA/gJHe9KmEkU1Vc+ycartv9AdKt9QwKYBViYSkQ/j7QaeFuvxPNwFcP+r2pN0HG4vA31ViLUYOXh4AqmmGcHsz+nPkNCw3dBs86HknPAxxb; 4:heXResPg+ikdxfpG8fvma68iXgRvYs9JtmXO2sK1bDa+aX1zHQsaSOYCx1l/GkZ4KrmR7/ztMnFLx6Iu4rc7NJW2faRT7Mp+B/ba6ayazlDqTYD/Gjaz9NBSWz3BvmsBQlUBqKdXtu1INGZ75LUsljahTEQs+gNqicrKkDHh1PrP+yGnrQiZBUiQ3Zd1eU+8u8Ivof+VWaDKJq/5+WZOV9/jcJGgg6DKUbCYiqkuCa8kIPRTJS7SXfbte3j9r6tIeyZMoPXZFJfhqc86pdLgm/W02w2dWyiEXHspWRIvClTkG4nVL2qvOx/+hYh6qcsh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(45080400002)(478600001)(305945005)(53936002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:rRI7VxGC7TcdLRPgU58tka84O1hjS9OznG0yw9mhs?= =?us-ascii?Q?aso5/Oa3fUYp2m5145z0FgXRHajmC/Mx7E5GVN6xT5qA1y4fJ/8LvJEg8wHn?= =?us-ascii?Q?4/82/BWVidSI0POqV5Z4/LSPmSbZ23IdlgTzY74tWI6u7s/5XdNwdMT5OWzA?= =?us-ascii?Q?Xu44C7InRxGMPaKRfjeDSUaz2dm7GPsNiujuBLiaPvGHB7rxr9HCpFcm52ql?= =?us-ascii?Q?fUTbZiHcXfMArq+3BRCcl7LIL2sWU5D7Fd181zx8KMAACHTlJFUcBUF8gMVC?= =?us-ascii?Q?zzVSz3BabsIAJ/b+3wZuKal/s0cUkhZCz5qjDQNu8sTLr8ZLcfubfBvuwVy9?= =?us-ascii?Q?ht12TA9bx/+vc46CvaacM+4XGtpRgQcNXQ87sm6lpbsDWcpRxz8fUSHZrYrn?= =?us-ascii?Q?j6iUXOR0OGqYXppE+MoisV+Uknzqub4wVhX1wHuvGYhm8e/juLyBkE5jlMq8?= =?us-ascii?Q?PqJZ84DQYesiGNgV4UJz6yROkoXntoUivQXGbEngxKSdgIIaHSlnfmc2Ytwx?= =?us-ascii?Q?hlOrAo79Y8AT0YoUb1+wamVKqDdPdh+9t3doA9D3Z3QHcBlUSXiqDW/NHObV?= =?us-ascii?Q?VAcrrnL1jhvyDckPrELqcnwZ+mwPDYTgq8GJ6pa1WGF6myNcC0KmTPNbxNN2?= =?us-ascii?Q?iXOSQPI9bUz2qm7tZQfrE9nHdFkXlcaIsSKiyWPq4FB1vJfLJo/ljVxAVDIy?= =?us-ascii?Q?1lIuty/ahEVG2eThW6lxb5K8J6rE5YygxaBd3j2fnFagjJf25XunngoyxWCP?= =?us-ascii?Q?zOA6jeun66a8HioGaqI8TJ6YmgYLdjvvw5BOXRx8M/3XqGZO8FefjvQv9IVf?= =?us-ascii?Q?/Ybywj45AuzOnZTd/LI3Hx8zDDSzyt9e3c9Pkl9SIY5MQ2v0VzIpbLTaO2Ac?= =?us-ascii?Q?u+05ZYXQ+s9fxHCmr9bf0UXnDrLXHiSiYoZXOabvOgK17FldUNqalomX0R58?= =?us-ascii?Q?4cAeeXtSPEnfEOOCicRuEW7tJd0FnhNuKudn3AWIpeQAZrKyiC39aBDnkCCp?= =?us-ascii?Q?2MWnleBKtT4mScyYMiJPLPBIceccwk0qeXtLfoxbarXly4oDyACtB/Br6Bm7?= =?us-ascii?Q?p7JSE+azI7AuKrKlHeAGIT5VrZ4unD5GyAW662fk8zr99D6qgQ4wVEvYx7Yi?= =?us-ascii?Q?N1tcqPkvE+Xh/26vHJLGHQLMP6FPEeXxJj+xnQX6pwk8DXvF5yp5wa/VqISU?= =?us-ascii?Q?I6wuaX2eAQYzeyprNk4H+vRpZl7ji76EnjyVMG51CLonAgCBMP25bJmJfGEC?= =?us-ascii?Q?5DV8w2BuVNl6ncZL1g=3D?= X-Microsoft-Antispam-Message-Info: GmFNnipnpkDBB3FDBSwULNwaAw5UWIb9Hb9vHH4CeyaehNqZWP/AH3lShAou59i2WSGspk+FzSVPSDHL81osy5l0Ez0Ir49Sx2/sS+VxddSRakvV4HlM5DNScNZugy4BcB2dlMmrecwuoG1N59XUx3Ko6ZWsWb3h2q6kcvtjabpVsQssDc94uYdMpEKLFTul X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:eHv73g2dw35JGKnzntVvu6eskk5hlFoDjPH9I5r4t5GtsMY8AtSi0Ye32Bj7A3HO8RgrousTld1XEsd1a97sjvfUYlLyBVn30qCOdwpynlv/kZEFL9YB1a+7zlEP6Fuci9IiOxHSphM+2s6+Hl3yewxfgA+vFsgMu0C+f3C5iJmyCae87vLXaRdlOobpW1tHSc6DhAgvLYfTM1zCWXajb5E+e6rPz6kydM7j7iqGP7l565ZyXVl7OguLp+A2idrfW0wB1uzqKS+4Jg5t6gu+KZtbtfQy8C00uKa4l4YMCFiUMFgCLaZQBUA4eAMqSdcpYFbJIx2OHMTz9nS8Jivy/x8rupjHKlcIB0Hw6qdQu964jx/i5Z2adwZqsNNngooSLcAVGKUxZVaHamtl7bv7dCAOl61uqIBedu+xh+XHmbC+eDdXg5C+DJJF61OlTZISzJpQGj+6oXrkjLwAaMO2lw==; 5:FfGvC+wYdQl370h0mFeUGEclvGCgrdvwDXtnh0YJsGLmTzosyxdlVTqqAGsnXXz4CcRffjU/J8jsbuX20X6Azrkf/SYCl9DqOWzGqtoY4z2FEOwtL0Y6Ch5YOG4n4y9eGRRA+UzwKrSxznOMiQqMZS+b6OQDgdvVmPwhXLdlro0=; 24:tYZ0F+uMclw1INR4fvFiwySHH0ABn5PjqmRbb80IM+rLSiyPat5UqSSB/qWHrfvFH3o2NlBU6t4N7fIKq4uzLYHHnwfLrBi0XjaFjaB/jSY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:oYAjZyUtWh+46G0Jq1KAplfDSXtGd3pQSK+4O/GRITQAPQN9awJ/23GNCBIVoVaQe8+wsTSX883M2cqvHn/tNpJqbwoVL9tRRPunY9K/Lgu8vY7f/sfoxdEQ8vB3ryfgbypM/w5R/rYk6GMeXgnB1CReMk4oOdIrxZ/hGhvQEqIIUVLAC13qf1rKPguiZ9hQ7sLW8glvOYrUY4todFvB121Qq0CjmwPVexQCtPqX95hlRatMW5H9U1JjPPWC8Pyu; 20:/iFZS4dRDJvs8ltNod7eWCsnSvCL3X6w4Wi9wwI7U/sSVqRAPq1QjvZnvPx17ufNFdtgi39lyhrIUgE03mtwQJKk8l7SlhmFuTNehdKvbdZUtNJPLPn6fIvtdhsZGOEd2WCteZEDi59hyQKqY/zO5Q/qB7Xa4mRDJdup27P1yieEY/Y535bi7K4gtCvaCMPA9Mqc93b8xwl3SWoGwHCp+d5jF+fhLVsKgCgIkbtBEzeQXH3ueqRRBrSX5gZ3CvBg X-MS-Office365-Filtering-Correlation-Id: 783b73c2-ade5-450d-e4b9-08d5ab928b7c X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:02.7836 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 783b73c2-ade5-450d-e4b9-08d5ab928b7c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.45 Subject: [Qemu-devel] [PATCH v7 4/9] i386: Add new property to control cache info X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This will be used to control the cache information. By default new information will be displayed. If user passes "-cpu legacy-cache" then older information will be displayed even if the hardware supports new information. It will be "on" for machine type "pc-q35-2.10" for compatibility. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- include/hw/i386/pc.h | 4 ++++ target/i386/cpu.c | 1 + target/i386/cpu.h | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index ffee841..d904a3c 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -327,6 +327,10 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_= t *); .driver =3D "q35-pcihost",\ .property =3D "x-pci-hole64-fix",\ .value =3D "off",\ + },{\ + .driver =3D TYPE_X86_CPU,\ + .property =3D "legacy-cache",\ + .value =3D "on",\ }, =20 #define PC_COMPAT_2_9 \ diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 5d88363..a27b658 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5138,6 +5138,7 @@ static Property x86_cpu_properties[] =3D { false), DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true), DEFINE_PROP_BOOL("tcg-cpuid", X86CPU, expose_tcg, true), + DEFINE_PROP_BOOL("legacy-cache", X86CPU, legacy_cache, false), =20 /* * From "Requirements for Implementing the Microsoft diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 1213bb7..852586a 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1395,6 +1395,11 @@ struct X86CPU { */ bool enable_l3_cache; =20 + /* Compatibility bits for old machine types. + * If true present the old cache topology information + */ + bool legacy_cache; + /* Compatibility bits for old machine types: */ bool enable_cpuid_0xb; =20 --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 15247612317191008.4687996130006; Thu, 26 Apr 2018 09:47:11 -0700 (PDT) Received: from localhost ([::1]:43467 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBk34-0000VB-Na for importer@patchew.org; Thu, 26 Apr 2018 12:47:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45076) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjj-0000Qo-S9 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjjf-0003JB-Sw for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:11 -0400 Received: from mail-sn1nam01on0066.outbound.protection.outlook.com ([104.47.32.66]:63008 helo=NAM01-SN1-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 1fBjjf-0003Io-M4 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:07 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=5QHx01hMHYOcwUtJPHJDU2owDSP8wysEEsrl1lxUtQ0=; b=oCGeuptxbpiaviEAHVwrH/18PeWg6pkb1xCc7ODBsRvofK3C24MOSW7dah6s0twbtqDPvMqLsUt9neIWg6+Q6k/Li3hBe9IKxfC0wJJTfoA7x0LemdjL5gjD+hlfK/hcArDD8vcGMMNBKIbw79sjd4iX3ulavhQUamTNWcUr7KY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:45 -0500 Message-Id: <1524760009-24710-6-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:8a4bFzhBAwLpbKU7r9B5B7aK/yV6gfPu5djIie73IjbLX+oPnlHg+UDiXNtbojq/D0OzLAbXy2nLJDGO+5TjdyeORvEtQi1e8XGu74VeOF0i1yOrY4Ur0NyNvZJU2W8AKldaRksvK8fQyhYmkk+TGU5Y2FGKFKpUYYu353f8aMLb502qIXNKMcl9RGpjvYRyHFPBICFYb3Y+cv5BSvLpdx3YrjCHmGDQZgPuOwaoRkLcSZ0b1eQTQV1O8/onLmZl; 25:z/JyxEWB0bgNeX+tLpKznHB/moVa8pQ0BA+4SO+dLPRnAyLCJ1kYH0Syja1JHCLG0smiyjnTgomzYCybYSDI4DPumTYM6RCdeUGmv98OxOFJhLLsL3lQe7y8fyMpyvSvZpW8Cr//IZ+RCTY64bZctcN6wXNtL+UaZ/wNiU9HTihvHi4toXFMCSe4kkgF9u0RTj7q+Nvw8979VO/nEm8+sXYokEfLrTkknog57NYgDL0M3xsT/iq722P2J5kGubFOjlqVLxNKDfNDfdmZMNu+jOWFMeGON1BImJduKbEeXBJtVEIO/1E3T3gn+xSpP+x5o6dcAr0gXzcqcI0rNOZ96g==; 31:qnvsRNbsKQHPbDvN2I8EJK0xqNraw/F8at+X7CqQILsMXerpxywx1yOlbnwoYX2a25mzMOsmikYT/0hCSemSOug8QM8cIQOxY9kMnFTlIIEYX2FrX7enBaxRvwWbHnzYd4oJCO7kt0yEONbHUSuv8r1DuRvdWdSYq8ADIW7zX2tLXP3sLqaPE+I5IVjunWXF+3iLPdWe5sYvIBbe3iO2BHoYDfgJ3wLX83Uz/jgRCTo= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:eeGNnWIR/5d3HyowDhOYcMmjLmPYgo5hRsPivbmKEGyqvX3y+ksIo7ix3oHHiRdw0EWm+BmwoKIeBUKWYRbJ4x4SVwX55edWjZG7m5Xbbv86/pSJVZPU+ruTTQDfZktEtZXH1HLxLi/IzRvM0h7T2nl/f9LvHzij+uqSPU6UOewfEyEH6z4jM/PMZZLXGkOcGZc6ZPATU02PaRVTGEYn/iDGRc5BSg0sT0NaOndxcFSdI38gHBs67kom1d5aJqr/6anjex0ryg2RflNqQnskBiLhgHL0ppkxwAN/j+ZYP2KfSX7TZOH1H6bCEbjZc0ABkvRGXK49TG/N4ocLjv1wmY6lwGbz1NUgTlv1eO33zP85+p+OHJbDE/fr6djdrIjUmHjHnOlFhcwAg6i38qVZIcMxpr0Kj1+Z1RrFbCBVl31ZGbXYUhdIzF6x+gx9tY8WKy9ieB3IIMdKB/HYDeXg1PNfN37E+qFZa1e7LSBi0rvomH5/sHSIyR6rJEzL4mYF; 4:y7gNJ7+i2ZXDUOdw71Qbg3Dc7FqfiPXggC7LglX7Fpd9aIbFAsGREzT9NRFm08gSo1+3P9DaLTDTZZssHYQfe2L9YdNE5kPjI+MLsauFN5xO4K/avGWHFgtEvyVMDlyvHdKWBUffsWO+a3DBFS9zh80y1osIR+4KUEp9WnLIc7jhkDcH0SsJmwB/LQe71EzP/+TPrVAiav7A3yadJSJ48p3IZIVLWAHYOSgRLEJVlS2EF91UImVQGudwoDQ3wRMzl9cfuL6itrfiZxRLGMub7Phqvt782Y1WICJq4J9k5CkPczNeHebv01VjMq2B2RMA X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(575784001)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:CtP1ARYaX/Kk6WicohUBrHjRj5DgSMqXS40yxrIE+?= =?us-ascii?Q?mspuDzRO78xkvH3lbUqT3AdU7Lzsia/dVIXWGP/oqRh1WiPP7TyimJEtVDQ0?= =?us-ascii?Q?eX3P/FM0lwOv1wYFV77g/6ZEg7eBJUoiuwjd5lG8CI79SVlr3RknyMfgPTEp?= =?us-ascii?Q?dg9YxBFVG35QK6S6xS9S1F1QqXVgZENVYB8kcpxkJIQQzZwcVvBedNhQR+ZD?= =?us-ascii?Q?UKylkWEeQHkRiI0j2tJKkwiaGcUHaA8BdYSAGXLoUzWU/bItc+j7OFY6I73B?= =?us-ascii?Q?4oVgDcgxN21SaVs9PobOOpid3sbjBREZTKipLuqVm8GBaa1qeKSE6KGnsAxf?= =?us-ascii?Q?ftU2kIseCR76ZSbP1L6kk61KHiQaGrTlu/E6cwLYcYpSg4HiDAOlXGPkw3in?= =?us-ascii?Q?PepecGRckfcPQgJl3R7oVhLj5GR9w6P8xtQA7Yv/xIIP5O5h03NCBhQhpsOc?= =?us-ascii?Q?TPheeJp/3VegoMmVb8hKwuCDGqdV7aiVu14UeLvkteRZOt39RcVY/MCR3mt2?= =?us-ascii?Q?PHnPVjm2yRKk3KWXAijwp551Z4azBXE4NNMzMnmg6HaIz3V/3ioU0iUuWuOk?= =?us-ascii?Q?dgKPraqx4Usvp8oI0s3zp8E2jNEygeWoKJlMFkT+Rz1nvA4hStFn/9wdgUEC?= =?us-ascii?Q?xqZaskpUmxUmVKlTkYMb1POUu5OSsOxo7wVfUzJcJTGJiHktfeeuOj8RI1Ww?= =?us-ascii?Q?ucE7JDDhNXpOBQCrGVDZOSI1Z/BEHBXRP/dpRsubdMoEWQeteQwziYRNyQUZ?= =?us-ascii?Q?D4F7h/4kHk/3XjcgPb+qqssBK5oQg954AuTezhCl5SC+1K8Xq/+Tutu0ptaX?= =?us-ascii?Q?ppV6PO5zZet2Z+ld7KiQwt18ImlKf3fhDWixKwa8rMu1BXIJzUbBlYINaSyf?= =?us-ascii?Q?gu3pOfxyY4s6jiYh2NeHRNG3GlLI0EpWUd5jreMRqkexw4ZRbZtcp7eWYrAZ?= =?us-ascii?Q?5Kc1eiJlTw85gbL29QcT3Hf6qv2NKuqOvb1OB/k+DprVDSNrAlAAP2KZyCmV?= =?us-ascii?Q?lsP+wQPBvGSYtQh9zvep8NMRlscPq+m+rkPAHO0KRkuy3RTD0fqyiDawmscX?= =?us-ascii?Q?j2VNfcWi7PJqTysdd1Ix2cy9seszs73DJ4VbHJoLbsaG47aFNKwApcB44zFG?= =?us-ascii?Q?EJxMukO+u/Pwjg8uh8F1xph7pyuBDQSWFTM8LS22+q+9L+rBA+gFUUuTBzZI?= =?us-ascii?Q?ajWxcgtwPOl/gXZ0ZxvGEPIwkjgrwwMsmnAU0VGh8pMxhpekgQOw7QCxzeYd?= =?us-ascii?Q?A12+5otz+haxCTxM90=3D?= X-Microsoft-Antispam-Message-Info: CVjnfFNzOjhONY5lE8qANFJOs/FGpA/ozVlA94p/wXVlCnJy91kOzWfxigsXqTcpbYM7vHZvCoaQls1/qlx1zBSGiMo6Xv/zw13eUDccz1Vn5nS8G0453ZR5MZAk8jGU8TKxzesSzxgHwKw/966qV9wUZ8o7SslhtL3+O5+f6eO/XahiOJHXJ45CLIwwiBGk X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:daM5T081S9v+jJHCmEgcz+ZMT84GJCqQ/qctjIzeoGdCgnlCKyPV9Knfb0Nw6UwX08mCdKIqQNABODPhZ6LSnI9EOEQE1YqHSLnp6w9G/0f7qzJGMlGDEE/SJxOGTmXBjgFuDnJ+pwB4bdyWUJvLziHfY1cbOy4bTnEJuT12jzwXDlbtsINFV/EEgG9CAuD4MCyXjJo4ftgb9CMg1ZjyMl5PlPagXGviBOTAuMniZEsGJMV9tCgMLGHXNTRUE0sLEKCFkmoxQ8ykiytgn0Pi7XOk23E6mOEk1QdWoQen6kJlEHqenB7sjt2WjBI/WYO6N8zPfYD9dgdMP2U9sn7NHHXuJP2pV5Nwd5W07Uu9K/vEs2lI4l2XGqUJwO+WBU5s3kEOPbpDUoYWPzE+cdzsa4G4ZdIGZhnzccE64EQtgqSKmoGdZpj6+0XPoi3e59Glzb/RPAO5XvanfqBFvgwR6Q==; 5:1poimQlt69Qym4GOLZKCn529DW6YjeyBe+7MvMYVdaP/4ATwxC28gE4YVrPa3fIppursW6u+CUyTj5ifwjfJ3z0RWT7WgaTWJvfX5b2qmnNwTn3gHdKIP3ohfIuiL/eK79+yvc9KBDA001cSP0Pnp9tyD7tTDCDBAQT8YVkOk5Y=; 24:VKvR++JuKarNZiOVheiQAU/TbxEKMxF/z4WnBOGNpZbTwxB2x83ft3lv4HWMsT9ZiWuHTggwRUQBaxdZaI34Md6vFJ3i+8N8jxxWwfn8xX0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:pWiQxMLa9mGDon7u4jKQ3Mk0GhON7My73rzdqRLdNBIBZ8SVvWszyoTEyzSaGZ02o2b+fmzV8rzkiKkK5XbnxlwpEq/QbSXtPlbbSOskXJXm23gBFSs17BethlCKhDDrMudI9Isx/5tWNVZ6qR6f99qTEG35H4g13IGTLofnn1M6528QC+dNM1tr8BQMWyCWOPYYikGVqmKH6nLfa0YjKZFyVnnF3jIr2dy77s9Nhv4JhT2ymzFT3Bw84Dal5Yoq; 20:R+4p0biKq0UACCkOiEZnG7OxVeaTBHhVWgJl3OpcrzyKzsJND9FGa39BD0YZ9iAnvNqsfK57JuTDMvKicnScsIHj9MVjegbwbbA8JMrug9g9hoAi1RmEHWJkIyZPOb+86rZ7Bj5Debf+41Icz7Y8KpsfYx1C4hkNaDhAMJo1pMpNC5jdcxOWtjaRiCFbcaRSagNZ0mvkirXOUNhvMAxCqZkB3cavuQqcHVz2Yw99OCj8ZudoEe2Hxju2MHP42E6A X-MS-Office365-Filtering-Correlation-Id: c9862c0a-897e-4e58-535c-08d5ab928c2d X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:03.9398 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c9862c0a-897e-4e58-535c-08d5ab928c2d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.66 Subject: [Qemu-devel] [PATCH v7 5/9] i386: Use the statically loaded cache definitions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use the statically loaded cache definitions if available and legacy-cache parameter is not set. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index a27b658..56d2f0b 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -3941,8 +3941,13 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES); *ebx =3D (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | \ (L1_ITLB_4K_ASSOC << 8) | (L1_ITLB_4K_ENTRIES); - *ecx =3D encode_cache_cpuid80000005(&l1d_cache_amd); - *edx =3D encode_cache_cpuid80000005(&l1i_cache_amd); + if (env->cache_info.valid && !cpu->legacy_cache) { + *ecx =3D encode_cache_cpuid80000005(&env->cache_info.l1d_cache= ); + *edx =3D encode_cache_cpuid80000005(&env->cache_info.l1i_cache= ); + } else { + *ecx =3D encode_cache_cpuid80000005(&l1d_cache_amd); + *edx =3D encode_cache_cpuid80000005(&l1i_cache_amd); + } break; case 0x80000006: /* cache info (L2 cache) */ @@ -3958,9 +3963,16 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, (L2_DTLB_4K_ENTRIES << 16) | \ (AMD_ENC_ASSOC(L2_ITLB_4K_ASSOC) << 12) | \ (L2_ITLB_4K_ENTRIES); - encode_cache_cpuid80000006(&l2_cache_amd, - cpu->enable_l3_cache ? &l3_cache : NULL, - ecx, edx); + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid80000006(&env->cache_info.l2_cache, + cpu->enable_l3_cache ? + &env->cache_info.l3_cache : NULL, + ecx, edx); + } else { + encode_cache_cpuid80000006(&l2_cache_amd, + cpu->enable_l3_cache ? &l3_cache : = NULL, + ecx, edx); + } break; case 0x80000007: *eax =3D 0; --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 15247615376671002.8123506967287; Thu, 26 Apr 2018 09:52:17 -0700 (PDT) Received: from localhost ([::1]:43495 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBk80-0004h6-S3 for importer@patchew.org; Thu, 26 Apr 2018 12:52:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45094) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjk-0000Rw-Th for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjjg-0003Jk-UH for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:12 -0400 Received: from mail-sn1nam01on0049.outbound.protection.outlook.com ([104.47.32.49]:52196 helo=NAM01-SN1-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 1fBjjg-0003JY-NB for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:08 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=lrZhv8JoRCy/liBRMH0AgztluC8X/yg5moDGX9cicG8=; b=LwoSzc40BiehxlhlNiNb3+BAAnI5DReui5HPmu9qzFT5ATxjjwt11K7qKfwpMgBQkFRLG1MbANEibJxJD64p9bSfXbkEFZ00erYlFymdFo76zJhtzcspVMJLsiUIRltRdyheEshqqqxB5IWNVCZJSGm1la6gUgMdCzeF/Hvn19Y= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:46 -0500 Message-Id: <1524760009-24710-7-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:JhWtjTm2vrQM9zfqUt/pjSsMHvW2HqdXDnWjZEgYeczhfORAZzecPmaDDg5BHcvYRcvo5DxXg1AmB/e6kChkRQEM0KZFN+zb5+RphsK/e1xrKNDBdyta7Md4G8unwZpY6ExXA2+7In8NdoLKUz2f1VuN3kIoQiQ8Zm8Gup/SKYa5u+0sQJJ7hu/bcYKzLJTiOFvvB1t/1Q+ZfFLe6Y1uzdp6VwgcFJ5hBnJfesYLbl36lwiyrYpuqsime1jWmsgR; 25:qZo+5ow8I5u1M/WD0gqmBxOv1wg4et4aBthVAL+A5FB1qLcgf2V0AZBs2UvRGTGpNaWxE3xCVG1pTJom2NIBuxA6pP3A/8hLKjZwsfYVx8GjPewvHPQL0/nuV603TXKXZsxxjZvjANo49NeUVpTyl1SyU+N7xjZMjyz0P0HTS2ckdd/DNdnxcUZf/qvHgeircohHIKUbG8oD0ourgAQnn+IbXWP6kGHP80VptKzN+O1edF4czHGKRDXxP8GnmOGkmBroD8vIgouefKxCTKaiDqeMw9IKxJCAlTRzyqw4UgydJBlU+mPucMFFMIvfnfrAzOuAuBfWRoAXfqffPxrLhQ==; 31:07SeGoXccwv8/N7y5cOlsV0op/40QRwB5mA9mxXR/xZymMTUeCahfBD9QOnp0WEn2uIJi2LEWrsgb0UiV/gka6+wEF831JmwYyEvKRUyeM2UD0oM+ZAo8kyyVbPxdU+SekfqOLFRBnMwJTrrngnxffV//lxklT1pfBkpYLBstZRuCmkvmQmVghj5Q9t9SzpY2D+jbggP12bx4IKD4WDDNlblXA0E+B7KhEJY6BEyKN4= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:8CYYbdMB4Q3fWWaxfeXPPrFyFvLba6oriv42cD0LuDCenQya8E1M4kD2CeXxC4n2ImhXF/bjYtGfhiYrDt1iTnnlR+srfwaROIF5geEqh1pd6VEVVfLlFdUN/mOPgS8K9HQvn6zhIcOK5dHaxe/ggr0M9CHwz7J5xivleZaom72lxAIxyfg76Id+Cglh5edd08ZeYviZ4XTDJmLmYjjP//ATbmsZNnAHB29E7aE0Amd0to1ZbVIaK5t6cYb9VT025tks+LQqbA6yFwNvd8NAUTJ8zYpfq/jACrWRHbO/8LYaDs+c9tUmVjHpDQ2n0vqUoqib5opcj6ILeMxV0xi8Ef7GnuAz1TGvdZZhlDIp7cw67Cn/9aR0OuuJlfaizawCgIbV5PmmYCrm6h/TdNutGXQNWK+nUD6mUlQaaJimu698Tv6dwtVC+VvVovBn9qAjtLpTX3AsbiN5/RwAkNPiRlEMR+Hiqn1yFAojacyOKlk27CU5W8GM1P0iTK3u1RTJ; 4:oXJG47Dcv7v5Fw5lMPM7B2vi40AC/ZSSKpJaZzeIlDu6Y8rkF25NJt6SBvWKTRHd32y8MKyJnmpEavTCs+VddpRaihie/2ZTtyz7OuLaVBfkYzEwYytd3OCj1IE/Ec3JAk6w13Hq2e2KRPHgNN4uUAaKi/3Fnpmh7Y4RwkLg/5Rk464yAVRAzGg8rwcaiHW2vh7ZJhny2I1NBrr1rCkEU3c4y0e1Hgrr4Lawize/KJPcxLet6QrAGS+boCv4X/VGRZCCCxTXsf93H18G+tPFWDL1mXz+4CvMRqXB5goC2H+4lJCwxwfFUN3+un78yeWF X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(575784001)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:0Oz/SN5SjzVXrvgaEuVrmO5zJjo/L6UeYMZRc95fd?= =?us-ascii?Q?6+cPmyP+Lxxpr97RZ9NTUCzD0Iq8Oi0lpUHGTejGI+N12u19mOueQhv1rd1g?= =?us-ascii?Q?lrRCUtZauepvH3RHHYIVApGzV86THE7FE+K465YYpmp77RVt+z9GBnLwHTs1?= =?us-ascii?Q?DeW+gOpxLDSKLGrdhXlMhKFzKqSykC++mgsw48B4EvDGhsIitcy+5ZmOmqrZ?= =?us-ascii?Q?xvgdgvhnKR0jv4qhXNfvY0oxZII/HYlcjyDNw99P6k3xq5ZUpgcxbL2tSr+s?= =?us-ascii?Q?VFQW775Rbh+RGFlo7SGnFPEnWh25CiVPzkLZdGwPw7tqwBwTjBX24VaM6X5o?= =?us-ascii?Q?hpHxZv6BGKArHTJ0iub/erfkCGHmGsR8G33CIviD+6VHPWXAVGVZPjkaPbj5?= =?us-ascii?Q?KWTYQscETgB7zUyUxkuCJ+fGiPqjhPFKtQFxGAzUuDH1rG3Lu9inrvOtuVeE?= =?us-ascii?Q?8Wbcfx2jCW9YcW4AIFe0H41+Tl5WVX20hJZ3cxOfXWO2voP/l2edAoJuO1Y1?= =?us-ascii?Q?d3zGoodc697GsGIBJOc5oKwFzoCY6vmP++f4GGdQVi54LhL6CsnqR9FvVEc6?= =?us-ascii?Q?6c5IM+id4Py2eMuPmrMQh9irNXgONtTL+DA980UoR0qPvJoAlg5cOolaQAPR?= =?us-ascii?Q?Ipb+xkyXJIttG3z+PpFg+shDU2QADA4+QADLN0T8OjJ+ZHX/Wd3S2Gx9AVYP?= =?us-ascii?Q?id3IY6c8dMsWRZ4Nro8TYWtI6/2BJAaUCtzXPFRQ4dTDmE9qQV/ZZSjawTPY?= =?us-ascii?Q?aH5jhG2z0K9dWgd1zlHPjNyIeaOlEXes9MUGJbFQj94oWF/h3RGS7t3Oyl2i?= =?us-ascii?Q?YqvWZK9HQN2RVSl2URohDNt0/8EoqZvfOVrMWnf3eGdw8YiCJ4akDSzePgfc?= =?us-ascii?Q?AoN+R+lGi4Kkmv8ujABwV+WLEtnImrDRtc7qBbuTjyyt9fvlpTuSuruc1d8E?= =?us-ascii?Q?6f08y3M035eFR75zEziIPNxy8+DuEW/wgmZtD7/RByyEKRScdgbx2V14Zv7+?= =?us-ascii?Q?QhUoaSCFc4zlyA3ix7tCfthUZZZ1GeF2nShVAG1Dr3goUZLmstfoupReeqxY?= =?us-ascii?Q?ih3imdsUkKwdgQ0tpqQ26eC2Gv9YK7jz5c9PtOa6ZGfifY/lE7fnmZy242ie?= =?us-ascii?Q?G3oSLWg9tScnjoCf4dCKskJo4KI2eFcRlUL5oATc1OCvhGK7Z9INNd25Yjxh?= =?us-ascii?Q?kNx52aATsgj6gLCx0/t04e/2OXboPVfPMifAxSUa9RW81gcwO5Rf4y94x0ma?= =?us-ascii?Q?5wqq8oihg42bQ/WM/A=3D?= X-Microsoft-Antispam-Message-Info: 05jcTj1yx+mZJP050hKEtV2QFbv4cOaiUDRGJJaYfg7TuBBvLDj5F0HketNEO1NeBcOciFMmD2Aa/5q0e0x61bbmY1zq34l2mDzsmuEx/d+TBeek6qqI0CFrt2pmdblzRLFr+w3N+FVPiSoV19RtVaP7TH/+yaQPxOsZ5OguoPgpOqnEisF9CnGbiHPuo2AW X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:ivrrZJ0AXIhaYBRMe0+rA4j9HVvIpbrgei+jOwtY86P7L6vLPCWcSFFbA/jMVtu5APpcnniHeYF+HPAqMXocnkB/ZurhM3b6IZU3tMUpiU37ibdsLDWswSLroFkh3HjIlg2MdX9L2yWQrLEPLKJjDOOgT53Adgl0mYSbtDtJemP+745goUrZULryEocJ+I0dArEUZJZk6h0ubOgPQOvf6vA9eD3+tSebQmqoyFW8KoL2T5ERXTLWZ16mdNJuwiyDwb+h8m5GD/rpLk1AHrsyuTl7du0xYmwIF5h1kGotGW4FGmM8mSkX1hZ17VaQ5xoI5Fx9FKj3y+X6VLAqPOeQfjs3FIBvJaGcf3lVzK1zOV1cE1AP2uc6V/JtKUVPbG/3PCwVAP1F4wZjT1Oj9n/3DO4NlpZcDSqa4CmpY1DwnEELRB4Iu0CRXMPafYysoOO9S5BBSFPzA2qmil9IPkO90A==; 5:w19bH/wWKsTHKUCzrrd5+5mD3R/xMg6tdA43zQnhEbns5FVOixLOz2Kpgs+OkDi0Va4JSBc8q5Bw/EqTjf7x2B+NARSIcB5CeBHKYElfU7d/+ONWLQ33BTpblxaLZZw02DKTfQLoUbuw8CU5VIhfU1vOtn35NmbRz0xr2lRZsjY=; 24:VIJCNIxeGPwaTLZCgWxi00ObNcJUcArbnVzMQv5eQkJ+grpPM6iUo+UHpR14njxXzURQnUiq95JjRu6YR0Xcy+6me2UkFPAWapWwLAcUYX8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:wT53hLfvl0tv/9liK25rGNkSmD/Wl6zifC+ViAH08yStuXbMFGkt9g+mnRBPFE+mWNRc1xiey6RoGskwS6L32+pAg2ZUeyQWsjcysUSGSqJpAPi3BqFbrh7d/1UX0qsvMJRTjtyWQTelO1OVNvJ42SQBga0Hz/RZZva0fHI5wC0wSI/VtO/FT32nCqkOA2qDdRY7MYGlledzd1GDAlUYwWn6aROZ8cFHwBGsu82UkKrILMdCdk6AfJHeKeEv4WxF; 20:Z4gYZIvk/SZnZSA79NxpBYdMvmkNT+lOWoav4sLwPo+NoUGOzDZRetcz2qMa8oLpvbsutNMb0OMMRVGWC9k+9yuleAT8b9bAYjRsVNOt2+tDaP+zRE3oSbLfeb7P29ouOOIlXLX5I260unfTYe6HvltJHZ+8BtnIpuVqXd/kan+/r3Q9PWUhu5dye3Igzj5T+6CnUSN7klrpeEmCccltp5lFGoZ5xSY1N/tydcOyaNVUPLgvuCq8394b6ruKqN2e X-MS-Office365-Filtering-Correlation-Id: dc2db44b-40fa-4bdb-2459-08d5ab928ce0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:05.1117 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dc2db44b-40fa-4bdb-2459-08d5ab928ce0 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.49 Subject: [Qemu-devel] [PATCH v7 6/9] i386: Populate AMD Processor Cache Information for cpuid 0x8000001D X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add information for cpuid 0x8000001D leaf. Populate cache topology informat= ion for different cache types(Data Cache, Instruction Cache, L2 and L3) support= ed by 0x8000001D leaf. Please refer Processor Programming Reference (PPR) for = AMD Family 17h Model for more details. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++ target/i386/kvm.c | 29 ++++++++++++++++-- 2 files changed, 118 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 56d2f0b..1024b09 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -307,6 +307,14 @@ static uint32_t encode_cache_cpuid80000005(CPUCacheInf= o *cache) a =3D=3D ASSOC_FULL ? 0xF : \ 0 /* invalid value */) =20 +/* Definitions used on CPUID Leaf 0x8000001D */ +/* Number of logical cores in a complex */ +#define CORES_IN_CMPLX 4 +/* Number of logical processors sharing cache */ +#define NUM_SHARING_CACHE(threads) (threads ? \ + (((CORES_IN_CMPLX - 1) * 2) + 1) : \ + (CORES_IN_CMPLX - 1)) + /* * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX * @l3 can be NULL. @@ -336,6 +344,41 @@ static void encode_cache_cpuid80000006(CPUCacheInfo *l= 2, } } =20 +/* Encode cache info for CPUID[8000001D] */ +static void encode_cache_cpuid8000001d(CPUCacheInfo *cache, int nr_threads, + uint32_t *eax, uint32_t *ebx, + uint32_t *ecx, uint32_t *edx) +{ + assert(cache->size =3D=3D cache->line_size * cache->associativity * + cache->partitions * cache->sets); + + *eax =3D CACHE_TYPE(cache->type) | CACHE_LEVEL(cache->level) | + (cache->self_init ? CACHE_SELF_INIT_LEVEL : 0); + + /* L3 is shared among multiple cores */ + if (cache->level =3D=3D 3) { + *eax |=3D (NUM_SHARING_CACHE(nr_threads - 1) << 14); + } else { + *eax |=3D ((nr_threads - 1) << 14); + } + + assert(cache->line_size > 0); + assert(cache->partitions > 0); + assert(cache->associativity > 0); + /* We don't implement fully-associative caches */ + assert(cache->associativity < cache->sets); + *ebx =3D (cache->line_size - 1) | + ((cache->partitions - 1) << 12) | + ((cache->associativity - 1) << 22); + + assert(cache->sets > 0); + *ecx =3D cache->sets - 1; + + *edx =3D (cache->no_invd_sharing ? CACHE_NO_INVD_SHARING : 0) | + (cache->inclusive ? CACHE_INCLUSIVE : 0) | + (cache->complex_indexing ? CACHE_COMPLEX_IDX : 0); +} + /* Definitions of the hardcoded cache entries we expose: */ =20 /* L1 data cache: */ @@ -4013,6 +4056,55 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, *edx =3D 0; } break; + case 0x8000001D: + *eax =3D 0; + switch (count) { + case 0: /* L1 dcache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l1d_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l1d_cache_amd, cs->nr_threads, + eax, ebx, ecx, edx); + } + break; + case 1: /* L1 icache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l1i_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l1i_cache_amd, + cs->nr_threads, + eax, ebx, ecx, edx); + } + break; + case 2: /* L2 cache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l2_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l2_cache_amd, cs->nr_threads, + eax, ebx, ecx, edx); + } + break; + case 3: /* L3 cache info */ + if (env->cache_info.valid && !cpu->legacy_cache) { + encode_cache_cpuid8000001d(&env->cache_info.l3_cache, + cs->nr_threads, + eax, ebx, ecx, edx); + } else { + encode_cache_cpuid8000001d(&l3_cache, cs->nr_threads, + eax, ebx, ecx, edx); + } + break; + default: /* end of info */ + *eax =3D *ebx =3D *ecx =3D *edx =3D 0; + break; + } + break; case 0xC0000000: *eax =3D env->cpuid_xlevel2; *ebx =3D 0; diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 6c49954..6e66f9c 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -967,9 +967,32 @@ int kvm_arch_init_vcpu(CPUState *cs) } c =3D &cpuid_data.entries[cpuid_i++]; =20 - c->function =3D i; - c->flags =3D 0; - cpu_x86_cpuid(env, i, 0, &c->eax, &c->ebx, &c->ecx, &c->edx); + switch (i) { + case 0x8000001d: + /* Query for all AMD cache information leaves */ + for (j =3D 0; ; j++) { + c->function =3D i; + c->flags =3D KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + c->index =3D j; + cpu_x86_cpuid(env, i, j, &c->eax, &c->ebx, &c->ecx, &c->ed= x); + + if (c->eax =3D=3D 0) { + break; + } + if (cpuid_i =3D=3D KVM_MAX_CPUID_ENTRIES) { + fprintf(stderr, "cpuid_data is full, no space for " + "cpuid(eax:0x%x,ecx:0x%x)\n", i, j); + abort(); + } + c =3D &cpuid_data.entries[cpuid_i++]; + } + break; + default: + c->function =3D i; + c->flags =3D 0; + cpu_x86_cpuid(env, i, 0, &c->eax, &c->ebx, &c->ecx, &c->edx); + break; + } } =20 /* Call Centaur's CPUID instructions they are supported. */ --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 1524760868435456.506135914432; Thu, 26 Apr 2018 09:41:08 -0700 (PDT) Received: from localhost ([::1]:43429 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjxD-0003Te-KG for importer@patchew.org; Thu, 26 Apr 2018 12:41:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45077) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjj-0000Qp-T2 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjji-0003K9-5k for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:11 -0400 Received: from mail-sn1nam01on0066.outbound.protection.outlook.com ([104.47.32.66]:21611 helo=NAM01-SN1-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 1fBjjh-0003Jt-VE for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:10 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=oy0vgeJE8cb1bY9BJdg0LUABnwkTTo1XoszxVpxIuUw=; b=sn5bpMy8HgpbVhJT04kA1ZkY6vA0aTnANM4fCkQpziBpkd9XHRuMpQWz97kmcw/9HuNqEi1x0+1qIANagHV1BW16yqTREHXJ367Xg7vMAHk/UGkNqgNXuuEPf0zM+t2Cf64fFAwSfhc12m9CJSY3ZIHoWyfb1npim96B5amO/cc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:47 -0500 Message-Id: <1524760009-24710-8-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:0/m5xlVvc/JasUukeai7pUy+sqFg+edZWiOzRRvDiE2wgmSucgE6MEkJFrTknqv2GoIk1fL73PmqshWHrXt+y2sltviqLUVyh2q4Re3q1egO+cfIMc9+TAMee+wr7GeC46+7xLvZZAI/IujYlx35wSYD0MXNM5S2AeMtEusD8OWD744VPYFVEsl/8AWCG2DfEl03z8/aGizbBeisGor2uFr8aRUs0keOTiiZN5rq/SNL6GjCRgAZfGnQDDOqO6EF; 25:MYM5chRif8MbT7Fdw01I/C/OUtWKDa9oz3YTAL4VLg+u+62LsGk3+4MJoJCIe+7MXkE+alPsKYTBaNxM1z0Rbs76CfyP8JkxSexHruvxmV+gOtnMvydzsr+eiBKtjBtoFk63AhF5/UsqzU4kCmBajYSrFdKHiAfJ8ljEEHKeBvUbTaXaQy1OKl5XzgK+Xhdy01IUi1AplZNcf2T9qiBPLtaGAZzo9wY1W4yjirDizCxOlkrq5N/xW8Ud9YlhIkrNMXPTPSCIWBMumFDKiZ4lAwSpbW3ayhgupPw/9RvaRs+rlHq6PGJJ8rJstx5FLi4l1Yjswyn2+hL95c3iO2fhcw==; 31:T57zMHX0SxSYBtMxrPwVlKTdBrf1Ll1FLr8WDqjHfuvZ7oySMf0IyvIJnMGPhu1CNAy16/rl3wMmI39exS9dGNGwrS7AxaTfTaSWcaRQxQuvKQL36dS9MJzfiDgbForUs07GAO+h5e0n15FQYF4ICM0Wa9iTbJxk8hNo/kZwHgBzIVPQxsPxtLWD/JF11hOAqFEiQ1365J1iDUj3jbq4OHSvFcgCrEGYjwX2mJYhn5s= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:tY/qYicDvV749cen4B+Logy4r/9de7drk2M6HqqBxHbUz2DM1NPrnIylXNz24iyWy5kQCM3iTj8k8zy6QSnSODYdIohdLdfv6Hhgf18vPeikTEvFg6+1C1OSaPDEBtQuKPpkZZh05EwI4Kyf98hW8Pu39sGeW04NTKS295dHDOuPe6oBfuwcmQ37ccAhzPjgG5R9eRGyy6F296v8Wo08x0JEKhRditRuK1XWijVcgbioNyqKHQybMm8hjz+oVJni+rZxs2Axq6bibrYq/87+QBqgyxlUFs8Bc0rbI+nXXbjldHIYO1Dp8KM2f8xZR33Wlt/NyxqL6IXWmOOVMk0Z2QThNpBZdphpd9muWiUqYRh8yn9Vcj6DgrpNXKWUsLfcC23f+CCPxR9o+VrhwJ3QQsqyTb2rwq4m0WpDEp3vebgQnW+XJNh7VUQgF3ddQhJWO+9gq2gYgcPQLy93c4Fov4bva6a0oCYdAt9XXv1BEWmDoNbltAxaYvSDf+jyFR/r; 4:GkCDb/lVMkB94nlzVeJ8IEtW1lFV64SvY6A5bKhGX5eEbqPe5cc7BaB+ty7dbJjAmSfCYrweJddNdNAB2p3V5KUeUUZPlXWDAAyIDuxnc5/ujhMdeSx0l/gJa0xet/CI5texoSmdf2q7pdk87aueqkhybbjPgwOnMx6H2pp8tbfc0rXSKI5ON/8eGFoAc5pc2VjLTDWkaqeqBnGj8wVlAlvovul2GKON/p5sFTbrAtELd4tESXIYmb3ydTVQyy0LJESxrr8oRjGUBzf1fpPz8ADrY8sLLvnaOeOgFGeKKJJlUXJR0ntjg5bpbOS1TRAt X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:EBFzLsFnAkD7N3wX0CQXAEBqS/H9NFyQBlyq76G9O?= =?us-ascii?Q?W0oSn14pYz1R5aRKtci6IqbJmMzdBTIee0zjdLhByjWI1T6UTAg/J78Jea5h?= =?us-ascii?Q?NhoNIOgi5YAdTgWOJ2EwocumBx3OOHRIdByw4nzRqCrQdGT4u2oV+2OsGDhw?= =?us-ascii?Q?Cr71gdDcO9GEqZUqviOXb8330ZytukOKWzAR55b9hxHphMFenenHxVY8xQsr?= =?us-ascii?Q?GXZyUKkcoOh0Z4Wb5+tSJNBdfVEntTpl0hhvPRgX749sGGw9JMpxXsAWcAge?= =?us-ascii?Q?7N2nOtl95KQIbcoOJHZXKVIm0+Gbx/meyyQ9x5fAswe4ajT+gPCZvsxmOTWX?= =?us-ascii?Q?DwcFeYZ86sqfaZhixrdgpnLhTMYXEAFRxA4Qh8+T4vUKd3YC+OfeyH9zQk5r?= =?us-ascii?Q?L18RoYNwCWRY/U5j0v3paegnI90xuV2+Fg2utjVaynXr48CBjqsbTxJO0KrK?= =?us-ascii?Q?d+hfWZM/l8EGSXGXfaHUnASjYz/FHTZgA9yVghaH+61ajjWAncTGvcakGPTy?= =?us-ascii?Q?8/gYm+c08a3LvfBxSYMsabfbzs2H+n2RrHYQ7U8EyLZSUQDliXDzoohx9GsP?= =?us-ascii?Q?iHgopE86q8NMBqkmp975q9A0JweZXcMi69jjVXacPs9NBwg8OoNMHnFpQn4a?= =?us-ascii?Q?EzrLZhDeqFQfeYR8otHEQKB8BHZKCZvkOzFBHp/ZRyv4XzYNJekNCtXrWl02?= =?us-ascii?Q?HNnV36R9yHUp7OmKbsPxfquLeKqO6udK7ziZOGvvilGFoJDaDFK7R/gNwGA/?= =?us-ascii?Q?G4NiL579mNlSm/TPrNbs2T1+EDCHTBXvRB64HlgyLvEna56wO/MYWwbwCFBQ?= =?us-ascii?Q?BFT6W97QPlwhFI1aBv0Skg5XnmIA2hnNTOWvpI1n1vdA4NEJWNU0HNMu8bQc?= =?us-ascii?Q?ryuInYkZCN6nwbrMPiV8MOf/+FzxMJlOoVVOgyLNqsiVr2ZsBeHzX6pAdRz7?= =?us-ascii?Q?phPxwo8qqfybm6xWXo7shF8YmuEYYDPtjGYU7FZ4k8jr2JWgJZ9alj89TwEQ?= =?us-ascii?Q?Cw01VAyLfWJfHqGss46YXDLIk9cl5uUz2Yphz+FeD1ifJQ0I2VtLyAF6BARK?= =?us-ascii?Q?ingAEnW5I7pbYI37KAe21d1icF/vc5v2Ez5kAMC7LcMoXX5F4Fas8HBSiXQ/?= =?us-ascii?Q?6lYHNiwuLNPIU9yczrmCs0+1PFV+6fvlxlApufjUUfiZccC944jtd+4GxuNl?= =?us-ascii?Q?SmWnNjSiDqX7jM2ESufn0xjSNV2+hwZafTYB14ino4pwev3MkpW28zpjw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Antispam-Message-Info: NW3JbpzDAgn5FG5irWcjjVVphGpuy523tvCDj2Hg/iOSiVZ15eFvoayQYd1H/6B5eGXC3lUsAPbo+xztVoEcH5ggX11bl5pVBK7/4jes5ujnXUpqtWtmUW7obvwqRW5n3EfksKHLMEzjRdg96agYT4/7m1Ko+uskgFrZ3MVPyMt1Tw96ow+qdgbl/x7tjNCh X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:0sn8ukYoNGh6p4C4SF1Z96xx5nmS1HzZDBGBwoec7QTN5FlzepHLXxn6f+nNB9W6UVkm17/wfSgOKgNTW76KfcbQ73x/0uStd17S9F8poDTaJ8FwR0PgNM+n0pY0Xs/W4PXPrI61vCf2LYKmxN3seBgQCoLQi9PvoZu/MaDC1AmyNMdcmb+3ZGKoxZNVVGr4OZHim/qgj9jpmMGoELa9t/HIwyi/9KV8x4o9jM7dho9mFsIqWd8L2q7SGAdO8524rXMB868MqVyt5ESYU32JcohHTiafNRK4QIpko2nNZgffpqeimxRmWUUxcsEqBr2CYxaqbNYvr4pB7gWBUWaEoO7RBfLZAslt7p5Rj7Cne2f7zaCMp3zvhFbp5e7MxjwJbRz9lkxiTjs483RoaI5PTVkVmtIRGlfeq6ZHmhUtRc9viWkjcEVc9BWl8wkwl27BvSMt1G6mHoaf0VkskMDHtg==; 5:Bw510oaP3P7aQeWUCVIx/PlX3BaNbokubZ3icmE1Oi2Mtl+Glyy8lRDSD+Ciy6yPwighi0i94hLvEzgEP33JSDir1tpVMSCJZMQSPjcZCixv4uFz7pvX7/Bk9TDynv+EVVhlDbq7Hq/Mm10c+FWpEft5cwxsCw0U7vG+ZUtzGxk=; 24:dZyZdHkwVX2KRVZnEtBwMH28DCDE8eI+1P7IaJ/swWr8Gdaxj8nIDKsEEmBKugu1Nuxt7LmgbE1aOR2IcnC0XpWSJFko6cdYOqs+Qp2Nh3E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:yQ2inEwU7dBF+qnm/3n5Fk73Y+raaYw+UrS5pebNCSJCASo0AatbA6kDj9S1rbkMf4QnHXF/QxP3ChpGIfXW6SF5AQ0Aqkx8jtwdZMz7YJtTDFc1j35kZuWP9KyOaXxRNSvnk7ZCyhYleRHJ82NUmcoUzBo2/Fz6vzLqmLR2AUBlMsHYrJ8Jh5OwsLESxnhMfMT/JZ+bRLfcRaw5IomgF7lWVHrDVd7NpbcHKk+rLwxiZXBl55kFNzNoRydkNKnk; 20:qkriysDkOzQmsVTrWo8U8Cf7wwwgXbxtYHBxqe3LiQlFzNC1kZRK5KXx5b5/ibdFfy2D6C+PdH0/KFWyLzTiUxxMCgU4BunNPoF+2VrkQOp6826PaE/ONlHYjvK5T9GYmOSWUzPBLwqVUVclETnyTG+rLBaoVxi3s7seVvSKy0hDkhftwVkuo1Bcb5TElgGZt8F3C+K4idjEj+VRjrxlcFRpE1TKsfaX7+3axTRLQf9RPEileuKU0XM27e61dmiO X-MS-Office365-Filtering-Correlation-Id: b7f6e437-c394-42b1-5660-08d5ab928db4 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:06.4399 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b7f6e437-c394-42b1-5660-08d5ab928db4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.66 Subject: [Qemu-devel] [PATCH v7 7/9] i386: Add support for CPUID_8000_001E for AMD X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Populate threads/core_id/apic_ids/socket_id when CPUID_EXT3_TOPOEXT feature is supported. This is required to support hyperthreading feature on AMD CPUs. This is supported via CPUID_8000_001E extended functions. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae --- target/i386/cpu.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 1024b09..1b15023 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -315,6 +315,12 @@ static uint32_t encode_cache_cpuid80000005(CPUCacheInf= o *cache) (((CORES_IN_CMPLX - 1) * 2) + 1) : \ (CORES_IN_CMPLX - 1)) =20 +/* Definitions used on CPUID Leaf 0x8000001E */ +#define EXTENDED_APIC_ID(threads, socket_id, core_id, thread_id) \ + ((threads) ? \ + ((socket_id << 6) | (core_id << 1) | thread_id) := \ + ((socket_id << 6) | core_id)) + /* * Encode cache info for CPUID[0x80000006].ECX and CPUID[0x80000006].EDX * @l3 can be NULL. @@ -4105,6 +4111,14 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index,= uint32_t count, break; } break; + case 0x8000001E: + assert(cpu->core_id <=3D 255); + *eax =3D EXTENDED_APIC_ID((cs->nr_threads - 1), + cpu->socket_id, cpu->core_id, cpu->thread_id); + *ebx =3D (cs->nr_threads - 1) << 8 | cpu->core_id; + *ecx =3D cpu->socket_id; + *edx =3D 0; + break; case 0xC0000000: *eax =3D env->cpuid_xlevel2; *ebx =3D 0; --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 152476103221936.70088075510762; Thu, 26 Apr 2018 09:43:52 -0700 (PDT) Received: from localhost ([::1]:43443 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjzr-0005ug-D1 for importer@patchew.org; Thu, 26 Apr 2018 12:43:51 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45106) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjn-0000UK-Jm for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjjj-0003Ke-Lq for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:15 -0400 Received: from mail-sn1nam01on0076.outbound.protection.outlook.com ([104.47.32.76]:50560 helo=NAM01-SN1-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 1fBjjj-0003KQ-FN for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:11 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=HJW38t5G6BaTV+1iaz2VP8VakpWdp8Db6XQNnE3bINw=; b=o7KLaq5NV6TtUHW/odaY7GU6vkT99GCXGIBfSQDy3LRog8wUHfBWemMf1fwr4QhFPC7WPFlPbm3gdrYtWHn139RWVkCAJtGHMcyfXk3yqpQbbLyLdufRpaQjxa1oOPYhnhs/zK0DoqzZu0/FJAsI2wb0XW+ez1npEdTSBfFgoHs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:48 -0500 Message-Id: <1524760009-24710-9-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:8DLPqPqHBlIBcG04aUkLH4FNEfj3DEUm4Gwvo0vJ9lcg9u4yYuvQCSkl85cuuKf+SScrME2p5afvFs67N4am3uHv8sauDbgMlcGuNE8CPyY3KsFj/c/8BbWYhE6P5BoZWT7HQ3uB74GGYhJ/rnmhQLV0n/VaX6Cu9bs2HfiKCeKWfaoMBZEo5iHC4MnV0pltdncdPlrWNRqDPOg//SJXSyorqoRtVNhSvDxWqJeSsjN1zYfhGBj3y73B7GSwLFFw; 25:Ay71e5FASsYStxd9N6K24VOSbE30wdQsPpKdzgl7UHOdHW3wsnoefKxhbJ9ngWLBhgBmzETGs/F1XtLKvD56Gm6QeX3gsVV6RFN8MyEnr/yMMSqeaK8NhoBjeBdqQ3kt12zGapVOuJtN8pqa//o6WhKA/A75FDuxSfi7wyD1mY+8tnIeitpTm+rJdU+HXvNSB/ifvWDYL++OnT7/jELstwH63wO5bUAYzPXQ+Y3ehs7F3VdoYaFULA1vagqh/I7PtRcBeoF8P5+LGbMfBbhVPlM+eKJvhv7IWO5CosLvrDnybZC0RwCncFvKI18nkCoKz9AkXAcp+gq63byUWkxcKQ==; 31:fgqeppbD8fp1mkUHa9MWYoT/Ldp5MH6SqcuOFzTnoLiKkrk8ytN69gqRLuteEZw32sA4KJgsnVSd0TTzu0PmLnpiiq6YBOOJ6emHtc6znX3pId6mo+S9IiWngco2077T1sX2zIUzr1SEOGTLCv3+eOZCkuhsr23pzQGcvX9+eDQHpwHMFM6q5GHW3MPigZ0j0RAhx82QklL1unLD9sF3jep4d7Iol1ujbXwQCALOxfc= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:89vQ46B0cZJ/d3BBUOueHwFXrsrpxgrqVjNxdS3Q/lv/XZWcUxaxQHwFgbxTh8TgED22+968CGSiYiUmjLPb0cM71y2waI4iQDCLHkCsbR7TJF2fw1QcbWozc1Ylm5uUL8BIzERzWjn+8apRgd6gkDSi7qQyRltHyiig3wUuoOihhiHGmccY8DtK4p+M8H6igCzDcgSUHezsYeIkGKiLUfhxzJvWrnw8Sxgm2vLtY0/OYODg0ry8Oq5K6XVJggM9GUixPODcYkdVkkeqt1UgN3GBLBXGL11GDH3CtAQM1DLK0U1Lx0+910mliQBEk53pv1HrfLnvtXYpPDd1wf8sZvhhIJym37LodNJuLcOWL5BoNnX1qMY9JIoNKSlDjY5vBM/PuJ0iKEne231SmpRk/aNcINRaeJSzTblnkTwoaLEn/4O7VRkzOEbx1uPsBkbq5k+dt9pVY7pOm+lDWeWI0+rbiGXpXfTNXST9M28bsQTgV7k4WJa+9CK7VEP9oLmG; 4:/rll6zL7UE71ee1riEyZqwUD0vzKs4EOKMacpXJma/eNnESQiDHiTBnXhmDMXLpf/vqcYZh6IKh405HB7hQ+oMmMrioKO6xrJJ01NQM7++Vgq9WFLEZNuL0c6Yz+3VFu2N/nJ6ZS8GlRH1jKk4/6G0Rej3bEeOt3740sNdBpfk4oNc7p/eqPgLLC2DgcLskkKx901tmD9zroNjnq7gSAMmGXwI4yQqFWucVdv1Wfhir29MQQB5yVt0xpuBxbKoQkJ4oMO50W5Of3AD4NR7IFM/mVcIVZAVtyDWRZPFKndF8Fn4W4M5YfzfwCsOiVmL+5 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(59450400001)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002)(217873001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:haeEABl5hU2G+c5DAy/UN95KvECEdB8QnN1+Gr0nt?= =?us-ascii?Q?z48+EK6gRMjD9qYg3O+ucFEHqFaM7/CcupKkRNh/2/l/qZLPJjZyzoWqs1br?= =?us-ascii?Q?zejM1hepUdX2luJqRSLxKsQr46nwoC1FarAeb9TjiNzyEzJUQDmLJ18g1HOI?= =?us-ascii?Q?1S9k6XN/+Fk4j/6UPPHj+CFhFrnjitfGUduH0ZS+O54W5sqTztEv/Yodt5UL?= =?us-ascii?Q?MY7nHXvI1ow8l6wIyLrdsrhyEeQ1/dPpSBJH9kqJGTVV6bioenroalJXhkpE?= =?us-ascii?Q?bnXnO9fPY01LbVjv+KTblmImIAMiUw49F2HoVMOBFI0qmmR2AeSYEWtVacB2?= =?us-ascii?Q?cPvdK1jMFv178tCe0XNuvflJx2ds0Mvg0g5L6gQ27xXJcoFXsnLxB6mTJglx?= =?us-ascii?Q?g8d59tC9N86CbWkwSK6BRBWj4SzQkiL1HhzIw/yD1WR08J/YQX8HNMbUdlRh?= =?us-ascii?Q?PLUjY64U3KEiNUTfdYtMrSYjr0eBgWIFpuTxZ1R915oGxgw5vNzBV6TmS2cF?= =?us-ascii?Q?9PBD1KQ088YAntaBc3Rq36UjMJt4vWbSSV4vLOG2PXKKENSsaXn/ZpjMytb3?= =?us-ascii?Q?8he2/FK4zbBDrxTYO8f3HhJ0eQnGTBbWdZrjNHcbrpmoVZlIROaMv9ylno7P?= =?us-ascii?Q?zn4Qr0JonMY91pkoI0rShYONcksmHES+MiFB15E9aO93vyZIW+9GqtarJ6u8?= =?us-ascii?Q?nA47aVlfJ11JL2mOVNf01H4Gjr+qnja1NwDco+9Ph1gzVQ7yb+sVCB9MyTUb?= =?us-ascii?Q?xZmRv02DNDksw1J+ZlDFrUnhSjWb0/PH7s0KSHKusMMD+SH4+3B7wRgPbbw5?= =?us-ascii?Q?LZsNWAbZKGGLpKcWOJV7capQ4GHwWNwWUW+m/QJwbDjiPBtLXzW5ORY5UqY4?= =?us-ascii?Q?gJw3d4sZDa5adaSFU9FnA99s39ThV8i41nZG/btHvFm4qiPpDCDAV7g4LJw2?= =?us-ascii?Q?MnYSdZaUdyLVjK7u3rKTNFhpE8YNHLRtXp0Wg+NYtKnVLOVYvbarvJFVDzUw?= =?us-ascii?Q?phjGD7OYYy/HVbPElEZKMjoLnIy+COIxAsvmnZb6Q1+p+ZGM4uUzfOK/MmiS?= =?us-ascii?Q?0SnCm9t3pUFxTGoeDp5bq0D0Nw8jgD0lozW/wbhqEbbCWtAxb9HXdn/zVNJ5?= =?us-ascii?Q?06JNerX722KLE02H2gV9opUvuo7n1tS7WohK4R69W4BsEsW7YkN1n8kqiwz9?= =?us-ascii?Q?sW9X701pUpayXjI3nbzUxre5kViPCHu3TgI0rQaxJ4DcNvX0NiTlnTQFQyWb?= =?us-ascii?Q?E1vn9cv6NuABHvon6CkHLGwsc1fZtTKs4vfVNBW?= X-Microsoft-Antispam-Message-Info: Ow7rINuB07lwzxs37LLQn52qRcPI4IfP9Io92SYLHKvG5GF6kuZ9AZIJIHmzNw+e0N/JjcLRVDZ/RYTA7KJ+yZs+ZvnfXsOdS49W5iSE8bS1vObC0of2pVvJb4m02GP+u+NCraSE4dXhI+Mndbr1YmFsa0WaCVPDj31zjLwIZDesvcxYbcQxbQX14+eQd20k X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:AJaAJ0lp9qqKWNiNjLH9qYOa0P6lZDGK937TbAduZpkyCu9/hqv7d0QphmG9f9P3O6wBSJNbDSQFwTXVQnEzdJ+l9wdMvOfjOf22ktA9qeoeOMnVNymAqalSoe7Tw59xfsLnmT3DgeIs7QyTPJWkcaHwmS5wzd3i080Q/p0JY+u5pH2dgZXYSkTfgpwmVsSfRo8aJ/mNQ9QkLWSfIWwXNVONG1KYS1jbQcmoBVHxLXar646WDqBnsGVF9fy5WtrBNJIs2f4seLi0c7eNkFOJRuc3btRTf0z/O7yvqLp91XPjhNZeOUJ9axkux4WZ0mYbYBSymhNrqPyOCmZ19XNeLG9agywG/por9YcjlmOwCx/UMKokx5El/PimjseGyibbL/s9LlkKbCspkfL2gZvoS2nDMmS2Njdns0HFAmKHRLd2Fc5pFJSs/8MjCxKC4Vmm1f9rnokpLZv5QQldog/FPA==; 5:eT8C5EKpegUlKhE3o8QSI/j8lhzDD6sAUDzx0gqGTA8vDzWWda+OQTuWCA/GWGAdrE5YXuh5lKb5Aplk8TOCZslwYBBmzDtu/RU7roqAn0fZvOyLz3VlzsAedsuKNz42G89x262HGjcvU1rDb2AIEIlSegXZQWF8aWRTBN9slko=; 24:w/wRpzgq6xBrK+WCkYnrcf3hmRe2pjgCo1UrFFvz+O7UIqMR3oBy8auSXlrLXeVUlWArLBZoXNgPBdk4dCm5UEbyazPwgaAkJFEYGpmiax8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:Kw7xF1UecV0eFt7pXvfnoireHgIsJZQ/K2tie9P23fECX+1VtP0eVC94XL8Z0l8/UrEiKHMjwKhYO0GkFIM+YQ71oLfve3EJ21FtPPh9Yml9jABADxgd+36xF9541TI9kLB+3OCpQNWq//Fjj2Z5za47uVfIUvmS6WybEi0A+ZfeKjQGRKEg75MGGEWqRW1T2BrzMa/GkocWNTvVMetph69svccKOla5MwGJyoRWA/cVnCbXZkYAeUr9acNWMnBu; 20:sSNJbl6trNd1zsA0VH+HPuSVmyjOM1aRqD4hlipxhv/k69IBfmyEtMTHVqugXFN3AyiDKeQCCjbfxS4DH2rLMRArD+5Zf+bO8tcoEQF5zbG/hLHhwXsfGu8sgGKAzVXqK7zZIOhSDIHL183lEgVhFO4bwCOSZk05mHJ0bbP0ECy0qhQ2Audn8lSwtkBuGHUxAM+Jju9CwD8dE2ww/ApiSErQVedvOkaFsxYssc9rtoBi14me6Thzbo1z07OXttRJ X-MS-Office365-Filtering-Correlation-Id: cfe79b2e-59c0-46a8-3a47-08d5ab928e7a X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:07.7992 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cfe79b2e-59c0-46a8-3a47-08d5ab928e7a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.76 Subject: [Qemu-devel] [PATCH v7 8/9] i386: Enable TOPOEXT feature on AMD EPYC CPU X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Enable TOPOEXT feature on EPYC CPU. This is required to support hyperthreading on VM guests. Also extend xlevel to 0x8000001E. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae Reviewed-by: Eduardo Habkost --- 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 1b15023..6ebbef2 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2334,7 +2334,8 @@ static X86CPUDefinition builtin_x86_defs[] =3D { .features[FEAT_8000_0001_ECX] =3D CPUID_EXT3_OSVW | CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE | CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | - CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM, + CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM | + CPUID_EXT3_TOPOEXT, .features[FEAT_7_0_EBX] =3D CPUID_7_0_EBX_FSGSBASE | CPUID_7_0_EBX_BMI1 | CPUID_7_0_EBX_AV= X2 | CPUID_7_0_EBX_SMEP | CPUID_7_0_EBX_BMI2 | CPUID_7_0_EBX_RDSEED= | @@ -2426,7 +2427,8 @@ static X86CPUDefinition builtin_x86_defs[] =3D { .features[FEAT_8000_0001_ECX] =3D CPUID_EXT3_OSVW | CPUID_EXT3_3DNOWPREFETCH | CPUID_EXT3_MISALIGNSSE | CPUID_EXT3_SSE4A | CPUID_EXT3_ABM | - CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM, + CPUID_EXT3_CR8LEG | CPUID_EXT3_SVM | CPUID_EXT3_LAHF_LM | + CPUID_EXT3_TOPOEXT, .features[FEAT_8000_0008_EBX] =3D CPUID_8000_0008_EBX_IBPB, .features[FEAT_7_0_EBX] =3D @@ -4580,6 +4582,11 @@ static void x86_cpu_expand_features(X86CPU *cpu, Err= or **errp) x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000000A); } =20 + /* TOPOEXT feature requires 0x8000001E */ + if (env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT) { + x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001E); + } + /* SEV requires CPUID[0x8000001F] */ if (sev_enabled()) { x86_cpu_adjust_level(cpu, &env->cpuid_min_xlevel, 0x8000001F); --=20 2.7.4 From nobody Wed Oct 29 06:55:00 2025 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 1524761668400364.39359136895246; Thu, 26 Apr 2018 09:54:28 -0700 (PDT) Received: from localhost ([::1]:43505 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBkA7-0006GE-HP for importer@patchew.org; Thu, 26 Apr 2018 12:54:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45116) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBjjo-0000Va-LF for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBjjk-0003L5-Mp for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:16 -0400 Received: from mail-sn1nam01on0083.outbound.protection.outlook.com ([104.47.32.83]:3997 helo=NAM01-SN1-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 1fBjjk-0003Kk-G6 for qemu-devel@nongnu.org; Thu, 26 Apr 2018 12:27:12 -0400 Received: from bmoger-ubuntu.amd.com (165.204.78.1) by SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.13; Thu, 26 Apr 2018 16:27:09 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=oTM2m5FB/q5ESDvF286atu7IlNL6QExoNcInsT0w/m0=; b=t699kbZXAesXczd2YiINIHUj81MevdVc3qD0JjTUbl9NxON3DSFTCI6wSUZorBRchnOFdKDQR6sjGPemY0c9lYIvY87YEJnodZAZDGAl3FivsBp8VKRcLpiZAtXWzFxWRT5WMuPNq3us8dRILY8GuAcIIYBxM6lhSj0pKpcBClg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Babu.Moger@amd.com; From: Babu Moger To: mst@redhat.com, marcel@redhat.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, mtosatti@redhat.com Date: Thu, 26 Apr 2018 11:26:49 -0500 Message-Id: <1524760009-24710-10-git-send-email-babu.moger@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1524760009-24710-1-git-send-email-babu.moger@amd.com> References: <1524760009-24710-1-git-send-email-babu.moger@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.78.1] X-ClientProxiedBy: CY4PR1801CA0020.namprd18.prod.outlook.com (2603:10b6:910:74::33) To SN1PR12MB2479.namprd12.prod.outlook.com (2603:10b6:802:29::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:SN1PR12MB2479; X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 3:dwfPsXAU/QV/BgKckGgxO/xYhfY9JBHZZluSJT6kI/+G0yb5z+uUcow7Yxdv6j1n0IN6twW66KJON8lvFgA5djVDp3nEsV+69xt6QgNT0I3Fyc/o/TGot5ckC+9N2uWAEQ7TkzieFX7VyYiDd+4RSrWhYXFTTBaJKwPbtmDlP0MNDCKuEyWenOoBt5lo3tnYZf/uM0SjvF6mdhfbYqH3P936NjC4AX+U6oHk3K3qkRusJ6qS/f3pxN03DlOoAPtk; 25:saeAD0R0+Lf8HM74boYFzVN7ZwOr102tTjd+jFqfpoyPURV153QNVb07yHDLQJlnFq21F7hzibzRT6j1Wf+JtTX3nHoatUVVRkwIX/CoylQE9Crpfp+lI58vKq8miCOSQNmKzlwHCoyrj6taEvtM2uDDo0acGBqPMpQNCEe260QlDa5+VetdeKYk7KFwjdiGtAtLhLbSid3CCudAndZy22KXbN8EmBUI7wJaIRMNfTY6t4KQMWskJPFxDbseErdVPHiqoA8B5yFs0C+ma9+q6bIN7zrc6tWeSkRQ8S3BtNocDyPoOSfFu/9l25O4GJP6ZzfRQggsVqvB8Ia1nhjeHQ==; 31:kPlnnC0FZ3FjXtZClIve5YXelbTxgqBFTrAambPOiXDUx5blD0o7XGNA55hQN0/PIHe/bipCosW45DZbZ8/ceqf2FvMlsdlaLJ9XO0xCIRJfPFuDqmI6S/Gztmi520yw11+KbDVtDtfiSFthRXKCmsArca7+FeguMnINMzgXhXKxqTQ+opTcDbZWyqubh5C04uIVvlzSRcHBBo1glDEQhp9QwpmI9YGm9ZmtySzAqM8= X-MS-TrafficTypeDiagnostic: SN1PR12MB2479: X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 20:RAQN6o/PeBS3VXYbkH0uc8BmsdWbTLD82ta2QvR+ouFNeADGQTt3Lq7IFf9Kl15nXVHCx4bArVx6G9ry78vWVlIXEtXwmTKsohB0Qo13WOV7idwJw7sx7nybZiqs9GVWz0ok6Ughtx8TUgq+MWftH8HYk4u13UjurNvA2buiDsPfVAqBDAjst5xORlyUuZ7Gjt6p27kw8zFVOhK5dRQCOIp1XnbVXUN2jMC4Cf6aLerF0g3gXOeqpAegHyJGsPtWKE20Vsidv7WhkgQ4QkZE1sNeiBPpIcc/kzDVGhLiYCfnbJ3rqgx48mATsnuz68ONHIE8ra1ZaDZ0TC7ZNVieeP20QUAuEhsJKMB/FI0btEHyxvr7p3yTIkvcBos1YeWO2q3eM7YVKvO8MB9u3alNbvE6MCzKlfzP3M+yONP/OQ6kZERuFEkpKyzhFUORw82lNxktzkaWp5u3RXexoFJ2HTEW1LY3yoWWYMmCaKySaeIxUz3/3Lm6Iuselgph4221; 4:PExkVj+ib0jcLgPx9RGAkto9DKbNk1aVip6URkBDT7f6lCkVXv4HowkYamAcCCwfN9KEeUZeuiXxVuW1qsQPQKN8O7/LT6Tdo+rBlyQZtASQmtJaN0EwnOAv2DkcFQPUtMpNqeJajTIo/wK54kQm10Ez382HcmIyZUg1UacRt18Wdvf8aOQk0wAkltr9S+hwFZkzfALvxvHgQDobmqKu2ENvxr+5koVdErdJ8+3muWytKr6tG8A+E8NdZdnTt6PqxsUQ4yZkZM/Yw/9gQGb4mawCny+jRqqtZz1rRV1ibhJD1YF0HaZs6z0TZ7eWgbGj X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:SN1PR12MB2479; BCL:0; PCL:0; RULEID:; SRVR:SN1PR12MB2479; X-Forefront-PRVS: 0654257CF5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(366004)(376002)(396003)(39860400002)(346002)(189003)(199004)(68736007)(8676002)(2906002)(6116002)(76176011)(8936002)(5660300001)(316002)(3846002)(4326008)(81156014)(50226002)(81166006)(386003)(956004)(16526019)(7416002)(52116002)(476003)(97736004)(59450400001)(186003)(25786009)(86362001)(446003)(7696005)(11346002)(51416003)(26005)(48376002)(36756003)(16586007)(47776003)(53416004)(486006)(44832011)(106356001)(7736002)(6666003)(72206003)(2616005)(6486002)(105586002)(66066001)(478600001)(305945005)(53936002)(50466002)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR12MB2479; H:bmoger-ubuntu.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; SN1PR12MB2479; 23:ZcpOcjeghUsOPYsmVM76owHJzEeqDI0fwtl6SdSfs?= =?us-ascii?Q?g5dvZeHR8HF8GMetVlWyqHDqGI9v5qiLSMD6ZKeAPw5gIpa2VcA9QKIZLePb?= =?us-ascii?Q?aDiwc6ee4F98UPr8+KMuOk+igKzQe9eNgFqfd5eTqnPfUSL9dQpjByvFQtPn?= =?us-ascii?Q?R+kjXdpmzcqzMoAdRyUQP0N+r1G5qS9oiJu08f26feOGQ4WZexmuYsBzoB/f?= =?us-ascii?Q?H186aolovbBEcqECDyiuKAEJmuaD0QGc6a2po61Oj/B0c0aC6kRIM0aKxKc0?= =?us-ascii?Q?zeBxf0bQoyHkYhuHBzfyFXSimWTlwI111SO1O4HcFF/eZRujJZPtYrGudd+a?= =?us-ascii?Q?r5vL1rjwFSBNuxf5z5FQDByOu6JGjeua29mJsCyrOParB/fjgcJa+sr++SVf?= =?us-ascii?Q?Or20XpmwdcUFXPhnJvy0DJqi0EAUgyJZrOc5qpWbLIehBlAGQ8Fy63XSextT?= =?us-ascii?Q?iozXK04+xuHq25tRl964PZZcfupjehMbTCLeBI8qesP4rvUruWLrQInxO5nl?= =?us-ascii?Q?RZskLv79jPawMmW/UOsnv4DVSxxNi410hxc8WDDHjvvLXwAU2kBtyWdyqXj7?= =?us-ascii?Q?Yw9yUIEF2j7zbQibmnQR4CI0KD1ml/1OUrHUx5t1JYVogWpjfHguukrfVPEM?= =?us-ascii?Q?2lv9pzMpB3/KcDogNHdf5KrZzvrhfixiZ0q7XqqbX9MFNUeCS01LbMpdVJQ/?= =?us-ascii?Q?fDtigmtkc0h75CR4YQLDwzVMGbHSDZKYignOK9l2+TDG3yE7iEP5ZzN5X2CD?= =?us-ascii?Q?ucjPQhMIbhDXdf9leBmcEhvuRuzDJgOCbLeXUgWeyH8YgvZd4TACiHRyM7KW?= =?us-ascii?Q?IoMsCeqCvvkMNi5w56h0/jWaYAnHU5W8mP7dd1HJRZ2uGNCSBuFYaPZipGlO?= =?us-ascii?Q?iTLeQLOCGeUIWIvv+VIuePple18QB8ZdfjByXPeescEAET91HXDe2U15DRYz?= =?us-ascii?Q?IMdxAoECrqgDSNskv+EflR7KIq6wLyXaCx62S/LJkJ54u4KMdTFIBSzEvWkM?= =?us-ascii?Q?lQzw2KJtingXP9PnLgoNj0qrZmBnnggXetbjIorZcEs+bVMIJfALDj4Y/BS+?= =?us-ascii?Q?W91GFpQatlRwHDpTf2zSbjs00oU//YcLdyxfBLjYgwntrTI14oy69szzEL72?= =?us-ascii?Q?DL3S5WphkUyX3p6tUXI9tJVpytdo6eV2lHRsnhpmzk4VRxuUFelAlvzB9YjR?= =?us-ascii?Q?/c5hSjeCVwMQw0d5tYfoGwGRXve3ShDWdYWgjQ1zed2MawYpvDdssyfBKJ5j?= =?us-ascii?Q?bNm7aaT72NY1fZ3vUKtWU2HuneUqW2268Xby9VA?= X-Microsoft-Antispam-Message-Info: Fq8LIiL/3F2hKNtFzwybHTVL3/8bTQ/ReLe/mNWGYv4PbWJ/GwKv+u05VtPdrT3v+Q+ZPhCrTR+fWaVgf4lTzY3iNdbHccWTrmOhOVZydjXvaGTNRqcACe/eKqnqh4b5irJ/OOwvoUjJ3oUfCXCdl4d6TYPHiDawNUZFRza+k4vqVMaa9M1dH4sQDn8uB9AV X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 6:M5yhWnIwHbkrSKAHsWylNJ5OsSnInP87ONxG5fSEqJhP7RTHRIyhaCyxlr5D3EafI6MqDyhKAnFYCIAV5ZpNwc3ECqKVN/w2YCy+AlT4FU+ETmf/HDd+M+lei6Eivp6zAlk/la/5p73ktDOcGbvAbY7nsmq7OaQFoOoQ+sbG4wcqFvgMupM4xPtDD8gIBgh/lTZ10JZfLOG6m+rr2GFi+wGW+LLQksL2qxzvmvng4n9CI/YOH7vb/OkxB7bL/IB9Fx3KVLS+kTa3jipuzjVRRcOKKNgTb7LEbjc9Q6yn0x8xd7a6rzRNYNwTb0YbVTky/mBWjkQNFeal0+/u55TXBbNoneypkA4PsDjcX2C1joN5Zp0um9wXbkrh74xmJOD+j/JYSwVgrB6f8zW3r0erAmwi9lBg4Ce7l7NCCFvhEFzQFQC3cZ2ZoLny8iGzhNX8jI+4GHNDGdzflKqv6QjnGA==; 5:/6p8dYYtxOMVPbEaypjhNIi7mXUCZ6yJ7GXwCYyYbyTHe8eTBGVHRE/3vmz8OACJ/bYYPxdg//XPSl8YdWTTzEqa13z+yVqCHlE6KuQjifNMsXYq7iSwnA4x/sP95fSi4nAbNFDOAh2W9LViCfbyRLXWvzVIcnUZjynrHPLnpIA=; 24:I+/TJYTI3pIj4nYJujYvi69duPaAOVqFmlFwEVpjtQX1tv6jTIKHGfT4arAGSazZmrgcL0DimWYUTmqO84wFHV7eGR8STqdkqq0ZhvmQkJ8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR12MB2479; 7:Gs1I6ijFiIX2FT1yH4jfdZzN29DnYeqqElfk09HScQ7J/BKnw6s3kmuaPGM7chrTRAwbWdTY/9DgnMz3/v+FFsA5PbjL6/ieZMwwOAJnVfJx8mutffqGIYzt8Zw5smG2Oh151tip4I24wcEDJUFfhTeaqZPrtmVg4o1TAS4/wUEJIuRWuufoQK9vVRQZYJHQRJ+VoKQCnBQM5xs4mu28XNeKtVX+P6e8m5rjIIt0x8nJay2JJPw2dW/SeIShdn6K; 20:0VwnpHFll64+wzKx0RQgaI+7aTQMgWfmuls+gMmNWYKZSniZfmw/aEU4Fv23wWJTiXrj0ttwbF/Q2Sy3XOHOk5ln+TZg7jBAWswH6VnbtlbsiXGjXT4DiBaH+mSE/5Ps+qN9/CdkjYL+tqLQNnjDu3LJk+iy33bdqtfrRQVyAjRQveSKq+fkQ/Ooh5aaLl/krT3AaIxHBNiuL95sx5YnNVDpgGwIbAt6cUoUFxr+oYdkmzycUYKq15aqBQruL3Fs X-MS-Office365-Filtering-Correlation-Id: 4573a995-3dc7-4dbd-d003-08d5ab928f31 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2018 16:27:09.0180 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4573a995-3dc7-4dbd-d003-08d5ab928f31 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB2479 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.32.83 Subject: [Qemu-devel] [PATCH v7 9/9] i386: Remove generic SMT thread check X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: geoff@hostfission.com, babu.moger@amd.com, kash@tripleback.net, qemu-devel@nongnu.org, kvm@vger.kernel.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove generic non-intel check while validating hyperthreading support. Certain AMD CPUs can support hyperthreading now. CPU family with TOPOEXT feature can support hyperthreading now. Signed-off-by: Babu Moger Tested-by: Geoffrey McRae Reviewed-by: Eduardo Habkost --- 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 6ebbef2..54d908f 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -4830,17 +4830,20 @@ static void x86_cpu_realizefn(DeviceState *dev, Err= or **errp) =20 qemu_init_vcpu(cs); =20 - /* Only Intel CPUs support hyperthreading. Even though QEMU fixes this - * issue by adjusting CPUID_0000_0001_EBX and CPUID_8000_0008_ECX - * based on inputs (sockets,cores,threads), it is still better to gives + /* Most Intel and certain AMD CPUs support hyperthreading. Even though= QEMU + * fixes this issue by adjusting CPUID_0000_0001_EBX and CPUID_8000_00= 08_ECX + * based on inputs (sockets,cores,threads), it is still better to give * users a warning. * * NOTE: the following code has to follow qemu_init_vcpu(). Otherwise * cs->nr_threads hasn't be populated yet and the checking is incorrec= t. */ - if (!IS_INTEL_CPU(env) && cs->nr_threads > 1 && !ht_warned) { - error_report("AMD CPU doesn't support hyperthreading. Please confi= gure" - " -smp options properly."); + if (IS_AMD_CPU(env) && + !(env->features[FEAT_8000_0001_ECX] & CPUID_EXT3_TOPOEXT) && + cs->nr_threads > 1 && !ht_warned) { + error_report("This family of AMD CPU doesn't support " + "hyperthreading. Please configure -smp " + "options properly."); ht_warned =3D true; } =20 --=20 2.7.4