linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent
@ 2016-08-23 21:51 Vitaly Kuznetsov
  2016-08-23 21:51 ` [PATCH v2 1/2] Drivers: hv: make VMBus bus ids persistent Vitaly Kuznetsov
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Vitaly Kuznetsov @ 2016-08-23 21:51 UTC (permalink / raw)
  To: devel; +Cc: linux-kernel, K. Y. Srinivasan, Haiyang Zhang

Bus ids for VMBus devices in /sys/bus/vmbus/devices/ are not guaranteed
to be persistent across reboot or kernel restart and this causes problems
for some tools. E.g. kexec tools use these ids to identify NIC on kdump.
Fix the issue by using if_instance from channel offer as the unique id
instead of an auto incremented counter.

Changes since v1:
- Use if_instance instead of relid [K. Y. Srinivasan]

Vitaly Kuznetsov (2):
  Drivers: hv: make VMBus bus ids persistent
  Drivers: hv: get rid of id in struct vmbus_channel

 drivers/hv/channel_mgmt.c | 2 --
 drivers/hv/vmbus_drv.c    | 4 ++--
 include/linux/hyperv.h    | 3 ---
 3 files changed, 2 insertions(+), 7 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/2] Drivers: hv: make VMBus bus ids persistent
  2016-08-23 21:51 [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
@ 2016-08-23 21:51 ` Vitaly Kuznetsov
  2016-08-23 21:51 ` [PATCH v2 2/2] Drivers: hv: get rid of id in struct vmbus_channel Vitaly Kuznetsov
  2016-09-16 11:22 ` [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
  2 siblings, 0 replies; 5+ messages in thread
From: Vitaly Kuznetsov @ 2016-08-23 21:51 UTC (permalink / raw)
  To: devel; +Cc: linux-kernel, K. Y. Srinivasan, Haiyang Zhang

Some tools use bus ids to identify devices and they count on the fact
that these ids are persistent across reboot. This may be not true for
VMBus as we use auto incremented counter from alloc_channel() as such
id. Switch to using if_instance from channel offer, this id is supposed
to be persistent.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 drivers/hv/vmbus_drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index e82f7e1..ca7ae7a 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -961,8 +961,8 @@ int vmbus_device_register(struct hv_device *child_device_obj)
 {
 	int ret = 0;
 
-	dev_set_name(&child_device_obj->device, "vmbus_%d",
-		     child_device_obj->channel->id);
+	dev_set_name(&child_device_obj->device, "vmbus-%pUl",
+		     child_device_obj->channel->offermsg.offer.if_instance.b);
 
 	child_device_obj->device.bus = &hv_bus;
 	child_device_obj->device.parent = &hv_acpi_dev->dev;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] Drivers: hv: get rid of id in struct vmbus_channel
  2016-08-23 21:51 [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
  2016-08-23 21:51 ` [PATCH v2 1/2] Drivers: hv: make VMBus bus ids persistent Vitaly Kuznetsov
@ 2016-08-23 21:51 ` Vitaly Kuznetsov
  2016-09-16 11:22 ` [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
  2 siblings, 0 replies; 5+ messages in thread
From: Vitaly Kuznetsov @ 2016-08-23 21:51 UTC (permalink / raw)
  To: devel; +Cc: linux-kernel, K. Y. Srinivasan, Haiyang Zhang

The auto incremented counter is not being used anymore, get rid of it.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
 drivers/hv/channel_mgmt.c | 2 --
 include/linux/hyperv.h    | 3 ---
 2 files changed, 5 deletions(-)

diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
index b6c1211..4b4a41d 100644
--- a/drivers/hv/channel_mgmt.c
+++ b/drivers/hv/channel_mgmt.c
@@ -251,14 +251,12 @@ EXPORT_SYMBOL_GPL(vmbus_prep_negotiate_resp);
  */
 static struct vmbus_channel *alloc_channel(void)
 {
-	static atomic_t chan_num = ATOMIC_INIT(0);
 	struct vmbus_channel *channel;
 
 	channel = kzalloc(sizeof(*channel), GFP_ATOMIC);
 	if (!channel)
 		return NULL;
 
-	channel->id = atomic_inc_return(&chan_num);
 	channel->acquire_ring_lock = true;
 	spin_lock_init(&channel->inbound_lock);
 	spin_lock_init(&channel->lock);
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index b10954a..d9371a7 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -701,9 +701,6 @@ struct vmbus_device {
 };
 
 struct vmbus_channel {
-	/* Unique channel id */
-	int id;
-
 	struct list_head listentry;
 
 	struct hv_device *device_obj;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent
  2016-08-23 21:51 [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
  2016-08-23 21:51 ` [PATCH v2 1/2] Drivers: hv: make VMBus bus ids persistent Vitaly Kuznetsov
  2016-08-23 21:51 ` [PATCH v2 2/2] Drivers: hv: get rid of id in struct vmbus_channel Vitaly Kuznetsov
@ 2016-09-16 11:22 ` Vitaly Kuznetsov
  2016-09-16 14:11   ` KY Srinivasan
  2 siblings, 1 reply; 5+ messages in thread
From: Vitaly Kuznetsov @ 2016-09-16 11:22 UTC (permalink / raw)
  To: K. Y. Srinivasan; +Cc: linux-kernel, devel, Haiyang Zhang

Vitaly Kuznetsov <vkuznets@redhat.com> writes:

> Bus ids for VMBus devices in /sys/bus/vmbus/devices/ are not guaranteed
> to be persistent across reboot or kernel restart and this causes problems
> for some tools. E.g. kexec tools use these ids to identify NIC on kdump.
> Fix the issue by using if_instance from channel offer as the unique id
> instead of an auto incremented counter.
>
> Changes since v1:
> - Use if_instance instead of relid [K. Y. Srinivasan]
>
> Vitaly Kuznetsov (2):
>   Drivers: hv: make VMBus bus ids persistent
>   Drivers: hv: get rid of id in struct vmbus_channel
>

K. Y.,

I don't see these patches in your submissions to Greg. Could you please
pick them up (in case there are no issues with them in your opinion, of
course).

Thanks!

>  drivers/hv/channel_mgmt.c | 2 --
>  drivers/hv/vmbus_drv.c    | 4 ++--
>  include/linux/hyperv.h    | 3 ---
>  3 files changed, 2 insertions(+), 7 deletions(-)

-- 
  Vitaly

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent
  2016-09-16 11:22 ` [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
@ 2016-09-16 14:11   ` KY Srinivasan
  0 siblings, 0 replies; 5+ messages in thread
From: KY Srinivasan @ 2016-09-16 14:11 UTC (permalink / raw)
  To: Vitaly Kuznetsov; +Cc: linux-kernel, devel, Haiyang Zhang



> -----Original Message-----
> From: Vitaly Kuznetsov [mailto:vkuznets@redhat.com]
> Sent: Friday, September 16, 2016 4:53 PM
> To: KY Srinivasan <kys@microsoft.com>
> Cc: linux-kernel@vger.kernel.org; devel@linuxdriverproject.org; Haiyang
> Zhang <haiyangz@microsoft.com>
> Subject: Re: [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs
> persistent
> 
> Vitaly Kuznetsov <vkuznets@redhat.com> writes:
> 
> > Bus ids for VMBus devices in /sys/bus/vmbus/devices/ are not guaranteed
> > to be persistent across reboot or kernel restart and this causes problems
> > for some tools. E.g. kexec tools use these ids to identify NIC on kdump.
> > Fix the issue by using if_instance from channel offer as the unique id
> > instead of an auto incremented counter.
> >
> > Changes since v1:
> > - Use if_instance instead of relid [K. Y. Srinivasan]
> >
> > Vitaly Kuznetsov (2):
> >   Drivers: hv: make VMBus bus ids persistent
> >   Drivers: hv: get rid of id in struct vmbus_channel
> >
> 
> K. Y.,
> 
> I don't see these patches in your submissions to Greg. Could you please
> pick them up (in case there are no issues with them in your opinion, of
> course).
> 
> Thanks!

Sorry about that; patches sent out.

K. Y
> 
> >  drivers/hv/channel_mgmt.c | 2 --
> >  drivers/hv/vmbus_drv.c    | 4 ++--
> >  include/linux/hyperv.h    | 3 ---
> >  3 files changed, 2 insertions(+), 7 deletions(-)
> 
> --
>   Vitaly

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-09-16 14:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-23 21:51 [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
2016-08-23 21:51 ` [PATCH v2 1/2] Drivers: hv: make VMBus bus ids persistent Vitaly Kuznetsov
2016-08-23 21:51 ` [PATCH v2 2/2] Drivers: hv: get rid of id in struct vmbus_channel Vitaly Kuznetsov
2016-09-16 11:22 ` [PATCH v2 0/2] Drivers: hv: vmbus: make bus ids in sysfs persistent Vitaly Kuznetsov
2016-09-16 14:11   ` KY Srinivasan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).