From patchwork Wed Feb 28 22:06:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Linton X-Patchwork-Id: 130068 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp269677lja; Wed, 28 Feb 2018 14:07:09 -0800 (PST) X-Google-Smtp-Source: AH8x225hRZQ+wM0Y9IZZc1Yp6o08x91CC+EBKCIxkf0y+U2otxCo14UzXoJ6vpWCAxLHiIJHEcXI X-Received: by 10.101.97.79 with SMTP id o15mr15180596pgv.31.1519855629734; Wed, 28 Feb 2018 14:07:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519855629; cv=none; d=google.com; s=arc-20160816; b=ceYnTEtFcUJKf4czAMDHnEFGai398gzIODRnkqnODBDOWuOjHxL8B6GlDBipz68U+O obL3tByiLqlIpDwbuukrD5EPw3YORyaqGTPVZWCmli6VxWaPnmkcgzpIApLTSyXUaoKh 8+WaFndQTcTKaVum8I+sO/wlOGaq891rrpyoWSr9DaVSFejuIPJmkap8QMgIL/0KU/RP 5/PQNhkkrU0pFK53oLQfAlTAPKKRFoxyVRyIaYTpTYR43qJRGjYdqEOoE84F5bbycXEB sPGi+Q42Ma1g2ADrFXK/XtJRayneX2cgO5H2iLzpzNnSNlRum3Ki/EIhxy9aMNOxppnr ofBg== 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 :arc-authentication-results; bh=g6dKQfrmoERJXyBvzTCXFL7PlIC7ldpoDIH6k2LbeZY=; b=Z00PNHdsRibH4upa6+GiA9LI07oHrxXoPxsx/iUSQaYf9mCzRs7RMYPH/QeZLAhs1e 2Xe4+4w8XoYMM3ZmSIUum9shYvc1zxK65kPaIhGRzdzGTTUPtNl7fW0oGWNRZeD5F2Xp YLvGPg1WB/MPfEjgDW2s1O1zZwT5GhtXkX/dYN77dkNwp4j4/3HmpumFPbpUFjC7a0ze aOUSxvDhswZWu0VReT4Vhij92MzRSNArtS5XHzPJ1IQzbbhTlqplDge3nH4JjxdPLnyE 2rbBRog4Eq9D+J5SAJLEU7w5RR6Ofx34oAIQtY0SekOpgFzz1WRcLSJdqqOuq/rJQpa0 3CPA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-acpi-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-acpi-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x1-v6si1918211plb.523.2018.02.28.14.07.09; Wed, 28 Feb 2018 14:07:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-acpi-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-acpi-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-acpi-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935273AbeB1WHI (ORCPT + 8 others); Wed, 28 Feb 2018 17:07:08 -0500 Received: from foss.arm.com ([217.140.101.70]:57880 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935105AbeB1WHH (ORCPT ); Wed, 28 Feb 2018 17:07:07 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C87FD15AD; Wed, 28 Feb 2018 14:07:06 -0800 (PST) Received: from beelzebub.austin.arm.com (beelzebub.austin.arm.com [10.118.12.119]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id CF3313F246; Wed, 28 Feb 2018 14:07:05 -0800 (PST) From: Jeremy Linton To: linux-acpi@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, sudeep.holla@arm.com, lorenzo.pieralisi@arm.com, hanjun.guo@linaro.org, rjw@rjwysocki.net, will.deacon@arm.com, catalin.marinas@arm.com, gregkh@linuxfoundation.org, mark.rutland@arm.com, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, wangxiongfeng2@huawei.com, vkilari@codeaurora.org, ahs3@redhat.com, dietmar.eggemann@arm.com, morten.rasmussen@arm.com, palmer@sifive.com, lenb@kernel.org, john.garry@huawei.com, austinwc@codeaurora.org, tnowicki@caviumnetworks.com, Jeremy Linton Subject: [PATCH v7 00/13] Support PPTT for ARM64 Date: Wed, 28 Feb 2018 16:06:06 -0600 Message-Id: <20180228220619.6992-1-jeremy.linton@arm.com> X-Mailer: git-send-email 2.13.6 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org ACPI 6.2 adds the Processor Properties Topology Table (PPTT), which is used to describe the processor and cache topology. Ideally it is used to extend/override information provided by the hardware, but right now ARM64 is entirely dependent on firmware provided tables. This patch parses the table for the cache topology and CPU topology. When we enable ACPI/PPTT for arm64 we map the physical_id to the PPTT node flagged as the physical package by the firmware. This results in topologies that match what the remainder of the system expects. To avoid inverted scheduler domains we then set the MC domain equal to the largest cache within the socket below the NUMA domain. For example on juno: [root@mammon-juno-rh topology]# lstopo-no-graphics Package L#0 L2 L#0 (1024KB) L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0) L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1) L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2) L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3) L2 L#1 (2048KB) L1d L#4 (32KB) + L1i L#4 (48KB) + Core L#4 + PU L#4 (P#4) L1d L#5 (32KB) + L1i L#5 (48KB) + Core L#5 + PU L#5 (P#5) HostBridge L#0 PCIBridge PCIBridge PCIBridge PCI 1095:3132 Block(Disk) L#0 "sda" PCIBridge PCI 1002:68f9 GPU L#1 "renderD128" GPU L#2 "card0" GPU L#3 "controlD64" PCIBridge PCI 11ab:4380 Net L#4 "enp8s0" Git tree at: http://linux-arm.org/git?p=linux-jlinton.git branch: pptt_v7 v6->v7: Add additional patch to use the last cache level within the NUMA or socket as the MC domain. This assures the MC domain is equal or smaller than the DIE. Various formatting/etc review comments. Rebase to 4.16rc2 v5->v6: Add additional patches which re-factor how the initial DT code sets up the cacheinfo structure so that its not as dependent on the of_node stored in that tree. Once that is done we rename it for use with the ACPI code. Additionally there were a fair number of minor name/location/etc tweaks scattered about made in response to review comments. v4->v5: Update the cache type from NOCACHE to UNIFIED when all the cache attributes we update are valid. This fixes a problem where caches which are entirely created by the PPTT don't show up in lstopo. Give the PPTT its own firmware_node in the cache structure instead of sharing it with the of_node. Move some pieces around between patches. (see previous cover letters for futher changes) Jeremy Linton (13): drivers: base: cacheinfo: move cache_setup_of_node() drivers: base: cacheinfo: setup DT cache properties early cacheinfo: rename of_node to fw_token arm64/acpi: Create arch specific cpu to acpi id helper ACPI/PPTT: Add Processor Properties Topology Table parsing ACPI: Enable PPTT support on ARM64 drivers: base cacheinfo: Add support for ACPI based firmware tables arm64: Add support for ACPI based firmware tables ACPI/PPTT: Add topology parsing code arm64: topology: rename cluster_id arm64: topology: enable ACPI/PPTT based CPU topology ACPI: Add PPTT to injectable table list arm64: topology: divorce MC scheduling domain from core_siblings arch/arm64/Kconfig | 1 + arch/arm64/include/asm/acpi.h | 4 + arch/arm64/include/asm/topology.h | 9 +- arch/arm64/kernel/cacheinfo.c | 15 +- arch/arm64/kernel/topology.c | 132 +++++++- arch/riscv/kernel/cacheinfo.c | 1 - drivers/acpi/Kconfig | 3 + drivers/acpi/Makefile | 1 + drivers/acpi/pptt.c | 642 ++++++++++++++++++++++++++++++++++++++ drivers/acpi/tables.c | 2 +- drivers/base/cacheinfo.c | 157 +++++----- include/linux/acpi.h | 4 + include/linux/cacheinfo.h | 17 +- 13 files changed, 882 insertions(+), 106 deletions(-) create mode 100644 drivers/acpi/pptt.c -- 2.13.6 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Acked-by: Sudeep Holla Acked-by: Sudeep Holla Reviewed-by: Sudeep Holla Reviewed-by: Sudeep Holla Tested-by: Ard Biesheuvel