Received: by 2002:ac0:8845:0:0:0:0:0 with SMTP id g63csp2331740img; Wed, 27 Feb 2019 14:51:34 -0800 (PST) X-Google-Smtp-Source: AHgI3IYcWtsY6RnweKfXR5aaWLUONpSh5lfaZqg4jl8MdWZ1fLoOhE6tLyVhfU0GvaGIGiMEOpUY X-Received: by 2002:aa7:8811:: with SMTP id c17mr4101932pfo.197.1551307894753; Wed, 27 Feb 2019 14:51:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551307894; cv=none; d=google.com; s=arc-20160816; b=O2AHv85HE8OigktP/bP/sFV1yOv3VhCVbOECHCnhyUS6zvVtQINq8IlOKSCiqAl/MP 7kgOyYPHnPktRR8MSgYlBzy72ZLjYBBZnpdUTcwDkXOA54xPvVqkC4JP7iMos7G2BIRE Q7+8zxSeCcOLUed2I15X55cwX4mcCJKgfD/ikbhtlns5Miln/FNnbZPJ0pJRXI9S4Iwk GUA3qnxs79u16bjQlhXIhoE0S42BZNIwncr9YLYgm7i+YEPiOQ8vQd6DL82wWQhGwi9c pfqMPqW3+HHfpnXWuB+Lx0UqLYfQINlgyixqESX6xOBblNN+HGntY8BILBa9hN9wxcOl XAfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=OHDGhb0MZIqeC0ZuKOhSecYdcgZsyxoRgwNVBcSffNU=; b=jDriexSY7pIkkNAd5s3AkAi4XL5xupaLMz/lizFaYRSj7Nn+veh1BFXY+BbXBTTkmA Gr43VkuzafNszCMg5UPzORM2PT1n/LUS4F1kwl+o16ruiZQ9z9EpcTRyhf/eU8K2VelV rKu/UMM2anPX7sBwSyga6l70iWO3s/meZYsywkAoNzeVEQNxks4A7u3i76eHO09ixWWz hOB/jEVjMUO68+0o8zVMfpFP992ZBmypTFT8rymyrJPS9JhRJt6375B7twUFYBvQhiGx uA6gfZFCKbBtbM5COSkPsL0EgGsjJvH9L3xXM8ntzLr0Hgoplb8IHxRo/ywPRXpS4S36 f8Ug== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d5si16513992pls.56.2019.02.27.14.51.07; Wed, 27 Feb 2019 14:51:34 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730384AbfB0Wu3 (ORCPT + 99 others); Wed, 27 Feb 2019 17:50:29 -0500 Received: from mga03.intel.com ([134.134.136.65]:4751 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729412AbfB0Wu2 (ORCPT ); Wed, 27 Feb 2019 17:50:28 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Feb 2019 14:50:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,420,1544515200"; d="scan'208";a="121349372" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by orsmga008.jf.intel.com with ESMTP; 27 Feb 2019 14:50:27 -0800 From: Keith Busch To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org, linux-api@vger.kernel.org Cc: Greg Kroah-Hartman , Rafael Wysocki , Dave Hansen , Dan Williams , Keith Busch Subject: [PATCHv7 00/10] Heterogenous memory node attributes Date: Wed, 27 Feb 2019 15:50:28 -0700 Message-Id: <20190227225038.20438-1-keith.busch@intel.com> X-Mailer: git-send-email 2.13.6 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org == Changes since v6 == Updated to linux-next, which has a change to the HMAT structures to account for ACPI revision 6.3. Changed memory-side cache "associativity" attribute to "indexing" Regarding the Kconfig, I am having the implementation specific as a user selectable option, and the generic interface, HMEM_REPORTING, is not a user prompt. I just wanted to clarify the point that there's only one. == Background == Platforms may provide multiple types of cpu attached system memory. The memory ranges for each type may have different characteristics that applications may wish to know about when considering what node they want their memory allocated from. It had previously been difficult to describe these setups as memory rangers were generally lumped into the NUMA node of the CPUs. New platform attributes have been created and in use today that describe the more complex memory hierarchies that can be created. This series' objective is to provide the attributes from such systems that are useful for applications to know about, and readily usable with existing tools and libraries. Those applications may query performance attributes relative to a particular CPU they're running on in order to make more informed choices for where they want to allocate hot and cold data. This works with mbind() or the numactl library. Keith Busch (10): acpi: Create subtable parsing infrastructure acpi: Add HMAT to generic parsing tables acpi/hmat: Parse and report heterogeneous memory node: Link memory nodes to their compute nodes node: Add heterogenous memory access attributes node: Add memory-side caching attributes acpi/hmat: Register processor domain to its memory acpi/hmat: Register performance attributes acpi/hmat: Register memory side cache attributes doc/mm: New documentation for memory performance Documentation/ABI/stable/sysfs-devices-node | 87 +++- Documentation/admin-guide/mm/numaperf.rst | 164 +++++++ arch/arm64/kernel/acpi_numa.c | 2 +- arch/arm64/kernel/smp.c | 4 +- arch/ia64/kernel/acpi.c | 14 +- arch/x86/kernel/acpi/boot.c | 36 +- drivers/acpi/Kconfig | 1 + drivers/acpi/Makefile | 1 + drivers/acpi/hmat/Kconfig | 11 + drivers/acpi/hmat/Makefile | 1 + drivers/acpi/hmat/hmat.c | 670 ++++++++++++++++++++++++++ drivers/acpi/numa.c | 16 +- drivers/acpi/scan.c | 4 +- drivers/acpi/tables.c | 76 ++- drivers/base/Kconfig | 8 + drivers/base/node.c | 352 +++++++++++++- drivers/irqchip/irq-gic-v2m.c | 2 +- drivers/irqchip/irq-gic-v3-its-pci-msi.c | 2 +- drivers/irqchip/irq-gic-v3-its-platform-msi.c | 2 +- drivers/irqchip/irq-gic-v3-its.c | 6 +- drivers/irqchip/irq-gic-v3.c | 10 +- drivers/irqchip/irq-gic.c | 4 +- drivers/mailbox/pcc.c | 2 +- include/linux/acpi.h | 6 +- include/linux/node.h | 72 ++- 25 files changed, 1487 insertions(+), 66 deletions(-) create mode 100644 Documentation/admin-guide/mm/numaperf.rst create mode 100644 drivers/acpi/hmat/Kconfig create mode 100644 drivers/acpi/hmat/Makefile create mode 100644 drivers/acpi/hmat/hmat.c -- 2.14.4