Re: [PATCH V2] xen: export device state to sysfs
From: Joe Jin
Date: Tue Aug 28 2018 - 13:14:22 EST
On 8/28/18 9:53 AM, Boris Ostrovsky wrote:
> On 08/28/2018 10:56 AM, Joe Jin wrote:
>> Export device state to sysfs to allow for easier get device state.
>>
>> Signed-off-by: Joe Jin <joe.jin@xxxxxxxxxx>
>> Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
>> Cc: Juergen Gross <jgross@xxxxxxxx>
>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
>> ---
>> Documentation/ABI/stable/sysfs-bus-xen-backend | 9 +++++++++
>> drivers/xen/xenbus/xenbus_probe.c | 9 +++++++++
>> 2 files changed, 18 insertions(+)
>>
>> diff --git a/Documentation/ABI/stable/sysfs-bus-xen-backend b/Documentation/ABI/stable/sysfs-bus-xen-backend
>> index 3d5951c8bf5f..e8b60bd766f7 100644
>> --- a/Documentation/ABI/stable/sysfs-bus-xen-backend
>
>
> Won't this show up in the frontend as well?
Yes it will, current there is no any ABI document for xen-frontend.
Thanks,
Joe
>
> -boris
>
>> +++ b/Documentation/ABI/stable/sysfs-bus-xen-backend
>> @@ -73,3 +73,12 @@ KernelVersion: 3.0
>> Contact: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
>> Description:
>> Number of sectors written by the frontend.
>> +
>> +What: /sys/bus/xen-backend/devices/*/state
>> +Date: August 2018
>> +KernelVersion: 4.19
>> +Contact: Joe Jin <joe.jin@xxxxxxxxxx>
>> +Description:
>> + The state of the device. One of: 'Unknown',
>> + 'Initialising', 'Initialised', 'Connected', 'Closing',
>> + 'Closed', 'Reconfiguring', 'Reconfigured'.
>> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
>> index f2088838f690..5b471889d723 100644
>> --- a/drivers/xen/xenbus/xenbus_probe.c
>> +++ b/drivers/xen/xenbus/xenbus_probe.c
>> @@ -402,10 +402,19 @@ static ssize_t modalias_show(struct device *dev,
>> }
>> static DEVICE_ATTR_RO(modalias);
>>
>> +static ssize_t state_show(struct device *dev,
>> + struct device_attribute *attr, char *buf)
>> +{
>> + return sprintf(buf, "%s\n",
>> + xenbus_strstate(to_xenbus_device(dev)->state));
>> +}
>> +static DEVICE_ATTR_RO(state);
>> +
>> static struct attribute *xenbus_dev_attrs[] = {
>> &dev_attr_nodename.attr,
>> &dev_attr_devtype.attr,
>> &dev_attr_modalias.attr,
>> + &dev_attr_state.attr,
>> NULL,
>> };
>>
>