Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2555445imu; Thu, 24 Jan 2019 15:08:54 -0800 (PST) X-Google-Smtp-Source: ALg8bN7AFICrqezpQX9RGcuTFlDzxS+VOupRX9JnBaBzWD+dk6xvcRtxK5N7rj5HKI2Pv8He/FVB X-Received: by 2002:a62:c583:: with SMTP id j125mr8534465pfg.37.1548371333968; Thu, 24 Jan 2019 15:08:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548371333; cv=none; d=google.com; s=arc-20160816; b=zLJ/JGom3hEref1aJZp1eEsQ9p5iHu1MRrX7OCnyfpQ9UvYlXhUlQDGGPzVx/y3pQr TP5uwmn7CGl4Ie69mafH+op3OoW5maUKZv2RGTweeANm48bD/u+9NBbFppafRvpP2+H8 YX9ia3FJZcJseUGwPkr7ElItOw+AHEp2RhQyXakj7k/kSlkBtBInxsEmM5lAfAf9fgN8 X0gbCQSgZJ4KbnnIuo+eJLR4j8Rb3nkgNlMdk+WGIcnIKmRsp/B6q+VgummqXqOthVE6 beQpSFF7BRf0NwD/VzLVMtfpA0M4ac/ynwGEy4xsXe4JttFu6ebpcVbj/e4+O74d6yaq TbMg== 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=8IrhBZW91SZc1uEHUTZPwNp6jcMuInuo6UqQL3zEsk0=; b=KWT14W8qY7eF2IhHBHR3YnfWb8ToCdCIGo75nnFkMxHvelW/EjUJwsAF7V1UyQ3cxY s7XfIfxNgztvyE1nEX9HR80zZttwSWr4M3pb+tWiZTAvlzDFgPrSYNWHTRZySNujdz7N yCkVwUpTT3HFZiNkkQPutxtrYEshDUFtC6H0D108vYX8vHacDIqINQDXERWU96tTCUwU aA3obJ7SfoF5n8uGKyxAStvw2fUSmaZ19l91BWr3tU4YBOy7e3c2kJTy/MT+TXRMn5fe 9/U8ddKv9LXgipHGw1yO844pjrKbWmWgwXUU5nhEeriK8G0GLlBG8Twv39w4Jn9RPtyd +T5w== 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 v16si2659577pgg.290.2019.01.24.15.08.38; Thu, 24 Jan 2019 15:08:53 -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 S1727955AbfAXXI3 (ORCPT + 99 others); Thu, 24 Jan 2019 18:08:29 -0500 Received: from mga03.intel.com ([134.134.136.65]:21167 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725996AbfAXXI3 (ORCPT ); Thu, 24 Jan 2019 18:08:29 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 15:08:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,518,1539673200"; d="scan'208";a="313295731" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by fmsmga006.fm.intel.com with ESMTP; 24 Jan 2019 15:08:22 -0800 From: Keith Busch To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-mm@kvack.org Cc: Greg Kroah-Hartman , Rafael Wysocki , Dave Hansen , Dan Williams , Keith Busch Subject: [PATCHv5 00/10] Heterogeneuos memory node attributes Date: Thu, 24 Jan 2019 16:07:14 -0700 Message-Id: <20190124230724.10022-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 v4 == All public interfaces have kernel docs. Renamed "class" to "access", docs and changed logs updated accordingly. (Rafael) The sysfs hierarchy is altered to put initiators and targets in their own attribute group directories (Rafael). The node lists are removed. This feedback is in conflict with v1 feedback, but consensus wants to remove multi-value sysfs attributes, which includes lists. We only have symlinks now, just like v1 provided. Documentation and code patches are combined such that the code introducing new attributes and its documentation are in the same patch. (Rafael and Dan). The performance attributes, bandwidth and latency, are moved into the initiators directory. This should make it obvious for which node access the attributes apply, which was previously ambiguous. (Jonathan Cameron). The HMAT code selecting "local" initiators is substantially changed. Only PXM's that have identical performance to the HMAT's processor PXM in Address Range Structure are registered. This is to avoid considering nodes identical when only one of several perf attributes are the same. (Jonathan Cameron). Verbose variable naming. Examples include "initiator" and "target" instead of "i" and "t", "mem_pxm" and "cpu_pxm" instead of "m" and "p". (Rafael) Compile fixes for when HMEM_REPORTING is not set. This is not a user selectable config option, default 'n', and will have to be selected by other config options that require it (Greg KH and Rafael). == 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. 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 acpi/hmat: Register processor domain to its memory node: Add heterogenous memory access attributes acpi/hmat: Register performance attributes node: Add memory caching 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 | 167 ++++++++ arch/arm64/kernel/acpi_numa.c | 2 +- arch/arm64/kernel/smp.c | 4 +- arch/ia64/kernel/acpi.c | 12 +- arch/x86/kernel/acpi/boot.c | 36 +- drivers/acpi/Kconfig | 1 + drivers/acpi/Makefile | 1 + drivers/acpi/hmat/Kconfig | 9 + drivers/acpi/hmat/Makefile | 1 + drivers/acpi/hmat/hmat.c | 537 ++++++++++++++++++++++++++ drivers/acpi/numa.c | 16 +- drivers/acpi/scan.c | 4 +- drivers/acpi/tables.c | 76 +++- drivers/base/Kconfig | 8 + drivers/base/node.c | 354 ++++++++++++++++- 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 | 60 ++- 25 files changed, 1344 insertions(+), 65 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