It's a number based on the vmbus device offer sequence. Useful for device naming when using Async probing. Signed-off-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> --- Documentation/ABI/stable/sysfs-bus-vmbus | 8 ++++++++ drivers/hv/vmbus_drv.c | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/Documentation/ABI/stable/sysfs-bus-vmbus b/Documentation/ABI/stable/sysfs-bus-vmbus index 8e8d167..a42225d 100644 --- a/Documentation/ABI/stable/sysfs-bus-vmbus +++ b/Documentation/ABI/stable/sysfs-bus-vmbus @@ -49,6 +49,14 @@ Contact: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx> Description: This NUMA node to which the VMBUS device is attached, or -1 if the node is unknown. +What: /sys/bus/vmbus/devices/<UUID>/dev_num +Date: Dec 2019 +KernelVersion: 5.5 +Contact: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> +Description: A number based on the vmbus device offer sequence. + Useful for device naming when using Async probing. +Users: Debugging tools and userspace drivers + What: /sys/bus/vmbus/devices/<UUID>/channels/<N> Date: September. 2017 KernelVersion: 4.14 diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 4ef5a66..fe7aefa 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -214,6 +214,18 @@ static ssize_t numa_node_show(struct device *dev, static DEVICE_ATTR_RO(numa_node); #endif +static ssize_t dev_num_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->dev_num); +} +static DEVICE_ATTR_RO(dev_num); + static ssize_t server_monitor_pending_show(struct device *dev, struct device_attribute *dev_attr, char *buf) @@ -598,6 +610,7 @@ static ssize_t driver_override_show(struct device *dev, #ifdef CONFIG_NUMA &dev_attr_numa_node.attr, #endif + &dev_attr_dev_num.attr, &dev_attr_server_monitor_pending.attr, &dev_attr_client_monitor_pending.attr, &dev_attr_server_monitor_latency.attr, -- 1.8.3.1