From patchwork Mon Apr 15 17:49:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 162245 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp3218281jan; Mon, 15 Apr 2019 10:49:55 -0700 (PDT) X-Google-Smtp-Source: APXvYqyoZVjEEGPmJGPMIKE2jIDiCoGF1J/CYGNgXoInZFUowJNLI52RLAqg6qPgnCZQmjyiFp2Y X-Received: by 2002:a17:902:110c:: with SMTP id d12mr49435310pla.47.1555350595412; Mon, 15 Apr 2019 10:49:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555350595; cv=none; d=google.com; s=arc-20160816; b=mWUQoU2vAQ2yaIChKqFgb5UVmlKOkdnRKQR2N7P52ALkbQSF+EHNaSK2B3Dm0hQEo1 1ZB0cW3ipf2dm2lG8xAUC9MI6NnjzDs605KSmpQ/mgtidV6njjDb9Uwu42oQgZvpVVIn sIRo8jX2gZVJ4ppIy7XS+QGxYqX1IjFpP/rJYfvGQT22hcn8M+aq4s8JJsIjtePZn5Qx wJZ4lHjqNdyCCyUz0tiVzJEYbsmAN5HEm3T+wbHZZtUeN9yQmWqQCJMv0gbChYljavWj HJBvAcPHt53cWBSHyFs9gOOwrpOaHgtp/5RHGf0sWcLeolXkSa4k79c+lYdF0vxZSuAv 0CDw== 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=c8Oa8if3Ah0YDZHoU72RxzlhFP90iXNpwesyngeW7fE=; b=c6S7Mr4LVEuTzvDp5vWucFPhWJvrQiD56oUy++3tHDAaZU3krXZxRF8k6N1RdQr4ms gLTbJwp0KMVSQ5TV2dCnIkd+4yVlpzZGg0yuxBLkm4c8T6P1uYUTo1mix0vx/zB8hzWX Fn0M4t7RYAQILL9njj+nwONUUSTc9rP3LvX/Tef8EokFYZKmP+s+gpkXbEkdmMy5wCxv wMPfJ1s8ZEs9a9ilXo3G1TsItrqx7g3SbZlJeXmOMgVHS2WO+l60GKNgKQb73mQrCHbc Zm8V72W6IwYNxSCj7/x16hL0cJo6ihs/NsqRPpM7N2Of12u3MpoFdp7N6veuxo+w6NzX KN7A== 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 be8si45920789plb.72.2019.04.15.10.49.55; Mon, 15 Apr 2019 10:49:55 -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 S1728102AbfDORty (ORCPT + 30 others); Mon, 15 Apr 2019 13:49:54 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:6747 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727992AbfDORtt (ORCPT ); Mon, 15 Apr 2019 13:49:49 -0400 Received: from DGGEMS401-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id E4BA485083B4B38C348A; Tue, 16 Apr 2019 01:49:46 +0800 (CST) Received: from FRA1000014316.huawei.com (100.126.230.97) by DGGEMS401-HUB.china.huawei.com (10.3.19.201) with Microsoft SMTP Server id 14.3.408.0; Tue, 16 Apr 2019 01:49:37 +0800 From: Jonathan Cameron To: , , , CC: =?utf-8?b?SsOpcsO0bWUgR2xpc3Nl?= , Keith Busch , "Rafael J . Wysocki" , , Andrew Morton , "Jonathan Cameron" Subject: [PATCH 2/4 V3] arm64: Support Generic Initiator only domains Date: Tue, 16 Apr 2019 01:49:05 +0800 Message-ID: <20190415174907.102307-3-Jonathan.Cameron@huawei.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190415174907.102307-1-Jonathan.Cameron@huawei.com> References: <20190415174907.102307-1-Jonathan.Cameron@huawei.com> MIME-Version: 1.0 X-Originating-IP: [100.126.230.97] 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.19.1 diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c index 824de7038967..7c419bf92374 100644 --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c @@ -731,6 +731,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(); @@ -769,6 +770,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);