Commit 7ceb1c37 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by Greg Kroah-Hartman

Drivers: hv: vmbus: add numa_node to sysfs

Being able to find the numa_node for a device is useful for userspace
drivers (DPDK) and also for diagnosing performance issues.  This makes
vmbus similar to pci.
Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9d9c9656
...@@ -42,6 +42,13 @@ Contact: K. Y. Srinivasan <kys@microsoft.com> ...@@ -42,6 +42,13 @@ Contact: K. Y. Srinivasan <kys@microsoft.com>
Description: The 16 bit vendor ID of the device Description: The 16 bit vendor ID of the device
Users: tools/hv/lsvmbus and user level RDMA libraries Users: tools/hv/lsvmbus and user level RDMA libraries
What: /sys/bus/vmbus/devices/<UUID>/numa_node
Date: Jul 2018
KernelVersion: 4.19
Contact: Stephen Hemminger <sthemmin@microsoft.com>
Description: This NUMA node to which the VMBUS device is
attached, or -1 if the node is unknown.
What: /sys/bus/vmbus/devices/<UUID>/channels/<N> What: /sys/bus/vmbus/devices/<UUID>/channels/<N>
Date: September. 2017 Date: September. 2017
KernelVersion: 4.14 KernelVersion: 4.14
......
...@@ -210,6 +210,20 @@ static ssize_t modalias_show(struct device *dev, ...@@ -210,6 +210,20 @@ static ssize_t modalias_show(struct device *dev,
} }
static DEVICE_ATTR_RO(modalias); static DEVICE_ATTR_RO(modalias);
#ifdef CONFIG_NUMA
static ssize_t numa_node_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct hv_device *hv_dev = device_to_hv_device(dev);
if (!hv_dev->channel)
return -ENODEV;
return sprintf(buf, "%d\n", hv_dev->channel->numa_node);
}
static DEVICE_ATTR_RO(numa_node);
#endif
static ssize_t server_monitor_pending_show(struct device *dev, static ssize_t server_monitor_pending_show(struct device *dev,
struct device_attribute *dev_attr, struct device_attribute *dev_attr,
char *buf) char *buf)
...@@ -492,6 +506,9 @@ static struct attribute *vmbus_dev_attrs[] = { ...@@ -492,6 +506,9 @@ static struct attribute *vmbus_dev_attrs[] = {
&dev_attr_class_id.attr, &dev_attr_class_id.attr,
&dev_attr_device_id.attr, &dev_attr_device_id.attr,
&dev_attr_modalias.attr, &dev_attr_modalias.attr,
#ifdef CONFIG_NUMA
&dev_attr_numa_node.attr,
#endif
&dev_attr_server_monitor_pending.attr, &dev_attr_server_monitor_pending.attr,
&dev_attr_client_monitor_pending.attr, &dev_attr_client_monitor_pending.attr,
&dev_attr_server_monitor_latency.attr, &dev_attr_server_monitor_latency.attr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment