Received: by 10.192.165.148 with SMTP id m20csp666941imm; Fri, 4 May 2018 04:35:50 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrDsAjkqb/Bg3yOB8RQkLI8NrZni1b00qc1+npowLvoOjP+O70bcM02uPMF+cokAh61BNBD X-Received: by 2002:a17:902:d68c:: with SMTP id v12-v6mr28250622ply.190.1525433750659; Fri, 04 May 2018 04:35:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525433750; cv=none; d=google.com; s=arc-20160816; b=Jyp4BufJjGKmyYJjsQf3OjovOCQbuHsLGqqBVzJboThgYnmB9mNTN0MQzCIhh9i7vY bEs8mLiQsJLiIdY6u5RHFH35usyM0QCExZzQYH1nH6pTevnJPo/dYBdqJviTdv9qWYct EbpOdYWaXpp6C7vUhHb2Kv5Os+a9ZBWzVp+qpLlIUcnKR6p68juz+8odwchTHM5Ys5Vx +pzLiwdalGAIHnxNt+b48nmQK6VvlXtuEm3kOvj+Damj3J6eJt0TntuMsgcjHq3KGt3Z o3l0yWpAapbi3HWqsE4LTrGssh5N2PghKNpxeb3M+zY0cYKm/HB60qaL2nFoOtvDmus0 6dvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=+dQl4xKPBDfpd8wbfIuPL1QZWr9sZDRWm/AAcxFdA1Q=; b=TmyQVKyNCcl64X+OPJCG1QcTNLMcFX1qoyrjmONg86R9UcI1+xw1ACWtobS3Nb4Q6n Hmwh9JarfSWFqOXdygSt5SIyLsDmw6XLclybRp7aLMf17NX9delduvsrNXk9jHkFNFqz j5j/mH84augLC4UbHu3wjM2en3oXPJusi33oDj8e84ytxqD2GNL0ieTP0HS2SEAfqYHm c02M/oAQFaVGW2QwHX0kbfokRPsudOCq3UI+3AqahapqRJKFhxzO7WGUvC+MaCd4w+2D wSOQVkda9Ua0kiARW+YoAfZLtH6jsAM6IPz0VHwClLcmts4g8al2dfPIb99m+qiAR/Dt HnHw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z3-v6si14799764pln.42.2018.05.04.04.35.35; Fri, 04 May 2018 04:35:50 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751287AbeEDLf0 (ORCPT + 99 others); Fri, 4 May 2018 07:35:26 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:7225 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751107AbeEDLfY (ORCPT ); Fri, 4 May 2018 07:35:24 -0400 Received: from DGGEMS410-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 51FE0F9430D5F; Fri, 4 May 2018 19:35:10 +0800 (CST) Received: from [127.0.0.1] (10.184.52.56) by DGGEMS410-HUB.china.huawei.com (10.3.19.210) with Microsoft SMTP Server id 14.3.361.1; Fri, 4 May 2018 19:35:02 +0800 Subject: Re: [PATCH v8 00/13] Support PPTT for ARM64 To: Jeremy Linton , CC: , , , , , , , , , , , , , , , , , , , , , , References: <20180425233121.13270-1-jeremy.linton@arm.com> From: Xiongfeng Wang Message-ID: <35ce144b-4386-7bd8-f401-8643400fb7a1@huawei.com> Date: Fri, 4 May 2018 19:34:40 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180425233121.13270-1-jeremy.linton@arm.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.184.52.56] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Tested-by: Xiongfeng Wang Tested on D05 board. 'lscpu' prints the following info: localhost:~ # lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 64 On-line CPU(s) list: 0-63 Thread(s) per core: 1 Core(s) per socket: 32 Socket(s): 2 NUMA node(s): 4 L1d cache: 32K L1i cache: 48K L2 cache: 1024K L3 cache: 16384K NUMA node0 CPU(s): 0-15 NUMA node1 CPU(s): 16-31 NUMA node2 CPU(s): 32-47 NUMA node3 CPU(s): 48-63 'sched_domain' is as follows localhost:~ # cat /proc/schedstat version 15 timestamp 4294936236 cpu0 0 0 0 0 0 0 2471285600 2634828800 4813 domain0 00000000,0000ffff 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 domain1 00000000,ffffffff 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 domain2 ffffffff,ffffffff 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 On 2018/4/26 7:31, Jeremy Linton wrote: > 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 package_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. Finally, we update the scheduler MC domain so that > it generally reflects the LLC unless the LLC is too large for the > NUMA domain (or package). > > 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_v8 > > v7->v8: > Modify the logic used to select the MC domain (the change > shouldn't modify the sched domains on any existing machines > compared to v7, only how they are built) > Reduce the severity of some parsing messages. > Fix s390 link problem. > Further checks to deal with broken PPTT tables. > Various style tweaks, SPDX license addition, etc. > > 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 | 6 +- > arch/arm64/kernel/cacheinfo.c | 15 +- > arch/arm64/kernel/topology.c | 103 +++++- > arch/riscv/kernel/cacheinfo.c | 1 - > drivers/acpi/Kconfig | 3 + > drivers/acpi/Makefile | 1 + > drivers/acpi/pptt.c | 678 ++++++++++++++++++++++++++++++++++++++ > drivers/acpi/tables.c | 2 +- > drivers/base/cacheinfo.c | 157 ++++----- > include/linux/acpi.h | 4 + > include/linux/cacheinfo.h | 18 +- > 13 files changed, 886 insertions(+), 107 deletions(-) > create mode 100644 drivers/acpi/pptt.c >