vmbus: add monitor_id and subchannel_id to sysfs per channel
authorStephen Hemminger <stephen@networkplumber.org>
Tue, 9 Jan 2018 18:29:06 +0000 (10:29 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Jan 2018 18:50:42 +0000 (19:50 +0100)
Useful to identify which network queue is associated with
which vmbus channel.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/ABI/stable/sysfs-bus-vmbus
drivers/hv/vmbus_drv.c

index b7174a5..e46be65 100644 (file)
@@ -118,3 +118,17 @@ KernelVersion:     4.14
 Contact:       Stephen Hemminger <sthemmin@microsoft.com>
 Description:   Number of times we have taken an interrupt (incoming)
 Users:         Debugging tools
+
+What:          /sys/bus/vmbus/devices/vmbus_*/channels/NN/subchannel_id
+Date:          January. 2018
+KernelVersion: 4.16
+Contact:       Stephen Hemminger <sthemmin@microsoft.com>
+Description:   Subchannel ID associated with VMBUS channel
+Users:         Debugging tools and userspace drivers
+
+What:          /sys/bus/vmbus/devices/vmbus_*/channels/NN/monitor_id
+Date:          January. 2018
+KernelVersion: 4.16
+Contact:       Stephen Hemminger <sthemmin@microsoft.com>
+Description:   Monitor bit associated with channel
+Users:         Debugging tools and userspace drivers
index 5f16820..bc65c4d 100644 (file)
@@ -1254,6 +1254,21 @@ static ssize_t channel_events_show(const struct vmbus_channel *channel, char *bu
 }
 static VMBUS_CHAN_ATTR(events, S_IRUGO, channel_events_show, NULL);
 
+static ssize_t subchannel_monitor_id_show(const struct vmbus_channel *channel,
+                                         char *buf)
+{
+       return sprintf(buf, "%u\n", channel->offermsg.monitorid);
+}
+static VMBUS_CHAN_ATTR(monitor_id, S_IRUGO, subchannel_monitor_id_show, NULL);
+
+static ssize_t subchannel_id_show(const struct vmbus_channel *channel,
+                                 char *buf)
+{
+       return sprintf(buf, "%u\n",
+                      channel->offermsg.offer.sub_channel_index);
+}
+static VMBUS_CHAN_ATTR_RO(subchannel_id);
+
 static struct attribute *vmbus_chan_attrs[] = {
        &chan_attr_out_mask.attr,
        &chan_attr_in_mask.attr,
@@ -1264,6 +1279,8 @@ static struct attribute *vmbus_chan_attrs[] = {
        &chan_attr_latency.attr,
        &chan_attr_interrupts.attr,
        &chan_attr_events.attr,
+       &chan_attr_monitor_id.attr,
+       &chan_attr_subchannel_id.attr,
        NULL
 };