From patchwork Wed May 9 08:36:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liu, Jingqi" X-Patchwork-Id: 10388703 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 59CCB60353 for ; Wed, 9 May 2018 08:40:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4D56328E78 for ; Wed, 9 May 2018 08:40:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0276628E7B; Wed, 9 May 2018 08:40: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=-7.9 required=2.0 tests=BAYES_00, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A6EA928E26 for ; Wed, 9 May 2018 08:40:36 +0000 (UTC) Received: from localhost ([::1]:55189 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGKeJ-0001V9-Oi for patchwork-qemu-devel@patchwork.kernel.org; Wed, 09 May 2018 04:40:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47774) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGKas-00068z-EH for qemu-devel@nongnu.org; Wed, 09 May 2018 04:37:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGKao-0001iz-DO for qemu-devel@nongnu.org; Wed, 09 May 2018 04:37:02 -0400 Received: from mga06.intel.com ([134.134.136.31]:17048) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fGKao-0001ez-1W for qemu-devel@nongnu.org; Wed, 09 May 2018 04:36:58 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 May 2018 01:36:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,381,1520924400"; d="scan'208";a="47860315" Received: from optiplex-7050.sh.intel.com ([10.239.161.26]) by FMSMGA003.fm.intel.com with ESMTP; 09 May 2018 01:36:54 -0700 From: Liu Jingqi To: pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com Date: Wed, 9 May 2018 16:36:29 +0800 Message-Id: <1525854989-14165-1-git-send-email-jingqi.liu@intel.com> X-Mailer: git-send-email 2.7.4 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 134.134.136.31 Subject: [Qemu-devel] [PATCH v1 4/7] numa: Classify the numa nodes as memory initiators and memory targets X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: imammedo@redhat.com, Liu Jingqi , qemu-devel@nongnu.org, mst@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP An initiator proximity domain (memory initiator) is any device such as a CPU or a separate memory I/O device that can initiate a memory request. A target proximity domain (memory target) is a CPU-accessible physical address range. Signed-off-by: Liu Jingqi --- numa.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/numa.c b/numa.c index 70b150e..fe0009c 100644 --- a/numa.c +++ b/numa.c @@ -40,6 +40,7 @@ #include "qemu/option.h" #include "qemu/config-file.h" #include "qemu/cutils.h" +#include "hw/acpi/hmat.h" QemuOptsList qemu_numa_opts = { .name = "numa", @@ -100,6 +101,10 @@ static void parse_numa_node(MachineState *ms, NumaNodeOptions *node, machine_set_cpu_numa_node(ms, &props, &error_fatal); } + if (node->cpus) { + initiator_pxm[num_initiator++] = nodenr; + } + if (node->has_mem && node->has_memdev) { error_setg(errp, "cannot specify both mem= and memdev="); return; @@ -116,6 +121,7 @@ static void parse_numa_node(MachineState *ms, NumaNodeOptions *node, if (node->has_mem) { numa_info[nodenr].node_mem = node->mem; + target_pxm[num_target++] = nodenr; } if (node->has_memdev) { Object *o; @@ -128,6 +134,7 @@ static void parse_numa_node(MachineState *ms, NumaNodeOptions *node, object_ref(o); numa_info[nodenr].node_mem = object_property_get_uint(o, "size", NULL); numa_info[nodenr].node_memdev = MEMORY_BACKEND(o); + target_pxm[num_target++] = nodenr; } numa_info[nodenr].present = true; max_numa_nodeid = MAX(max_numa_nodeid, nodenr + 1);