Received: by 2002:ac0:8845:0:0:0:0:0 with SMTP id g63csp243990img; Mon, 25 Feb 2019 22:22:52 -0800 (PST) X-Google-Smtp-Source: AHgI3IaVRTaimGK741/L/TQO1Z5C6eekH2ueKwrKGB/9v0/44//TPhFDJvkYevFQ0EIur4dMBbB8 X-Received: by 2002:a62:1b92:: with SMTP id b140mr10605692pfb.159.1551162172292; Mon, 25 Feb 2019 22:22:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551162172; cv=none; d=google.com; s=arc-20160816; b=oxmluth4V+AnJ5EDVOlWvaHwfZWSJz/edP6lPmSV90YtRFinepvx9IUwqGThHn1hUS twiO37Ew81Bxvevn+dw2NWJNdVkvGjLLRkdU/sEbpjkQXNN+df0tV13cDDYidC6/tCHu 3bpDj/Wy2EhGJ99llhFe/wm7OcS+0Hgid97xuAtNT3KHMjU2+kqs8n9Z++Ij2FUHzWYI VDptAtg5MckS/mJgtcGFTeV2p409qN1DbrK7vIWV1Lnh3GWZbRKHIiXBNbT7WTbKZUAl GwRiQXz48EJZdOISgefFdkRCJ7ezqqxixr4kRXHVhU5sRzaxCNVXf5N5SOKMHrPhkwzU y/FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=N/2WTR1CA/ewwRuNv2Ih7VvBVXPzfHZPHFpt2uDgjlQ=; b=x47b520ovFlsifr7RFt3GUd5FDIPbrggxZNRf5V3X4JTq/T3j0wU2aHLZkzZyR5FCo UuXNNYUgmL3QSO5CcYSUp2g9So49PH+RBRkc/ScmZ/WdlJcXId724DllRIq7cbLLmzTB 9g5lKYLDTIdqmKItaPWolkwU6F8tpAjvUtTU+iSYLdp312gJeg6hxqqwFNlomILaiGl5 ORBBABmBUikzmGfi/DBIVPR2eyBlBj/PPr4gCf02NR6VkGxHrejo7W+oOMnVH3J67FaI j4i87fXifXfJ/yaPQrmimPEKxDlGChlB7wD4Ks4ifA/acJ45mJFTOSyhXzktcx4gLMdF MSWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=cvt1OGbL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d38si4006345pla.304.2019.02.25.22.22.37; Mon, 25 Feb 2019 22:22:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=cvt1OGbL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726346AbfBZGUY (ORCPT + 99 others); Tue, 26 Feb 2019 01:20:24 -0500 Received: from mail-io1-f66.google.com ([209.85.166.66]:34439 "EHLO mail-io1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725881AbfBZGUY (ORCPT ); Tue, 26 Feb 2019 01:20:24 -0500 Received: by mail-io1-f66.google.com with SMTP id e1so9654210iok.1 for ; Mon, 25 Feb 2019 22:20:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=N/2WTR1CA/ewwRuNv2Ih7VvBVXPzfHZPHFpt2uDgjlQ=; b=cvt1OGbLXwye/jg9VR7/y1NUaaAZZhFZeIjEnlY8e63Mlz6gp7RzOEt0MayrOedPvU 0TXOGDvvJYqNIXxHeJgExInyMHDSYFyEePOUugdQ4aA/4ObJDRqij4WbY56uXlPIGQrf sQOoO6RLGl0X33p9sQ0HmMvvEyoLx/MNwxN/JxeLddExX48DJCqYtwQPAQY4XZkoBpU/ Ee/MOHQonfbYjt62n4emN2klL+wGfooyvyzH0pybu+aZY+F9LSs10rlJmXQOzoCy+YzT urWIUQpqksMqKvV3SkzU7gZjg3B+RtAckrsyWcDaMRFWId51Fgfwi5nOG5aOtvrPpmRa xzKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=N/2WTR1CA/ewwRuNv2Ih7VvBVXPzfHZPHFpt2uDgjlQ=; b=JRCSPZyZkNAZ6bvZ8ocJeIV97PbvpP4WrhIsJe8og+aX4/+p+Yftavm1NTQrbLwTIj XIh6/diUCQbuAjTpPD+TAz7Wn5DV0YfUgeSsMuVt84iuXekQOodXRsO1X7MrxPZDlu7o dLBkkFQF7XddhHpbdNK5XOhNKv/KedTXSPt4l5YzuVRZmbsvLaYiK/3ifewmlkDRhDqk f+WrgDOxmbSaTOkvSa3LJmG2rJDE6kTn4l6/XiZjw6iYWTpsK6JHgBxe/B47Yuq6SLcG GSCbQzR+ozlfbsR4mNTzchuZRfTEGz1EZrqKNcLVONnK5OKPSH+zOxryP8Y8vuIJPgg/ aTUA== X-Gm-Message-State: AHQUAuZFIscAAjLn9EmEdJ/vEl5GJMbZdi8eKzT1tfcZkWd3ElyWNdZ5 i8E2+HRdgXNYYF0TCk3WBP4= X-Received: by 2002:a6b:1444:: with SMTP id 65mr11612528iou.105.1551162023014; Mon, 25 Feb 2019 22:20:23 -0800 (PST) Received: from kbl.lan (h66-222-56-144.cntcnh.dsl.dynamic.tds.net. [66.222.56.144]) by smtp.gmail.com with ESMTPSA id w8sm6431431ita.21.2019.02.25.22.20.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 25 Feb 2019 22:20:22 -0800 (PST) From: Len Brown To: x86@kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH 0/14] v2 multi-die/package topology support Date: Tue, 26 Feb 2019 01:19:58 -0500 Message-Id: <20190226062012.23746-1-lenb@kernel.org> X-Mailer: git-send-email 2.18.0-rc0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series does 4 things. 1. Parses the new CPUID.1F leaf to discover multi-die/package topology 2. Export multi-die topology inside the kernel 3. Update 3 places (coretemp, pkgtemp, rapl) that that need to know the difference between die and package-scope MSR. (Note: Kan Liang has a patch series on top of this one to similarly make the uncore perf code multi-die/package aware.) 4. Export multi-die topology to user-space via sysfs These changes should have 0 impact on cache topology, NUMA topology, Linux scheduler, or system performance. These topology changes primarily impact parts of the kernel and some applciations that care about package MSR scope. Also, some software is licensed per package, and other tools, such as benchmark reporting software sometimes cares about packages. Changes since v1: Responded to all syntax and style feedback. Fixed a bug in the CPUID.1F parsing code we were parsing the leaf properly, but in some configs we were not updating the maps correctly topology_logical_die_id() replaces topology_unique_die_id() Suggested by Kan, who's uncore code uses topology_logical_package_id(). Restored sysfs core_siblings, core_siblings_list v1 proposed re-defining this existing attribute to be the threads in a die, rather than in a package. For compatibility, decided rather to keep this attribute unchanged, for now, even though its name makes little sense, and it makes no sense in a multi-die system. Added sysfs package_threads, package_threads_list Added this attribute to show threads siblings in a package. Exactly same as "core_siblings above", a name now deprecated. This attribute name and definition is immune to future topology changes. Suggested by Brice. Added sysfs die_threads, die_threads_list Added this attribute to show which threads siblings in a die. V1 had proposed putting this info into "core_siblings", but we decided to leave that legacy attribute alone. This attribute name and definition is immune to future topology changes. On a single die-package system this attribute has same contents as "package_threads". Suggested by Brice. Added sysfs core_threads, core_threads_list Added this attribute to show which threads siblings in a core. Exactly same as "thread_siblings", a name now deprecated. This attribute name and definition is immune to future topology changes. Suggested by Brice. For compatibility, sysfs cpuX/topology core_siblings and core_siblings_list are unchanged. They retain their legacy defintion of listing which CPUs share the same package. Patch Summary: Unchanged: [PATCH 01/14] x86 topology: Fix doc typo [PATCH 02/14] topolgy: Simplify cputopology.txt formatting and [PATCH 03/14] x86 smpboot: Rename match_die() to match_pkg() [PATCH 05/14] cpu topology: Export die_id [PATCH 07/14] powercap/intel_rapl: Simplify rapl_find_package() [PATCH 10/14] powercap/intel_rapl: update rapl domain name and debug Bug Fixed: [PATCH 04/14] x86 topology: Add CPUID.1F multi-die/package support New since v1: [PATCH 06/14] x86 topology: Define topology_logical_die_id() [PATCH 12/14] topology: Create package_threads sysfs attribute [PATCH 13/14] topology: Create core_threads sysfs attribute [PATCH 14/14] topology: Create die_threads sysfs attribute Updated (to use logical_die_id()): [PATCH 08/14] powercap/intel_rapl: Support multi-die/package [PATCH 09/14] thermal/x86_pkg_temp_thermal: Support multi-die/package [PATCH 11/14] hwmon/coretemp: Support multi-die/package Documentation/cputopology.txt | 72 ++++++++++++++--------- Documentation/x86/topology.txt | 6 +- arch/x86/include/asm/processor.h | 5 +- arch/x86/include/asm/smp.h | 1 + arch/x86/include/asm/topology.h | 5 ++ arch/x86/kernel/cpu/topology.c | 85 +++++++++++++++++++++------- arch/x86/kernel/smpboot.c | 73 +++++++++++++++++++++++- arch/x86/xen/smp_pv.c | 1 + drivers/base/topology.c | 22 +++++++ drivers/hwmon/coretemp.c | 9 +-- drivers/powercap/intel_rapl.c | 75 +++++++++++++----------- drivers/thermal/intel/x86_pkg_temp_thermal.c | 9 +-- include/linux/topology.h | 6 ++ 13 files changed, 276 insertions(+), 93 deletions(-) These patches are also available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux.git x86