On Thu, Jan 17, 2019 at 04:03:42PM +0100, Rafael J. Wysocki wrote: > On Wed, Jan 16, 2019 at 6:59 PM Keith Busch <keith.busch@xxxxxxxxx> wrote: > > > > Heterogeneous memory systems provide memory nodes with different latency > > and bandwidth performance attributes. Provide a new kernel interface for > > subsystems to register the attributes under the memory target node's > > initiator access class. If the system provides this information, applications > > may query these attributes when deciding which node to request memory. > > > > The following example shows the new sysfs hierarchy for a node exporting > > performance attributes: > > > > # tree -P "read*|write*" /sys/devices/system/node/nodeY/classZ/ > > /sys/devices/system/node/nodeY/classZ/ > > |-- read_bandwidth > > |-- read_latency > > |-- write_bandwidth > > `-- write_latency > > > > The bandwidth is exported as MB/s and latency is reported in nanoseconds. > > Memory accesses from an initiator node that is not one of the memory's > > class "Z" initiator nodes may encounter different performance than > > reported here. When a subsystem makes use of this interface, initiators > > of a lower class number, "Z", have better performance relative to higher > > class numbers. When provided, class 0 is the highest performing access > > class. > > > > Signed-off-by: Keith Busch <keith.busch@xxxxxxxxx> > > --- > > drivers/base/Kconfig | 8 ++++++++ > > drivers/base/node.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > > include/linux/node.h | 25 +++++++++++++++++++++++++ > > 3 files changed, 81 insertions(+) > > > > diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig > > index 3e63a900b330..6014980238e8 100644 > > --- a/drivers/base/Kconfig > > +++ b/drivers/base/Kconfig > > @@ -149,6 +149,14 @@ config DEBUG_TEST_DRIVER_REMOVE > > unusable. You should say N here unless you are explicitly looking to > > test this functionality. > > > > +config HMEM_REPORTING > > + bool > > + default y default y is only if the machine will not boot without it. Please never make a new option y unless you really really have to have it on all machines in the world. Hint, not here. greg k-h