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: 10808297 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9200B13B4 for ; Tue, 12 Feb 2019 16:50:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7EBF32C13E for ; Tue, 12 Feb 2019 16:50:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7C3FD2C425; Tue, 12 Feb 2019 16:50:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BF63C2C422 for ; Tue, 12 Feb 2019 16:50:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BF35E8E0004; Tue, 12 Feb 2019 11:50:32 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B53AF8E0001; Tue, 12 Feb 2019 11:50:32 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9561A8E0004; Tue, 12 Feb 2019 11:50:32 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-vs1-f69.google.com (mail-vs1-f69.google.com [209.85.217.69]) by kanga.kvack.org (Postfix) with ESMTP id 650D78E0001 for ; Tue, 12 Feb 2019 11:50:32 -0500 (EST) Received: by mail-vs1-f69.google.com with SMTP id o22so1197885vsp.18 for ; Tue, 12 Feb 2019 08:50:32 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version; bh=qHcqn+Ug+DP3AjqXDsty1crmXR+AS/AECu2pwPrmmFY=; b=jfSd+bBW7fC3nUfzya1jNN6etCWYl68n4eR3PXGoqqIp3kdy2S9g8D9fVlW8VWGgXD BZL4sBO+u+mvRTsbgOCB9/9JlEZvbVYX85u2rcwrSSCtB6UusW2XeNB0ATlLqMAc6d4+ GBsToOc2Vg7VAcWv8BXiznnpmIzHW+BeOWwD1qED8lqa7zmk1xJuOU7b6UffjS/wIFXo +qFawp2Oxe31EECuIZZYQb1zDUaWB83CVsJFM+pCgEhumzA8Jx6vPMYvST7vHbQ8xIE/ yjHp4+mRXgZC4h2xMfuhX+zDM0w1WdftLjyiX5gCgHWppYgyydMCzCdLLIXZuU3UOWcN pn7w== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com X-Gm-Message-State: AHQUAubkC+XYCoWAqB33MbwqRIAuVztadR3Eq55pHk3+J4NTeUwN5yG9 Q4nZ02R83jURlftoEnsQI4tRJ9JQH4sW2ixWcTftrpSoV5397tSNsCzzGZVC2WQCZ3uGd0V62kQ 8u6U3QK3StvPIdJdNKwUNTgaaqO96fPwX7NqVHvLGndVPJSmaMMZuXLSPcroYsHAURA== X-Received: by 2002:a67:7c92:: with SMTP id x140mr1778200vsc.137.1549990232048; Tue, 12 Feb 2019 08:50:32 -0800 (PST) X-Google-Smtp-Source: AHgI3IZ7RCowAWPzAVAzPikYhgUzLJV+g1/HR3elD67nxZ7PEvFPXWRKwHSNAFPFF+YJ+5h9gUsH X-Received: by 2002:a67:7c92:: with SMTP id x140mr1778171vsc.137.1549990231020; Tue, 12 Feb 2019 08:50:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549990231; cv=none; d=google.com; s=arc-20160816; b=LQFu7xY2M71ltR97UBproVXMp1IeFI9VvYWFsE/ozBXLvGQ5Fx8xM5rAp2fnTrMeBc B8VPikhwBqvhLTeEQ0iGst7mBTa2xCWP1TEhg0QA/lS5srPDfIc9Yk+dGWvYIrJ68mrR /eKjhiPnYTZHQgKMvSc+Umsoet69OTM6kGc4XUfGPQkZRUR6YubueYTZFZSfb6cahlQs 0Hj/eVwgqwEkpIR+E/NokqUUPQCsIDsNxbkHoeXcoGvMB9x2Lc63/h+CWQZUmWUXa5Bn Gf+ySryqyrmS5qal15xDJHbzGzHaeOjMedh0yFJqfKfif0pfONHmMJmVxdX/YBDt0OO+ OkEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=qHcqn+Ug+DP3AjqXDsty1crmXR+AS/AECu2pwPrmmFY=; b=bvEnx3Ykqs2+yiazHhF+r5CVep/MkTFC7L2+ZxmBUL2vWKwKAjFENOqvYOKji+yjgj Z0oGMn5std35s2Nc+m6o35w6dBN0HwL/+qd4zMyW3NHyYDXDqB+pdoFPoOswbshlooXT 0JeWM8+nwOCpm9VstD9W3csnY5OlW/uI/UcOxyb8BLYAd9rYSToV++k5t02bYuIZjZdI sXSn8XrW5cAint+q1aEX5xSix3faAwqPnHtkC6fRuVOe5Sb1V++3Va5OMYhx9NDalwpK vkbWdQiSfuF1n8QOTxPssH/pxsBTbg1GmYZQcIVDstrdX4aYVTI5RVVbkvH2mIegYe2P P4Gg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com Received: from huawei.com (szxga04-in.huawei.com. [45.249.212.190]) by mx.google.com with ESMTPS id s19si1365209vsl.400.2019.02.12.08.50.30 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Feb 2019 08:50:31 -0800 (PST) Received-SPF: pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) client-ip=45.249.212.190; Authentication-Results: mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com 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 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP 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(-) 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: 10808299 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4713517E0 for ; Tue, 12 Feb 2019 16:50:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 374A42C3FF for ; Tue, 12 Feb 2019 16:50:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2B56E2C413; Tue, 12 Feb 2019 16:50:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B1E1A2C41C for ; Tue, 12 Feb 2019 16:50:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 171728E0005; Tue, 12 Feb 2019 11:50:37 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 082948E0001; Tue, 12 Feb 2019 11:50:36 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E40128E0005; Tue, 12 Feb 2019 11:50:36 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ua1-f70.google.com (mail-ua1-f70.google.com [209.85.222.70]) by kanga.kvack.org (Postfix) with ESMTP id A6E828E0001 for ; Tue, 12 Feb 2019 11:50:36 -0500 (EST) Received: by mail-ua1-f70.google.com with SMTP id x1so302802ual.12 for ; Tue, 12 Feb 2019 08:50:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version; bh=1mN7iMooA3KVd0qWi1NHOaj1xqcTLIgTbwO9dW7o6Nw=; b=tnV0UbveJuagJOGqJM7Ymwd6skM7ef7HIIcPUaaCOxlL9BJynbBkfW//63GtDV2W5k diE5NJnlVRYEP2hOBTG5YAsbzfsLnXZqPDSaaT1ETh38vg4MqvVo1Y8E1xkXLcV4eEQM MfSgm/0AwDtJj91Oc5KGdR91joP8skgSoeL+DgB/s7o0yWsXX0xUj1jtxZrvT7YCax/q meau3g8JeAQKo0eFLu57RuXj1GmdVlxzpB8zy4aAutv1+vxtnj9jeOkbmZkwY53y8pZM /7nkwAakGhNHN8FzoPaIAMjD019JuuDdRARr4DUNLitD5hMA5vn3e/+yxpEBhFWNKGY/ ckCA== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com X-Gm-Message-State: AHQUAubGzsHRTaIxCXgqjqToBh/0f6HfCV0KI/DziHnFMBEuXEHCyuX4 TQrETxiXb1s6p8c/pk2g8oiDAAyEAyM8gCw5b3HMrtWYINxMWxCHWG/1wiOp42E94Apt9SpcxHp z6EKvnOSifOvJWuokV4vhNBRG1kElgdrZDoYaxaLgcvQoc9S04sMwSdDo5F2hx5uGag== X-Received: by 2002:a1f:1094:: with SMTP id 20mr1831302vkq.62.1549990236343; Tue, 12 Feb 2019 08:50:36 -0800 (PST) X-Google-Smtp-Source: AHgI3Ib8EIAUpv8EtLeQa6BYdswJOaXs7oIflq1DalGHAkMDiyjaII6x4S2jZhf0uAJexwaD8zF+ X-Received: by 2002:a1f:1094:: with SMTP id 20mr1831277vkq.62.1549990235672; Tue, 12 Feb 2019 08:50:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549990235; cv=none; d=google.com; s=arc-20160816; b=ZWYIWQAhO8M/tz2HVMpoItremSLO2ul/KVl7f1WGW21pVpa91d7KK+zLLj/7aMcnLU rKv4LWgkjQok8/jxNpzH6ov2mOVbzU17WJIm913oy8PFg70LXCEcFRss0Z41qV6joZAm 6amB6BtfWVHqp/IOiMczdZZeFa2/nY8msV5azffuKvALD7TGKhhc9HA13+0LaH8UaeER aINasJ0uvohdQleaaxCfO8NMkO2ELBl5J9zqyoGbRU/CBY+Vx1eq1GiyBB04VTmHD10x 45yXVDik/7iAwexMont3zrRRRpApPw9ItIFsFYG9vk9iD/RD3LMRQsmja7deF5bm7z5B FFTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=1mN7iMooA3KVd0qWi1NHOaj1xqcTLIgTbwO9dW7o6Nw=; b=Kr7QoSQqPJIORWriQpWIIbIZHPoWQlVAi+PPBD3Sri8ngTGYjxFSOSATyfdzXqNyy8 V/2qWosDXaxAjEjMrpVABKEANYNUhZBeDYPO5mJxYBaYOrYuVzI6H8b5DWdWEqJtLSeP 4fOuRge4qP/067XW5+RLSVp/ZFoV+58dMVA4YiEUR97yTDeCQpiLmVk7wmalavg/bW+0 6YeWl0EgpHdRoRmBJtFwpVp5ND/t4awaXt2ZSGz7o/DEe9ZCcg5ikEZgCd7W+VLOEUfn 93S1nTQlLp4TgZOf8myqSNetF/O8bfM9O7Xp4/WeqpJmxfC4bqi4YUxSUtmGEZvDuMvM cjaQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com Received: from huawei.com (szxga04-in.huawei.com. [45.249.212.190]) by mx.google.com with ESMTPS id r13si2874465uae.23.2019.02.12.08.50.35 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Feb 2019 08:50:35 -0800 (PST) Received-SPF: pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) client-ip=45.249.212.190; Authentication-Results: mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.190 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com 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 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP 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(+) 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: 10808301 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B243B17E0 for ; Tue, 12 Feb 2019 16:50:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A0ADF2C265 for ; Tue, 12 Feb 2019 16:50:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9EC372C234; Tue, 12 Feb 2019 16:50:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 931C82C291 for ; Tue, 12 Feb 2019 16:50:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5AF758E0006; Tue, 12 Feb 2019 11:50:42 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 55E2D8E0001; Tue, 12 Feb 2019 11:50:42 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 474238E0006; Tue, 12 Feb 2019 11:50:42 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-vk1-f197.google.com (mail-vk1-f197.google.com [209.85.221.197]) by kanga.kvack.org (Postfix) with ESMTP id 181CC8E0001 for ; Tue, 12 Feb 2019 11:50:42 -0500 (EST) Received: by mail-vk1-f197.google.com with SMTP id s143so773244vke.7 for ; Tue, 12 Feb 2019 08:50:42 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version; bh=22u2nzQfQfmqHyKDhVuCSOwYEX716Xpo/VCkQkdinJ0=; b=gdLpQ1/0cHK3LAIIz0S6UTIDcHda2ichg/6P5hOGvjcIghDTX8VZbfgRQQxp4Al6gf U6e4lahb/xuVqFwAJ4ia913aPVlxnAtridB0Dc1T98YD5WCvELHwwOtkquphe9K2+dI6 oetjygU8iG4oObqk6ZEXDj9auf1AKhPkxDOjBfBkCevU2atq4ZSNS/jAQH6XsdpZvhKy sfMMSsMEh5tqJtyBAiN7P0fOS99ipoF2o00jKRLde1lHRv6iR7awxMCD7sd801CLq/pI lMhAWHb2WqNylE9nslUbiMBWr3aejmRKTCnlF1DOqEo55Kjuk2jbAdlDQaK/K6QeUwHz k3CA== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com X-Gm-Message-State: AHQUAuYX0O+8WENPoKCV+nw/efT1AMoJwRIwmC44nAa+qmjnmcQUOR3t K4JvyUpTPh2YrPaciZkaI5qJmhVOuV3ct4OMvd65QEPamcBYOSmgYVCGHJZAotXS7MtdlGvv9tA SGBmV5915wE8KyM29/Z8avr80t3FWDMYkMZAgAmnfyKUhJzpCmOVGq50LdQ9AZEz77w== X-Received: by 2002:a67:485:: with SMTP id 127mr1936070vse.54.1549990241802; Tue, 12 Feb 2019 08:50:41 -0800 (PST) X-Google-Smtp-Source: AHgI3IbpCm6Dv03DWu3FjKeCQK/PlOobYmjQTshD8sCPY9cSeSgBefR6kkZfoZpFxpJGfyMFnv0F X-Received: by 2002:a67:485:: with SMTP id 127mr1936052vse.54.1549990241045; Tue, 12 Feb 2019 08:50:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549990241; cv=none; d=google.com; s=arc-20160816; b=su7SnIaHDz/1GpHSwihxyeeYygkGxbjx7TS6N0XHMYf3+HUFmaNaVGtrkSR1KQBa0B nIDivN9gl9ocNLyN6VbAj0n/FkFTZc9M/Ii5XKB6ILhAAOCx7IULUpq4ueQTlNe2g28j ksVn7CuNkO+hIZKrV8psfGYaVr71hm39bzmmnRber2awpWeqSQvFSMQi1mEjQ/kY98Vu 8Cmok2d7EVMKYVrYAR/Ez+IwS4Rna7HSNk3+oQcl6Qilzw/DhQbESwfdsJzBM8b/pQ3c h+NhCBLzRdQsRMP7+QkA5MSUnOAF+ozinv42lLi/0XacBywOGTEbAHiEQeP03A+r/+9q 6oxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=22u2nzQfQfmqHyKDhVuCSOwYEX716Xpo/VCkQkdinJ0=; b=EoqmWbqrvpAERVBo2ew8/cBat3IZ3z7FO0CETzBtjPqywA4Jfy5hejQAQZBY+xDpJC H8jRuo0I46CdL7vCoR689wUKAWaxTyoWa3gg7FdcSdwJswcyZ9jCNsb2otEVnw/K+1NM uVRxflkc7yqkZY0GZhYq9YQDfSAtqX3CQZ8n3bueO6zPKNjQHnZvQ9tgQG7fNZRkulzE mINeGXOs0owVsUDZLpJi1y9gxmqNzbPsEEx0bI587Jv5XyC6bGT9Wm44X48T9+tzymxc gyO/dXxAjQSXwXYqSw4YdTzACQkm67l7/mhkuVcZEmUdECRrgnx6Na2UGstoWNTHuI2h O1lQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com Received: from huawei.com (szxga07-in.huawei.com. [45.249.212.35]) by mx.google.com with ESMTPS id g133si6248737vsd.297.2019.02.12.08.50.40 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Feb 2019 08:50:41 -0800 (PST) Received-SPF: pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.35 as permitted sender) client-ip=45.249.212.35; Authentication-Results: mx.google.com; spf=pass (google.com: domain of jonathan.cameron@huawei.com designates 45.249.212.35 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com 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 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP 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(+) 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;