提交 533cc721 编写于 作者: F Fan Du 提交者: Zheng Zengkai

mm: export node type {pmem|dram} under /sys/bus/node

euleros inclusion
category: feature
feature: etmem
bugzilla: 48246

-------------------------------------------------

User space migration daemon could check
/sys/bus/node/devices/nodeX/type for node type.

Software can interrogate node type for node memory type and distance
to get desirable target node in migration.

grep -r . /sys/devices/system/node/*/type
/sys/devices/system/node/node0/type:dram
/sys/devices/system/node/node1/type:dram
/sys/devices/system/node/node2/type:pmem
/sys/devices/system/node/node3/type:pmem

Along with next patch which export `peer_node`, migration daemon
could easily find the memory type of current node, and the target
node in case of migration.

grep -r . /sys/devices/system/node/*/peer_node
/sys/devices/system/node/node0/peer_node:2
/sys/devices/system/node/node1/peer_node:3
/sys/devices/system/node/node2/peer_node:0
/sys/devices/system/node/node3/peer_node:1
Signed-off-by: NFan Du <fan.du@intel.com>
Signed-off-by: NFengguang Wu <fengguang.wu@intel.com>
Signed-off-by: NKemeng Shi <shikemeng@huawei.com>
Reviewed-by: louhongxiang <louhongxiang@huawei.com
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 08d0f054
...@@ -549,6 +549,15 @@ static ssize_t node_read_distance(struct device *dev, ...@@ -549,6 +549,15 @@ static ssize_t node_read_distance(struct device *dev,
} }
static DEVICE_ATTR(distance, 0444, node_read_distance, NULL); static DEVICE_ATTR(distance, 0444, node_read_distance, NULL);
static ssize_t type_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
int nid = dev->id;
return sprintf(buf, is_node_pmem(nid) ? "pmem\n" : "dram\n");
}
static DEVICE_ATTR_RO(type);
static struct attribute *node_dev_attrs[] = { static struct attribute *node_dev_attrs[] = {
&dev_attr_cpumap.attr, &dev_attr_cpumap.attr,
&dev_attr_cpulist.attr, &dev_attr_cpulist.attr,
...@@ -556,6 +565,7 @@ static struct attribute *node_dev_attrs[] = { ...@@ -556,6 +565,7 @@ static struct attribute *node_dev_attrs[] = {
&dev_attr_numastat.attr, &dev_attr_numastat.attr,
&dev_attr_distance.attr, &dev_attr_distance.attr,
&dev_attr_vmstat.attr, &dev_attr_vmstat.attr,
&dev_attr_type.attr,
NULL NULL
}; };
ATTRIBUTE_GROUPS(node_dev); ATTRIBUTE_GROUPS(node_dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册