From patchwork Mon Dec 16 15:38:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 181730 Delivered-To: patch@linaro.org Received: by 2002:ac9:44c4:0:0:0:0:0 with SMTP id t4csp4456708och; Mon, 16 Dec 2019 07:39:02 -0800 (PST) X-Google-Smtp-Source: APXvYqzaNatMHhoamaVN6s32FdOQAHed9l1IRlfwwK9oiMG/jVt6siV43Q0TJ2O7PviHG9PLvQx/ X-Received: by 2002:aca:ecd0:: with SMTP id k199mr9984903oih.158.1576510742685; Mon, 16 Dec 2019 07:39:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576510742; cv=none; d=google.com; s=arc-20160816; b=ZNgN+hZSOcum0EwGJCfB2RnxrjNwOtEjdtvMz1/QfiYvEZSraUbjpa2Xnh0Za+ZtNo 3pOasZd5VWsTdpbF09RsVyKq/fApe9M0BjFM3F4qRa+ROflxHJ1maHt1f+p0yBq8ZRz9 wGAngqLI4X0M1S7mB6r/hI7BnEp+3k8/BI/UbDA+LN99YOULsdWACzg5SDgUc2oLbjcW 5ERwXDQKrOPpWmh+kOmPzkklZsS0cXIAN/cY5Z6/t8geFEP8yBLiu3/Y3trRV21nqFtj zqVga5US5f6EZaE/jkhbp7Y6g35QH9A6DJ6bKg+V6VhmnhxD5d2gtN0ZtMxk6JjgHEYO mlYw== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Pa9ByxMyTJQiqYnUcMqA/kOdL3uXrUwL5NroTOuCWBc=; b=o2yqbS0b3fjJ+PNt9spy3Pl/T395oq7NXmdo+KmNUbCoHXSKXKL1EjM8Qbqd5Uv9S5 gZPNPpmrev8qmOBjuKZ1TwF+EGJ4+oDxM6Qgvpvk0OppjflWs7v37GR/3YxGGpRklCGO 11Me0apIjrQzuHO6WddECasnfjbB0Jr7DK9/xhRFpchqxSywNhqkSDUKYpt8aQE6C1em K2xTzoS3FF1NZ0O+7EnwZ0n0iC0+ClkNSDXBxHA29P68P8Am/waEm2MuvsT/EkkedNz+ ZsyN3E48rF/Aqfui0em6WKZJ5utGQ/qrrNRzpuuB70FQJrgkUUKOnqOgRmijIX4iQWK1 hoSw== 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 z2si10684672oix.100.2019.12.16.07.39.02; Mon, 16 Dec 2019 07:39:02 -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 S1728454AbfLPPjB (ORCPT + 7 others); Mon, 16 Dec 2019 10:39:01 -0500 Received: from szxga05-in.huawei.com ([45.249.212.191]:7254 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728337AbfLPPjB (ORCPT ); Mon, 16 Dec 2019 10:39:01 -0500 Received: from DGGEMS405-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 49E8D730630F7F33D7E7; Mon, 16 Dec 2019 23:38:58 +0800 (CST) Received: from lhrphicprd00229.huawei.com (10.123.41.22) by DGGEMS405-HUB.china.huawei.com (10.3.19.205) with Microsoft SMTP Server id 14.3.439.0; Mon, 16 Dec 2019 23:38:49 +0800 From: Jonathan Cameron To: , , , , CC: Keith Busch , , "Rafael J . Wysocki" , , Andrew Morton , Dan Williams , Tao Xu , Brice Goglin , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Jonathan Cameron Subject: [PATCH V6 1/7] ACPI: Support Generic Initiator only domains Date: Mon, 16 Dec 2019 23:38:03 +0800 Message-ID: <20191216153809.105463-2-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> References: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.123.41.22] X-CFilter-Loop: Reflected Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Generic Initiators are a new ACPI concept that allows for the description of proximity domains that contain a device which performs memory access (such as a network card) but neither host CPU nor Memory. This patch has the parsing code and provides the infrastructure for an architecture to associate these new domains with their nearest memory processing node. Signed-off-by: Jonathan Cameron --- drivers/acpi/numa/srat.c | 62 +++++++++++++++++++++++++++++++++- drivers/base/node.c | 3 ++ include/asm-generic/topology.h | 3 ++ include/linux/nodemask.h | 1 + include/linux/topology.h | 7 ++++ 5 files changed, 75 insertions(+), 1 deletion(-) -- 2.19.1 diff --git a/drivers/acpi/numa/srat.c b/drivers/acpi/numa/srat.c index eadbf90e65d1..a4a2cd52e706 100644 --- a/drivers/acpi/numa/srat.c +++ b/drivers/acpi/numa/srat.c @@ -170,6 +170,38 @@ acpi_table_print_srat_entry(struct acpi_subtable_header *header) } break; + case ACPI_SRAT_TYPE_GENERIC_AFFINITY: + { + struct acpi_srat_generic_affinity *p = + (struct acpi_srat_generic_affinity *)header; + char name[9] = {}; + + if (p->device_handle_type == 0) { + /* + * For pci devices this may be the only place they + * are assigned a proximity domain + */ + pr_debug("SRAT Generic Initiator(Seg:%u BDF:%u) in proximity domain %d %s\n", + *(u16 *)(&p->device_handle[0]), + *(u16 *)(&p->device_handle[2]), + p->proximity_domain, + (p->flags & ACPI_SRAT_GENERIC_AFFINITY_ENABLED) ? + "enabled" : "disabled"); + } else { + /* + * In this case we can rely on the device having a + * proximity domain reference + */ + memcpy(name, p->device_handle, 8); + pr_debug("SRAT Generic Initiator(HID=%.8s UID=%.4s) in proximity domain %d %s\n", + (char *)(&p->device_handle[0]), + (char *)(&p->device_handle[8]), + p->proximity_domain, + (p->flags & ACPI_SRAT_GENERIC_AFFINITY_ENABLED) ? + "enabled" : "disabled"); + } + } + break; default: pr_warn("Found unsupported SRAT entry (type = 0x%x)\n", header->type); @@ -378,6 +410,32 @@ acpi_parse_gicc_affinity(union acpi_subtable_headers *header, return 0; } +static int __init +acpi_parse_gi_affinity(union acpi_subtable_headers *header, + const unsigned long end) +{ + struct acpi_srat_generic_affinity *gi_affinity; + int node; + + gi_affinity = (struct acpi_srat_generic_affinity *)header; + if (!gi_affinity) + return -EINVAL; + acpi_table_print_srat_entry(&header->common); + + if (!(gi_affinity->flags & ACPI_SRAT_GENERIC_AFFINITY_ENABLED)) + return -EINVAL; + + node = acpi_map_pxm_to_node(gi_affinity->proximity_domain); + if (node == NUMA_NO_NODE || node >= MAX_NUMNODES) { + pr_err("SRAT: Too many proximity domains.\n"); + return -EINVAL; + } + node_set(node, numa_nodes_parsed); + node_set_state(node, N_GENERIC_INITIATOR); + + return 0; +} + static int __initdata parsed_numa_memblks; static int __init @@ -433,7 +491,7 @@ int __init acpi_numa_init(void) /* SRAT: System Resource Affinity Table */ if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { - struct acpi_subtable_proc srat_proc[3]; + struct acpi_subtable_proc srat_proc[4]; memset(srat_proc, 0, sizeof(srat_proc)); srat_proc[0].id = ACPI_SRAT_TYPE_CPU_AFFINITY; @@ -442,6 +500,8 @@ int __init acpi_numa_init(void) srat_proc[1].handler = acpi_parse_x2apic_affinity; srat_proc[2].id = ACPI_SRAT_TYPE_GICC_AFFINITY; srat_proc[2].handler = acpi_parse_gicc_affinity; + srat_proc[3].id = ACPI_SRAT_TYPE_GENERIC_AFFINITY; + srat_proc[3].handler = acpi_parse_gi_affinity; acpi_table_parse_entries_array(ACPI_SIG_SRAT, sizeof(struct acpi_table_srat), diff --git a/drivers/base/node.c b/drivers/base/node.c index 98a31bafc8a2..f6e80bf22547 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -974,6 +974,8 @@ static struct node_attr node_state_attr[] = { #endif [N_MEMORY] = _NODE_ATTR(has_memory, N_MEMORY), [N_CPU] = _NODE_ATTR(has_cpu, N_CPU), + [N_GENERIC_INITIATOR] = _NODE_ATTR(has_generic_initiator, + N_GENERIC_INITIATOR), }; static struct attribute *node_state_attrs[] = { @@ -985,6 +987,7 @@ static struct attribute *node_state_attrs[] = { #endif &node_state_attr[N_MEMORY].attr.attr, &node_state_attr[N_CPU].attr.attr, + &node_state_attr[N_GENERIC_INITIATOR].attr.attr, NULL }; diff --git a/include/asm-generic/topology.h b/include/asm-generic/topology.h index 238873739550..54d0b4176a45 100644 --- a/include/asm-generic/topology.h +++ b/include/asm-generic/topology.h @@ -71,6 +71,9 @@ #ifndef set_cpu_numa_mem #define set_cpu_numa_mem(cpu, node) #endif +#ifndef set_gi_numa_mem +#define set_gi_numa_mem(gi, node) +#endif #endif /* !CONFIG_NUMA || !CONFIG_HAVE_MEMORYLESS_NODES */ diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h index 27e7fa36f707..1aebf766fb52 100644 --- a/include/linux/nodemask.h +++ b/include/linux/nodemask.h @@ -399,6 +399,7 @@ enum node_states { #endif N_MEMORY, /* The node has memory(regular, high, movable) */ N_CPU, /* The node has one or more cpus */ + N_GENERIC_INITIATOR, /* The node is a GI only node */ NR_NODE_STATES }; diff --git a/include/linux/topology.h b/include/linux/topology.h index eb2fe6edd73c..05ccf011e489 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h @@ -140,6 +140,13 @@ static inline void set_numa_mem(int node) } #endif +#ifndef set_gi_numa_mem +static inline void set_gi_numa_mem(int gi, int node) +{ + _node_numa_mem_[gi] = node; +} +#endif + #ifndef node_to_mem_node static inline int node_to_mem_node(int node) { From patchwork Mon Dec 16 15:38:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 181734 Delivered-To: patch@linaro.org Received: by 2002:ac9:44c4:0:0:0:0:0 with SMTP id t4csp4456973och; Mon, 16 Dec 2019 07:39:17 -0800 (PST) X-Google-Smtp-Source: APXvYqxH8NoFwzPemZkrRDuIK5qJDzYebY+qjhQUNH/d8ZrGIePmoWIcoCd82j5Nx5ZeJkzmNZ7l X-Received: by 2002:aca:4587:: with SMTP id s129mr9443040oia.124.1576510757550; Mon, 16 Dec 2019 07:39:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576510757; cv=none; d=google.com; s=arc-20160816; b=qrD71w3aML2S35VIsMOtdi/D7+MLMSCxQoEB0tV5uVV7uPTcs3P6/EL/yY2N0njlgm AFFYrj6bocijUiDzE1dsuc9dHyM4fQilhMCFk8+HzDDJ6E11nri34fghJP8E6eYqIYKL HZI3Ag1r5LS0uDtArYDvobOXvyEftjS5LwzmP20pSzQ/nhULbhHfl/2AD22rnK19vj01 rpyNhDdw7ZecCmIir7JHQCC+XxGitzKq6AXQA8foHYV6S8qzdozO5ThkRbZNZa+UxjLb t0oNvglPthmnvuZi+aZSE5XstcfuFQiy9GTIU5a27zVXlneFs1OZxiIP8q2K4b8yWcxQ X7Lw== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Dw19BmbDxhO8jqBZAVGaE5A5UZ9sjajvwIatPhdeGD0=; b=kjZJP648jFnkS7mw3xcZ0dlfzRfX0ZybNPZBUn/1Y4vl0iWR/p0x8KkPinqodjGam7 ByrRDk6eW5F37ewNmI0GXinVSB89cjbwemmgnGpRQx4VG0fUA79xEUFBV0mV3NJEvF1t QGCq5ccu1+qoPO6AO7ZGZN8GvK1x4XRyQI1iP0itAqutQYWoU2K6mFv570RuN6xeFODS 4HALfuL8gN0p65/G2Cx/rRHXjSNtO5wVpl3k0CrMSOc2HmkiIH/Au4PlW3/xit6rcnSm /4gGwj9dTlMV/DSV5344gMzog+PHGvs6m+iC2Dt5Q3t8Nrcpx9EbASMieQJ+LL6KfqEW B/Tg== 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 a197si10796356oii.199.2019.12.16.07.39.17; Mon, 16 Dec 2019 07:39:17 -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 S1728515AbfLPPjR (ORCPT + 7 others); Mon, 16 Dec 2019 10:39:17 -0500 Received: from szxga05-in.huawei.com ([45.249.212.191]:7255 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728337AbfLPPjQ (ORCPT ); Mon, 16 Dec 2019 10:39:16 -0500 Received: from DGGEMS405-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 7A8D04F9BB65FF9A3F91; Mon, 16 Dec 2019 23:39:13 +0800 (CST) Received: from lhrphicprd00229.huawei.com (10.123.41.22) by DGGEMS405-HUB.china.huawei.com (10.3.19.205) with Microsoft SMTP Server id 14.3.439.0; Mon, 16 Dec 2019 23:39:05 +0800 From: Jonathan Cameron To: , , , , CC: Keith Busch , , "Rafael J . Wysocki" , , Andrew Morton , Dan Williams , Tao Xu , Brice Goglin , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Jonathan Cameron Subject: [PATCH V6 4/7] ACPI: Let ACPI know we support Generic Initiator Affinity Structures Date: Mon, 16 Dec 2019 23:38:06 +0800 Message-ID: <20191216153809.105463-5-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> References: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.123.41.22] X-CFilter-Loop: Reflected Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Until we tell ACPI that we support generic initiators, it will have to operate in fall back domain mode and all _PXM entries should be on existing non GI domains. This patch sets the relevant OSC bit to make that happen. Signed-off-by: Jonathan Cameron --- drivers/acpi/bus.c | 1 + include/linux/acpi.h | 1 + 2 files changed, 2 insertions(+) -- 2.19.1 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 54002670cb7a..0ac96fb67515 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -302,6 +302,7 @@ static void acpi_bus_osc_support(void) capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_HOTPLUG_OST_SUPPORT; capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_PCLPI_SUPPORT; + capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_GENERIC_INITIATOR_SUPPORT; #ifdef CONFIG_X86 if (boot_cpu_has(X86_FEATURE_HWP)) { diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 0f37a7d5fa77..7dba8ffdc68a 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -505,6 +505,7 @@ acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context); #define OSC_SB_PCLPI_SUPPORT 0x00000080 #define OSC_SB_OSLPI_SUPPORT 0x00000100 #define OSC_SB_CPC_DIVERSE_HIGH_SUPPORT 0x00001000 +#define OSC_SB_GENERIC_INITIATOR_SUPPORT 0x00002000 extern bool osc_sb_apei_support_acked; extern bool osc_pc_lpi_support_confirmed; From patchwork Mon Dec 16 15:38:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 181735 Delivered-To: patch@linaro.org Received: by 2002:ac9:44c4:0:0:0:0:0 with SMTP id t4csp4457145och; Mon, 16 Dec 2019 07:39:25 -0800 (PST) X-Google-Smtp-Source: APXvYqz10WVURHABEHLM/rPWJ4PyPd5E7sO3Id0InV+26oHzjAu1ULR9nx5CkCrKs7AHHCz7HJ0l X-Received: by 2002:a9d:7:: with SMTP id 7mr30571300ota.26.1576510765205; Mon, 16 Dec 2019 07:39:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576510765; cv=none; d=google.com; s=arc-20160816; b=DM2ZDCd5Id0/ueZ8s2q14g5ikzVLfiquKDKrBhfvPH6P1a2ToClnkz5BC0oLFadw8i oRlN8TPdCA/a00y1OMKZsC4Ebl5geVbS1yQYeQcwbgWUPjfschpNtDzwc84CMr+bGMhM UMTwFz3USduxw16j0wP8crEqbt9MhdZflPMQx5hOzHknS2eT3FlOM/S/t9J3c3FfPuPT p9a7TxGRFs6oB6I0R6QDjGVJSyz4uyVBHR696ANh8By/SZ4LUqzhmsmZ8JWC/CfTE5Zd +haX2J6NX9e4k0lXyAiFsxaWFtouZKy5DOH6rRawtvHPdc16c9QJJAmVSxRssM/TPk7B 4XIg== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=mbxLlEWIUQzEcWeGGGAuTvzr4aHzAeYjxzFInWevZGM=; b=fpXL/f19MP9JNV6/plPT+tZDr7eE9nunVaumT5cUiS23CwpnD9xzmmuojiOzpqPEDX TsYF56871B6gTua//n1le62Bh6Md/kDSqzR44cY8Utajw86WBKRuMmW9b9Akjy5zd6hN KBcdiBhYjM9xQUiCZJfZojGD3Upi2C/ZPj7LRJdGpiRrkq2P6igpWNnU8PukeohuOK4B +48Z3NwFa5Hgd/AbKWbT4RS8vkihhLYVl98rojFNRfW17JXckJs3gtAdMO9K3zZevunS 4NRhfOu/N5d798+36wAHTERRJ3bK46rPlgbzQTyggdTJIQk2N9SSaLWwqLfRr9eo6oGP sKiQ== 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 r83si596009oie.64.2019.12.16.07.39.25; Mon, 16 Dec 2019 07:39:25 -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 S1728528AbfLPPjY (ORCPT + 7 others); Mon, 16 Dec 2019 10:39:24 -0500 Received: from szxga07-in.huawei.com ([45.249.212.35]:46242 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728337AbfLPPjY (ORCPT ); Mon, 16 Dec 2019 10:39:24 -0500 Received: from DGGEMS405-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 8A993EC629902585DC1E; Mon, 16 Dec 2019 23:39:18 +0800 (CST) Received: from lhrphicprd00229.huawei.com (10.123.41.22) by DGGEMS405-HUB.china.huawei.com (10.3.19.205) with Microsoft SMTP Server id 14.3.439.0; Mon, 16 Dec 2019 23:39:09 +0800 From: Jonathan Cameron To: , , , , CC: Keith Busch , , "Rafael J . Wysocki" , , Andrew Morton , Dan Williams , Tao Xu , Brice Goglin , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Jonathan Cameron Subject: [PATCH V6 5/7] ACPI: HMAT: Fix handling of changes from ACPI 6.2 to ACPI 6.3 Date: Mon, 16 Dec 2019 23:38:07 +0800 Message-ID: <20191216153809.105463-6-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> References: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.123.41.22] X-CFilter-Loop: Reflected Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org In ACPI 6.3, the Memory Proximity Domain Attributes Structure changed substantially. One of those changes was that the flag for "Memory Proximity Domain field is valid" was deprecated. This was because the field "Proximity Domain for the Memory" became a required field and hence having a validity flag makes no sense. So the correct logic is to always assume the field is there. Current code assumes it never is. Signed-off-by: Jonathan Cameron --- drivers/acpi/numa/hmat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.19.1 diff --git a/drivers/acpi/numa/hmat.c b/drivers/acpi/numa/hmat.c index 2c32cfb72370..07cfe50136e0 100644 --- a/drivers/acpi/numa/hmat.c +++ b/drivers/acpi/numa/hmat.c @@ -424,7 +424,7 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade pr_info("HMAT: Memory Flags:%04x Processor Domain:%u Memory Domain:%u\n", p->flags, p->processor_PD, p->memory_PD); - if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) { + if ((p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) || hmat_revision == 2) { target = find_mem_target(p->memory_PD); if (!target) { pr_debug("HMAT: Memory Domain missing from SRAT\n"); From patchwork Mon Dec 16 15:38:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 181737 Delivered-To: patch@linaro.org Received: by 2002:ac9:44c4:0:0:0:0:0 with SMTP id t4csp4457292och; Mon, 16 Dec 2019 07:39:32 -0800 (PST) X-Google-Smtp-Source: APXvYqwKr2BY4QtcDoOc/RVjjX13RNNoL0gpC6al2FPt9ChwnSm4na4/DWK+GuWjiSoca9B8KG1w X-Received: by 2002:a9d:6a5a:: with SMTP id h26mr33436884otn.103.1576510772720; Mon, 16 Dec 2019 07:39:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576510772; cv=none; d=google.com; s=arc-20160816; b=x3zk9gYzOBaEimxY1W41NYgvNozDVklqUmInug1btaEnBl7LRT6lf7hKlrnP9nU1ec 6eGMZNf9hyPau5E8rRyTwLIbQkUMculFFGttZif8ff6SkcmWpfIpZRuwjARr3AyHZtPp oMvVwswN1ZmQrw6rpwKlU29lMN2W0IzAcg4o/8Dpn+TdocdStvXxNstDxsUeEIQytpCY DqEF2yZF/h7e4Qj/lOh4wdhbQR8GdIXrwnjmVs/2VcIxpgjRNjfh1sKXWSgzoquJDjI9 Za5Snr6nxRdAB3eQh1OsqArewfDJziSbXmtMJxHhv5dtyZGRWWlYiTeEdJXYPrQMbYSL 32Pg== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=zyTAwWWOlbp2WtErx2N1xg/bAIOz7lOrrxs8NmB2ZOg=; b=uxX0wgT+zWFCQwcuFam5QVrosC3Ei1l6Wiw99eQklxMBNEHYSccLTIK7X+ycmUvA3M fZy+pV+ciPOfhqDZiP6g17J7qCFxu7/tOYLnpM01o7umc0Zz+nUiiIS4i84nd5cT1D0x 3HRitA/uTn3sWDLMLuONbHLoWFY5RlUPyKhN3GqKZfkPdYPi57LIiIW4+w8dRzab+lNB 3oie5kmQyA+X2d/VQhOohj5T8Z/Dj9JLmBdLrClPqusP4VCAvlyX1k3tdCJiZSZvMtxN BJ27PrXDHTyPg746bepCfS0VWPtv0QKFcbmQMXmcm8Mh325iZpok1xANoYO2BYeIGbR4 KARg== 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 z3si10004094oib.164.2019.12.16.07.39.32; Mon, 16 Dec 2019 07:39:32 -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 S1728556AbfLPPjc (ORCPT + 7 others); Mon, 16 Dec 2019 10:39:32 -0500 Received: from szxga06-in.huawei.com ([45.249.212.32]:41060 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728417AbfLPPjc (ORCPT ); Mon, 16 Dec 2019 10:39:32 -0500 Received: from DGGEMS405-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id B4EE5CC4E77E0A584EE6; Mon, 16 Dec 2019 23:39:28 +0800 (CST) Received: from lhrphicprd00229.huawei.com (10.123.41.22) by DGGEMS405-HUB.china.huawei.com (10.3.19.205) with Microsoft SMTP Server id 14.3.439.0; Mon, 16 Dec 2019 23:39:18 +0800 From: Jonathan Cameron To: , , , , CC: Keith Busch , , "Rafael J . Wysocki" , , Andrew Morton , Dan Williams , Tao Xu , Brice Goglin , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , Jonathan Cameron Subject: [PATCH V6 7/7] docs: mm: numaperf.rst Add brief description for access class 1. Date: Mon, 16 Dec 2019 23:38:09 +0800 Message-ID: <20191216153809.105463-8-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> References: <20191216153809.105463-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.123.41.22] X-CFilter-Loop: Reflected Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Try to make minimal changes to the document which already describes access class 0 in a generic fashion (including IO initiatiors that are not CPUs). Signed-off-by: Jonathan Cameron --- Documentation/admin-guide/mm/numaperf.rst | 8 ++++++++ 1 file changed, 8 insertions(+) -- 2.19.1 diff --git a/Documentation/admin-guide/mm/numaperf.rst b/Documentation/admin-guide/mm/numaperf.rst index a80c3c37226e..327c0d72692d 100644 --- a/Documentation/admin-guide/mm/numaperf.rst +++ b/Documentation/admin-guide/mm/numaperf.rst @@ -56,6 +56,11 @@ nodes' access characteristics share the same performance relative to other linked initiator nodes. Each target within an initiator's access class, though, do not necessarily perform the same as each other. +The access class "1" is used to allow differentiation between initiators +that are CPUs and hence suitable for generic task scheduling, and +IO initiators such as GPUs and CPUs. Unlike access class 0, only +nodes containing CPUs are considered. + ================ NUMA Performance ================ @@ -88,6 +93,9 @@ The latency attributes are provided in nanoseconds. The values reported here correspond to the rated latency and bandwidth for the platform. +Access class 0, takes the same form, but only includes values for CPU to +memory activity. + ========== NUMA Cache ==========