From patchwork Tue Feb 12 16:49:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 158161 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp4060320jaa; Tue, 12 Feb 2019 08:50:59 -0800 (PST) X-Google-Smtp-Source: AHgI3IaNLdB5AO5vwvQjhb3SWwA0woRwehfkL6E2RyLCur7LX11HCj6UYE30l+Pu+3lbs1YZOHNt X-Received: by 2002:a63:d052:: with SMTP id s18mr4373628pgi.11.1549990259783; Tue, 12 Feb 2019 08:50:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549990259; cv=none; d=google.com; s=arc-20160816; b=uj4prMyZ5zinVfeg97h+fOX9GAkNUJZAmcAnNzRxXwcSEULTVewhu+3q3yfktBrNvX BygOgA671IK4HbJeZcqFqMF7kxL711TAia6v0ytAN33gSUjDTppC/VphFTVMEENm78jf fSfIrR0oTTu1SGzwFw0GlFG59vSr0YJJ5WZVFoA3pSu1L3V7SfMA8lL5iYc8fgdDtd+q vo/mzeEhfGmh3jrHoOGe9kv4wwkJSAOkgeFCkH3VuT0EA13ceDzDM9BQNlLHPzlYHMdU dYS6UnhEKub49P1/US/D2CkhCuWXJYeWExUT1UIp3j1Ts9Td8cSYeMMtECDCkIv1RZvE b5Bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=qHcqn+Ug+DP3AjqXDsty1crmXR+AS/AECu2pwPrmmFY=; b=K1X45wc5VtCdVu4zwBr6tCuelbWZam+bakhxjGfruCGahFjwKc72N2rOoohsaXcIMr tCWZcBqxuc5FcbQehftonfapENSyJDNjFheI2fVPUuKZ/GrzlxwBoxrVEn5Ln8WomDic gbHWR1CGNtpf+1JhJPsLHv4RwEIzYGy0DB3RIHt2eSvZP1APiVV/hMt/KezJGt6zOqrQ aGKXNsmeTVXU742mx8UYQaQVWUS4XZfhJKqSOW7wJc+F1nZQD8vxEA6iKx0PKIbpXyGK DEugaIAYUtK+7Ct24b6jiLTaTorrwvEXoFAypFd4Z3GakXt9qXT67XwPHNf1TZGPvs3m D0fg== 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 gn22si13593324plb.19.2019.02.12.08.50.59; Tue, 12 Feb 2019 08:50:59 -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; 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 S1731343AbfBLQu5 (ORCPT + 31 others); Tue, 12 Feb 2019 11:50:57 -0500 Received: from szxga04-in.huawei.com ([45.249.212.190]:3190 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731263AbfBLQue (ORCPT ); Tue, 12 Feb 2019 11:50:34 -0500 Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id B1501CCF6D9D67A146C9; Wed, 13 Feb 2019 00:50:26 +0800 (CST) Received: from j00421895-HPW10.huawei.com (10.202.226.61) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.408.0; Wed, 13 Feb 2019 00:50:19 +0800 From: Jonathan Cameron To: , , , CC: , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , Keith Busch , "Rafael J . Wysocki" , Michal Hocko , , Jonathan Cameron Subject: [PATCH 1/3] ACPI: Support Generic Initator only domains Date: Tue, 12 Feb 2019 16:49:24 +0000 Message-ID: <20190212164926.202-2-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190212164926.202-1-Jonathan.Cameron@huawei.com> References: <20190212164926.202-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.202.226.61] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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 first patch has the parsing code and provides the infrastructure for an architecture to associate these new domains with their nearest memory possessing node. Signed-off-by: Jonathan Cameron --- drivers/acpi/numa.c | 62 +++++++++++++++++++++++++++++++++- drivers/base/node.c | 3 ++ include/acpi/actbl3.h | 37 +++++++++++++++++++- include/asm-generic/topology.h | 3 ++ include/linux/nodemask.h | 1 + include/linux/topology.h | 7 ++++ 6 files changed, 111 insertions(+), 2 deletions(-) -- 2.18.0 diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index 7bbbf8256a41..890095794695 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c @@ -183,6 +183,38 @@ acpi_table_print_srat_entry(struct acpi_subtable_header *header) } break; + case ACPI_SRAT_TYPE_GENERIC_INITIATOR_AFFINITY: + { + struct acpi_srat_gi_affinity *p = + (struct acpi_srat_gi_affinity *)header; + char name[9] = {}; + + if (p->flags & ACPI_SRAT_GI_PCI_HANDLE) { + /* + * 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", + p->pci_handle.segment, + p->pci_handle.bdf, + p->proximity_domain, + (p->flags & ACPI_SRAT_GI_ENABLED) ? + "enabled" : "disabled"); + } else { + /* + * In this case we can rely on the device having a + * proximity domain reference + */ + memcpy(name, p->acpi_handle.hid, 8); + pr_info("SRAT Generic Initiator(HID=%s UID=%u) in proximity domain %d %s\n", + name, + p->acpi_handle.uid, + p->proximity_domain, + (p->flags & ACPI_SRAT_GI_ENABLED) ? + "enabled" : "disabled"); + } + } + break; default: pr_warn("Found unsupported SRAT entry (type = 0x%x)\n", header->type); @@ -391,6 +423,32 @@ acpi_parse_gicc_affinity(struct acpi_subtable_header *header, return 0; } +static int __init +acpi_parse_gi_affinity(struct acpi_subtable_header *header, + const unsigned long end) +{ + struct acpi_srat_gi_affinity *gi_affinity; + int node; + + gi_affinity = (struct acpi_srat_gi_affinity *)header; + if (!gi_affinity) + return -EINVAL; + acpi_table_print_srat_entry(header); + + if (!(gi_affinity->flags & ACPI_SRAT_GI_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 @@ -446,7 +504,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; @@ -455,6 +513,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_INITIATOR_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 86d6cd92ce3d..f59b9d4ca5d5 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c @@ -634,6 +634,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[] = { @@ -645,6 +647,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/acpi/actbl3.h b/include/acpi/actbl3.h index ea1ca49c9c1b..35ea3f736697 100644 --- a/include/acpi/actbl3.h +++ b/include/acpi/actbl3.h @@ -190,7 +190,8 @@ enum acpi_srat_type { ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, ACPI_SRAT_TYPE_GICC_AFFINITY = 3, ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */ - ACPI_SRAT_TYPE_RESERVED = 5 /* 5 and greater are reserved */ + ACPI_SRAT_TYPE_GENERIC_INITIATOR_AFFINITY = 5, /* ACPI 6.3 */ + ACPI_SRAT_TYPE_RESERVED = 6 /* 6 and greater are reserved */ }; /* @@ -271,6 +272,40 @@ struct acpi_srat_gic_its_affinity { u32 its_id; }; +/* Flags for struct acpi_srat_gi_affinity */ + +#define ACPI_SRAT_GI_ENABLED (1) /* 00: Use affinity structure */ +#define ACPI_SRAT_GI_ACPI_HANDLE (0) /* 01: */ +#define ACPI_SRAT_GI_PCI_HANDLE (1 << 1) /* 01: */ + +/* Handles to associate the generic initiator with types of ACPI device */ + +struct acpi_srat_gi_acpi_handle { + char hid[8]; + u32 uid; + u32 reserved; +}; + +struct acpi_srat_gi_pci_handle { + u16 segment; + u16 bdf; + u8 reserved[12]; +}; + +/* 5 : Generic Initiator Affinity (ACPI 6.3) */ + +struct acpi_srat_gi_affinity { + struct acpi_subtable_header header; + u8 reserved; + u8 device_handl_type; + u32 proximity_domain; + union { + struct acpi_srat_gi_acpi_handle acpi_handle; + struct acpi_srat_gi_pci_handle pci_handle; + }; + u32 flags; + u32 reserved2; +}; /******************************************************************************* * * STAO - Status Override Table (_STA override) - ACPI 6.0 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 5a30ad594ccc..501b1d32b323 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 cb0775e1ee4b..9d5f8501efcf 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h @@ -125,6 +125,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 Tue Feb 12 16:49:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 158159 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp4059913jaa; Tue, 12 Feb 2019 08:50:40 -0800 (PST) X-Google-Smtp-Source: AHgI3IYgdU0yEOkSmddWXH0QESFi7Q4tY0t6B9HNoXLiobISSf/Q/QT8LVxllXfFuLnX6JLb16ew X-Received: by 2002:a63:d50c:: with SMTP id c12mr4473125pgg.32.1549990240373; Tue, 12 Feb 2019 08:50:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549990240; cv=none; d=google.com; s=arc-20160816; b=TU+q7OC/7+OsS5wgvgNVUYVQcnBOxx5IlhWM6XCVlQTetWdpP3Ed1LNPGJIK1DVJSB 9op2bbBv6+fIn+QIe65DZqdbxqrKPNka4WQUzZEF7nK4hKtC3zLRJy31HrPBImWi5297 QdlPRUOGQQwuEessZfvkmtSUepfdDgONRYt4nOb+ecx3l+x+21K//xN6whgC6YLPQTRB HZYEtKKFjtvtPxVOobKqsPE5M5p+UwLcT/kK1MXij9KKn26KBHDbXNYFoWwGwPz0gHKg ePPcrRif0GzZd5xPsHZHVPpeGniop9UT+FpKFPQzkxnSkkwTnRdYV8VG2M7QYqtB0l1a GzKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=1mN7iMooA3KVd0qWi1NHOaj1xqcTLIgTbwO9dW7o6Nw=; b=0gUikefg92wtD24hLZFY/KYTNkwm/i//v4z3yPLoP9/e5Ye31k3pdJxRYCdy68nPUK 90bkesTAO/Q6Dgn5mJrJLfr9ahtLoCkc7WKjPluuYT7Jdm34kFC7R8bqmmcZq0HJXZii miffyE4NpfScIlI/xEk5RZCFL4M9bNc0oFgNlNvHuF2b6P9BOxkO767i+SjXzrpKCk35 VhHm/KdgBeK24rvkIX4znoNaiPcv4wkZjcQXNDdCBh0F4CB1TjF0vOuBDP5YSdAGAAWt VxHho0f+5MQzWGgmsvtM3Vp8nCOVGLN+uXCdgaRRkrJbH3PEj/GmRA9R6c8f7sZWjU9f 5GgQ== 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 y15si219506pll.148.2019.02.12.08.50.39; Tue, 12 Feb 2019 08:50:40 -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; 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 S1728035AbfBLQui (ORCPT + 31 others); Tue, 12 Feb 2019 11:50:38 -0500 Received: from szxga04-in.huawei.com ([45.249.212.190]:3191 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727986AbfBLQuh (ORCPT ); Tue, 12 Feb 2019 11:50:37 -0500 Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id C2159F346FEF718CFC8E; Wed, 13 Feb 2019 00:50:31 +0800 (CST) Received: from j00421895-HPW10.huawei.com (10.202.226.61) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.408.0; Wed, 13 Feb 2019 00:50:22 +0800 From: Jonathan Cameron To: , , , CC: , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , Keith Busch , "Rafael J . Wysocki" , Michal Hocko , , Jonathan Cameron Subject: [PATCH 2/3] arm64: Support Generic Initiator only domains Date: Tue, 12 Feb 2019 16:49:25 +0000 Message-ID: <20190212164926.202-3-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190212164926.202-1-Jonathan.Cameron@huawei.com> References: <20190212164926.202-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.202.226.61] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The one thing that currently needs doing from an architecture point of view is associating the GI domain with its nearest memory domain. This allows all the standard NUMA aware code to get a 'reasonable' answer. A clever driver might elect to do load balancing etc if there are multiple host / memory domains nearby, but that's a decision for the driver. Signed-off-by: Jonathan Cameron --- arch/arm64/kernel/smp.c | 8 ++++++++ 1 file changed, 8 insertions(+) -- 2.18.0 diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c index 1598d6f7200a..871d2d21afb3 100644 --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c @@ -698,6 +698,7 @@ void __init smp_prepare_cpus(unsigned int max_cpus) { int err; unsigned int cpu; + unsigned int node; unsigned int this_cpu; init_cpu_topology(); @@ -736,6 +737,13 @@ void __init smp_prepare_cpus(unsigned int max_cpus) set_cpu_present(cpu, true); numa_store_cpu_info(cpu); } + + /* + * Walk the numa domains and set the node to numa memory reference + * for any that are Generic Initiator Only. + */ + for_each_node_state(node, N_GENERIC_INITIATOR) + set_gi_numa_mem(node, local_memory_node(node)); } void (*__smp_cross_call)(const struct cpumask *, unsigned int); From patchwork Tue Feb 12 16:49:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 158160 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp4060049jaa; Tue, 12 Feb 2019 08:50:46 -0800 (PST) X-Google-Smtp-Source: AHgI3IZObCpXJMUqP0SV05QHV0JtLSqGILXrYb11/BpnBOpY7gscX8qOvxZdU8o1/9EjaD6P+wpp X-Received: by 2002:a17:902:27a8:: with SMTP id d37mr4979894plb.182.1549990246723; Tue, 12 Feb 2019 08:50:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549990246; cv=none; d=google.com; s=arc-20160816; b=UOt6vbidtxPged9asW3SBBndGNkeZy64A1lXLr6FzuW1xQO1/AtLYc5XOz4wrzF/gP oTpIVshTSUeTh7kUmwNfgCYK2WgcOfzHhWZLzJuoQjNz1W8EZxrxHMGCxpYbIZDvYS2m g2jMD29wEZpZiNuH+FXkjNE+PgGMLHHJ6vKkC07kU+ZQrcoweAdd8gahyCxW95oJruK6 9r4qrQc4dCOojRGqBzotULoL5ywUV5mL0IgMS2drYrGGap+nbI2R1mknRiph4Ky//Fb/ NI4bdjSMSjS+FFsm82+3tyBmrY1AnT177MvZiXj2m7B7xm0mpPWBYZKxaFF8X1qy4fAo 3Z8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=22u2nzQfQfmqHyKDhVuCSOwYEX716Xpo/VCkQkdinJ0=; b=PIzvtRavAm7iR6Y7sydZuuO8nzH+f2pQRqGOcgVduBdqPtXLq1hHVEPn8SS9/62mc+ JVINyRFrq8Iit90ozYM4ah6iQd7gEgtRhNn5YglFav3nYM72Dt1+K9e685yIZ2YJsD/G mHjAgV2SVzBE809NNm0xWWrOb+wvUf+XDxD5rJaYMdHus61Rs21FDkuv4C4irZWCN5Ou qq6mZcTc7JIf/vAuYcEX56TxzL0qGL9T35YbEEvg7BjmaOkCAEsvcGILHxtK2Wm5UPBO V7dwjlpp/miebLw+M57a2gfvFI4fZFtbO6FX3N2/8d9XoAhcaw+e0e2pI0tWO5wrn+pP bp+w== 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 y15si219506pll.148.2019.02.12.08.50.46; Tue, 12 Feb 2019 08:50:46 -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; 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 S1731333AbfBLQuo (ORCPT + 31 others); Tue, 12 Feb 2019 11:50:44 -0500 Received: from szxga07-in.huawei.com ([45.249.212.35]:50722 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1730844AbfBLQuk (ORCPT ); Tue, 12 Feb 2019 11:50:40 -0500 Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id DBF00DF7E33A091663B7; Wed, 13 Feb 2019 00:50:36 +0800 (CST) Received: from j00421895-HPW10.huawei.com (10.202.226.61) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.408.0; Wed, 13 Feb 2019 00:50:26 +0800 From: Jonathan Cameron To: , , , CC: , =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , Keith Busch , "Rafael J . Wysocki" , Michal Hocko , , Jonathan Cameron Subject: [PATCH 3/3] ACPI: Let ACPI know we support Generic Initiator Affinity Structures Date: Tue, 12 Feb 2019 16:49:26 +0000 Message-ID: <20190212164926.202-4-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190212164926.202-1-Jonathan.Cameron@huawei.com> References: <20190212164926.202-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.202.226.61] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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 --- Note that this will need platform guards unless we make generic initiators work on all ACPI platforms from the start. drivers/acpi/bus.c | 1 + include/linux/acpi.h | 1 + 2 files changed, 2 insertions(+) -- 2.18.0 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 5c093ce01bcd..461fb393346a 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -315,6 +315,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 87715f20b69a..760c6f3d57f0 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -498,6 +498,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;