From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 935F3C17447 for ; Wed, 13 Nov 2019 09:48:06 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 631E120818 for ; Wed, 13 Nov 2019 09:48:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 631E120818 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id EE96C6B0005; Wed, 13 Nov 2019 04:48:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E98BB6B0006; Wed, 13 Nov 2019 04:48:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DAE1C6B0007; Wed, 13 Nov 2019 04:48:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0237.hostedemail.com [216.40.44.237]) by kanga.kvack.org (Postfix) with ESMTP id C6EE26B0005 for ; Wed, 13 Nov 2019 04:48:05 -0500 (EST) Received: from smtpin27.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with SMTP id 840E1181AEF1D for ; Wed, 13 Nov 2019 09:48:05 +0000 (UTC) X-FDA: 76150778130.27.train29_46455a8150b0f X-HE-Tag: train29_46455a8150b0f X-Filterd-Recvd-Size: 4165 Received: from huawei.com (szxga06-in.huawei.com [45.249.212.32]) by imf02.hostedemail.com (Postfix) with ESMTP for ; Wed, 13 Nov 2019 09:48:02 +0000 (UTC) Received: from DGGEMS402-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 6CD6BC08E7C566C8E8DB; Wed, 13 Nov 2019 17:47:57 +0800 (CST) Received: from localhost (10.202.226.61) by DGGEMS402-HUB.china.huawei.com (10.3.19.202) with Microsoft SMTP Server id 14.3.439.0; Wed, 13 Nov 2019 17:47:49 +0800 Date: Wed, 13 Nov 2019 09:47:42 +0000 From: Jonathan Cameron To: Dan Williams CC: Linux MM , Linux ACPI , Linux Kernel Mailing List , Linux ARM , X86 ML , "Keith Busch" , =?ISO-8859-1?Q?J=E9r=F4me?= Glisse , "Rafael J . Wysocki" , Linuxarm , Andrew Morton , Tao Xu Subject: Re: [PATCH V5 1/4] ACPI: Support Generic Initiator only domains Message-ID: <20191113094742.00000dc4@huawei.com> In-Reply-To: References: <20191004114330.104746-1-Jonathan.Cameron@huawei.com> <20191004114330.104746-2-Jonathan.Cameron@huawei.com> Organization: Huawei X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; i686-w64-mingw32) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit 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: On Tue, 12 Nov 2019 09:55:17 -0800 Dan Williams wrote: > [ add Tao Xu ] > > On Fri, Oct 4, 2019 at 4:45 AM Jonathan Cameron > wrote: > > > > 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. > > Thanks for this Jonathan. May I ask how this was tested? Tao has been > working on qemu support for HMAT [1]. I have not checked if it already > supports generic initiator entries, but it would be helpful to include > an example of how the kernel sees these configurations in practice. > > [1]: http://patchwork.ozlabs.org/cover/1096737/ Tested against qemu with SRAT and SLIT table overrides from an initrd to actually create the node and give it distances (those all turn up correctly in the normal places). DSDT override used to move an emulated network card into the GI numa node. That currently requires the PCI patch referred to in the cover letter. On arm64 tested both on qemu and real hardware (overrides on tables even for real hardware as I can't persuade our BIOS team to implement Generic Initiators until an OS is actually using them.) Main real requirement is memory allocations then occur from one of the nodes at the minimal distance when you are do a devm_ allocation from a device assigned. Also need to be able to query the distances to allow load balancing etc. All that works as expected. It only has a fairly tangential connection to HMAT in that HMAT can provide information on GI nodes. Given HMAT code is quite happy with memoryless nodes anyway it should work. QEMU doesn't currently have support to create GI SRAT entries let alone HMAT using them. Whilst I could look at adding such support to QEMU, it's not exactly high priority to emulate something we can test easily by overriding the tables before the kernel reads them. I'll look at how hard it is to build an HMAT tables for my test configs based on the ones I used to test your HMAT patches a while back. Should be easy if tedious. Jonathan