Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1000082imu; Wed, 9 Jan 2019 09:49:07 -0800 (PST) X-Google-Smtp-Source: ALg8bN4e+HPpawgxygSP9EFh813L4zJ7gQmnSF+gknBDAIDO5adtJskxfe1Qe+qy/kPxd9Z6m6jH X-Received: by 2002:a17:902:112c:: with SMTP id d41mr6752746pla.144.1547056147367; Wed, 09 Jan 2019 09:49:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547056147; cv=none; d=google.com; s=arc-20160816; b=SJoJ4u1uW9w5evK8KaPdrNYqtM2HVhfAABcFZm3fqlSy+P6hZ9kaqX61InRKoVJw6T NGB1D4ZA809qHa/l7w3INHfrMi+Qres8foDvJHZfDbSk1apyO66zvmo6ClzyMO9v3PmK S7qF8HbHoukc+ChP86Z3cRSEpnLrnc+4kjheNogEcAyqtXyOW1qBufynZ+csu193W0vP GOshEiW+fGGgrcxX0yzAqjTM9Y1lyEAhyDWIiNI3eac4Q/4JcBVZMDSzJd9gug+ZbY06 U7IG3N4LndB01UsetCVdjOeLMYba92MYfTvppz8pHEWuH/tTykSttHOOqmzW9eLxFil3 V6Ig== 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=aaWfxWtGF08STwgqXkKc034Mh3cTM1qtrc1gsuExA2A=; b=PwOJ8dOS7mDH6IMkIMsv2lROxDdlkylCpgJCz5Mwg9oWOsI3HjSNQBc9G9el8jSg03 tAifcEPH0POlvqEzEra4PZ8RUcrO2+/TT1YU9qklFdwz5tZwytbwIOgWdqPBuPJfl58h Bcb/LCoLfTtlCjZsE044L22JS/yxPz+a5lpXw0rchIY2td5hohqDFxP82R8RQDbQiFvg Wuf9Z0CZJsi42UEWYmnoXuYI+iZtzUh9YScsEpLStv8A9QZDggYIF3LmJwuZEX2xZAaa dvrqvFb1Iw/pY8IEp8PSy/pwZAOMvh9pl3CUx+Nm5HQ/sbI+Ow7sq81kdXgwiRaxx08/ w3AA== 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 q8si20638492pli.284.2019.01.09.09.48.49; Wed, 09 Jan 2019 09:49:07 -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 S1727138AbfAIRrg (ORCPT + 99 others); Wed, 9 Jan 2019 12:47:36 -0500 Received: from mga14.intel.com ([192.55.52.115]:43600 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727082AbfAIRrf (ORCPT ); Wed, 9 Jan 2019 12:47:35 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jan 2019 09:47:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,458,1539673200"; d="scan'208";a="115485491" Received: from unknown (HELO localhost.lm.intel.com) ([10.232.112.69]) by fmsmga008.fm.intel.com with ESMTP; 09 Jan 2019 09:47:33 -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: [PATCHv3 00/13] Heterogeneuos memory node attributes Date: Wed, 9 Jan 2019 10:43:28 -0700 Message-Id: <20190109174341.19818-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 Verstion three adding heterogeneous memory attributes to existing node sysfs subsystem. == 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. == Changes since v2 == Fixed the arch specific build breakage from modifying the acpi table parsing. This one has been in a public tree for 0-day and no failures reported after several weeks. The HMAT parsing rules is split in its own patch. This was originally intended to be a starting point to enable auto-detect a use for enabling memory randomization: https://lkml.org/lkml/2018/12/17/1116 But will leave them split for separate consideration and bring randomization auto-enable back when these settle. The previous version's node interface allowed expressing the relationship only among the best locality nodes, called "primary" initiators and targets. Based on public and private feedback, the interface has been augmented to allow registering nodes under a "class" hierarchy. If a subsystem wishes to express node relationships beyond the best, they may create additional access classes. The HMAT subsystem this series only registers the best performing class, "class0". Various changelog and documentation updates and clarifications. Keith Busch (13): 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 Documentation/ABI: Add new node sysfs attributes acpi/hmat: Register processor domain to its memory node: Add heterogenous memory access attributes Documentation/ABI: Add node performance attributes acpi/hmat: Register performance attributes node: Add memory caching attributes Documentation/ABI: Add node cache 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 | 184 +++++++++++++ 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 | 9 + drivers/acpi/Makefile | 1 + drivers/acpi/hmat.c | 375 ++++++++++++++++++++++++++ drivers/acpi/numa.c | 16 +- drivers/acpi/scan.c | 4 +- drivers/acpi/tables.c | 76 +++++- drivers/base/Kconfig | 8 + drivers/base/node.c | 317 +++++++++++++++++++++- 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 | 70 ++++- 23 files changed, 1170 insertions(+), 65 deletions(-) create mode 100644 Documentation/admin-guide/mm/numaperf.rst create mode 100644 drivers/acpi/hmat.c -- 2.14.4