* Re: [PATCH] virtio-blk: emit udev event when device is resized [not found] ` <87y5ehfczy.fsf@rustcorp.com.au> @ 2013-02-25 22:12 ` Greg KH 2013-02-25 22:39 ` Kay Sievers 2013-02-25 23:41 ` Milos Vyletel 0 siblings, 2 replies; 8+ messages in thread From: Greg KH @ 2013-02-25 22:12 UTC (permalink / raw) To: Rusty Russell, Kay Sievers Cc: Milos Vyletel, linux-kernel, linux-hotplug, virtualization, mst On Fri, Feb 22, 2013 at 10:14:49AM +1030, Rusty Russell wrote: > Milos Vyletel <milos.vyletel@sde.cz> writes: > > > When virtio-blk device is resized from host (using block_resize from QEMU) emit > > KOBJ_CHANGE uevent to notify guest about such change. This allows user to have > > custom udev rules which would take whatever action if such event occurs. As a > > proof of concept I've created simple udev rule that automatically resize > > filesystem on virtio-blk device. > > > > ACTION="change", KERNEL="vd*", \ > > ENV{RESIZE}="1", \ > > ENV{ID_FS_TYPE}="ext[3-4]", \ > > RUN+="/sbin/resize2fs /dev/%k" > > ACTION="change", KERNEL="vd*", \ > > ENV{RESIZE}="1", \ > > ENV{ID_FS_TYPE}="LVM2_member", \ > > RUN+="/sbin/pvresize /dev/%k" > > This looks fine to me, but I like to check with Greg before adding udev > callouts.... Greg? Hm, I thought we were frowning apon running binaries from udev rules these days, especially ones that might have big consequences (like resizing a disk image) like this. Kay, am I right? We already emit KOBJECT_CHANGE events when block devices change, from within the block core code. Why is the patch below needed instead of using these events that are already generated? How are virtio block devices special? > BTW, if this is good, it's good for stable IMHO. What bug does it fix? thanks, greg k-h > Cheers, > Rusty. > > > Signed-off-by: Milos Vyletel <milos.vyletel@sde.cz> > > --- > > drivers/block/virtio_blk.c | 3 +++ > > 1 files changed, 3 insertions(+), 0 deletions(-) > > > > diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c > > index 8ad21a2..5990382 100644 > > --- a/drivers/block/virtio_blk.c > > +++ b/drivers/block/virtio_blk.c > > @@ -539,6 +539,8 @@ static void virtblk_config_changed_work(struct work_struct *work) > > struct virtio_device *vdev = vblk->vdev; > > struct request_queue *q = vblk->disk->queue; > > char cap_str_2[10], cap_str_10[10]; > > + char event[] = "RESIZE=1"; > > + char *envp[] = { event, NULL }; > > u64 capacity, size; > > > > mutex_lock(&vblk->config_lock); > > @@ -568,6 +570,7 @@ static void virtblk_config_changed_work(struct work_struct *work) > > > > set_capacity(vblk->disk, capacity); > > revalidate_disk(vblk->disk); > > + kobject_uevent_env(&disk_to_dev(vblk->disk)->kobj, KOBJ_CHANGE, envp); > > done: > > mutex_unlock(&vblk->config_lock); > > } > > -- > > 1.7.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] virtio-blk: emit udev event when device is resized 2013-02-25 22:12 ` [PATCH] virtio-blk: emit udev event when device is resized Greg KH @ 2013-02-25 22:39 ` Kay Sievers 2013-02-25 22:43 ` Greg KH 2013-02-25 23:38 ` Milos Vyletel 2013-02-25 23:41 ` Milos Vyletel 1 sibling, 2 replies; 8+ messages in thread From: Kay Sievers @ 2013-02-25 22:39 UTC (permalink / raw) To: Greg KH Cc: Rusty Russell, Milos Vyletel, linux-kernel, linux-hotplug, virtualization, mst On Mon, Feb 25, 2013 at 11:12 PM, Greg KH <greg@kroah.com> wrote: > Hm, I thought we were frowning apon running binaries from udev rules > these days, especially ones that might have big consequences (like > resizing a disk image) like this. > > Kay, am I right? We removed most of them from the default setups, yes. But there is nothing wrong if people want to ship that in some package or as custom rules. It looks fine to me, we would just not add such things to the default set of of rules these days. > We already emit KOBJECT_CHANGE events when block devices change, from > within the block core code. Why is the patch below needed instead of > using these events that are already generated? How are virtio block > devices special? I think we only do that for dm and md and a couple of special cases like loop and read-only settings. Kay ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] virtio-blk: emit udev event when device is resized 2013-02-25 22:39 ` Kay Sievers @ 2013-02-25 22:43 ` Greg KH 2013-02-25 23:04 ` Kay Sievers 2013-02-25 23:38 ` Milos Vyletel 1 sibling, 1 reply; 8+ messages in thread From: Greg KH @ 2013-02-25 22:43 UTC (permalink / raw) To: Kay Sievers Cc: Rusty Russell, Milos Vyletel, linux-kernel, linux-hotplug, virtualization, mst On Mon, Feb 25, 2013 at 11:39:52PM +0100, Kay Sievers wrote: > On Mon, Feb 25, 2013 at 11:12 PM, Greg KH <greg@kroah.com> wrote: > > > Hm, I thought we were frowning apon running binaries from udev rules > > these days, especially ones that might have big consequences (like > > resizing a disk image) like this. > > > > Kay, am I right? > > We removed most of them from the default setups, yes. But there is > nothing wrong if people want to ship that in some package or as custom > rules. > > It looks fine to me, we would just not add such things to the default > set of of rules these days. > > > We already emit KOBJECT_CHANGE events when block devices change, from > > within the block core code. Why is the patch below needed instead of > > using these events that are already generated? How are virtio block > > devices special? > > I think we only do that for dm and md and a couple of special cases > like loop and read-only settings. What about when we repartition a block device? I've seen the events happen then. Anyway, if you are ok with this, no objection from my side then Rusty. thanks, greg k-h ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] virtio-blk: emit udev event when device is resized 2013-02-25 22:43 ` Greg KH @ 2013-02-25 23:04 ` Kay Sievers 0 siblings, 0 replies; 8+ messages in thread From: Kay Sievers @ 2013-02-25 23:04 UTC (permalink / raw) To: Greg KH Cc: Rusty Russell, Milos Vyletel, linux-kernel, linux-hotplug, virtualization, mst On Mon, Feb 25, 2013 at 11:43 PM, Greg KH <greg@kroah.com> wrote: > On Mon, Feb 25, 2013 at 11:39:52PM +0100, Kay Sievers wrote: >> On Mon, Feb 25, 2013 at 11:12 PM, Greg KH <greg@kroah.com> wrote: >> >> > Hm, I thought we were frowning apon running binaries from udev rules >> > these days, especially ones that might have big consequences (like >> > resizing a disk image) like this. >> > >> > Kay, am I right? >> >> We removed most of them from the default setups, yes. But there is >> nothing wrong if people want to ship that in some package or as custom >> rules. >> >> It looks fine to me, we would just not add such things to the default >> set of of rules these days. >> >> > We already emit KOBJECT_CHANGE events when block devices change, from >> > within the block core code. Why is the patch below needed instead of >> > using these events that are already generated? How are virtio block >> > devices special? >> >> I think we only do that for dm and md and a couple of special cases >> like loop and read-only settings. > > What about when we repartition a block device? I've seen the events > happen then. Right, from the common block code we send events for removable media changes like cdroms, sd cards, when a device is switched to read-only, and when we re-scan a partition table like on re-partitioning. Most of the other events are block subsystem-specific like this one. For things like device-mapper they are used pretty heavily. > Anyway, if you are ok with this, no objection from my side then Rusty. Looks fine to me, it should not do any harm if there are not heavy programs hooked up -- which is nothing the kernel could fix if people do that. :) Kay ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] virtio-blk: emit udev event when device is resized 2013-02-25 22:39 ` Kay Sievers 2013-02-25 22:43 ` Greg KH @ 2013-02-25 23:38 ` Milos Vyletel 1 sibling, 0 replies; 8+ messages in thread From: Milos Vyletel @ 2013-02-25 23:38 UTC (permalink / raw) To: Kay Sievers Cc: Greg KH, Rusty Russell, linux-kernel, linux-hotplug, virtualization, mst On Feb 25, 2013, at 5:39 PM, Kay Sievers <kay@vrfy.org> wrote: > On Mon, Feb 25, 2013 at 11:12 PM, Greg KH <greg@kroah.com> wrote: > >> Hm, I thought we were frowning apon running binaries from udev rules >> these days, especially ones that might have big consequences (like >> resizing a disk image) like this. >> >> Kay, am I right? > > We removed most of them from the default setups, yes. But there is > nothing wrong if people want to ship that in some package or as custom > rules. > > It looks fine to me, we would just not add such things to the default > set of of rules these days. That was not my intention. I just wanted to demonstrate that event like this could be useful in cases like filesystem resize. We have a need for automatic resize by our customers so we will ship our custom udev rules. It's perfectly understandable that default udev rules will not have this. Milos > >> We already emit KOBJECT_CHANGE events when block devices change, from >> within the block core code. Why is the patch below needed instead of >> using these events that are already generated? How are virtio block >> devices special? > > I think we only do that for dm and md and a couple of special cases > like loop and read-only settings. > > Kay ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] virtio-blk: emit udev event when device is resized 2013-02-25 22:12 ` [PATCH] virtio-blk: emit udev event when device is resized Greg KH 2013-02-25 22:39 ` Kay Sievers @ 2013-02-25 23:41 ` Milos Vyletel 2013-02-27 0:46 ` Rusty Russell 1 sibling, 1 reply; 8+ messages in thread From: Milos Vyletel @ 2013-02-25 23:41 UTC (permalink / raw) To: Greg KH Cc: Rusty Russell, Kay Sievers, linux-kernel, linux-hotplug, virtualization, mst On Feb 25, 2013, at 5:12 PM, Greg KH <greg@kroah.com> wrote: > On Fri, Feb 22, 2013 at 10:14:49AM +1030, Rusty Russell wrote: >> Milos Vyletel <milos.vyletel@sde.cz> writes: >> >>> When virtio-blk device is resized from host (using block_resize from QEMU) emit >>> KOBJ_CHANGE uevent to notify guest about such change. This allows user to have >>> custom udev rules which would take whatever action if such event occurs. As a >>> proof of concept I've created simple udev rule that automatically resize >>> filesystem on virtio-blk device. >>> >>> ACTION="change", KERNEL="vd*", \ >>> ENV{RESIZE}="1", \ >>> ENV{ID_FS_TYPE}="ext[3-4]", \ >>> RUN+="/sbin/resize2fs /dev/%k" >>> ACTION="change", KERNEL="vd*", \ >>> ENV{RESIZE}="1", \ >>> ENV{ID_FS_TYPE}="LVM2_member", \ >>> RUN+="/sbin/pvresize /dev/%k" >> >> This looks fine to me, but I like to check with Greg before adding udev >> callouts.... Greg? > > Hm, I thought we were frowning apon running binaries from udev rules > these days, especially ones that might have big consequences (like > resizing a disk image) like this. > > Kay, am I right? > > We already emit KOBJECT_CHANGE events when block devices change, from > within the block core code. Why is the patch below needed instead of > using these events that are already generated? How are virtio block > devices special? > >> BTW, if this is good, it's good for stable IMHO. > > What bug does it fix? > It is not really a bug but it definitely is useful enhancement to have in stable too. I can imagine lots of people can benefit from this. Milos > thanks, > > greg k-h > >> Cheers, >> Rusty. >> >>> Signed-off-by: Milos Vyletel <milos.vyletel@sde.cz> >>> --- >>> drivers/block/virtio_blk.c | 3 +++ >>> 1 files changed, 3 insertions(+), 0 deletions(-) >>> >>> diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c >>> index 8ad21a2..5990382 100644 >>> --- a/drivers/block/virtio_blk.c >>> +++ b/drivers/block/virtio_blk.c >>> @@ -539,6 +539,8 @@ static void virtblk_config_changed_work(struct work_struct *work) >>> struct virtio_device *vdev = vblk->vdev; >>> struct request_queue *q = vblk->disk->queue; >>> char cap_str_2[10], cap_str_10[10]; >>> + char event[] = "RESIZE=1"; >>> + char *envp[] = { event, NULL }; >>> u64 capacity, size; >>> >>> mutex_lock(&vblk->config_lock); >>> @@ -568,6 +570,7 @@ static void virtblk_config_changed_work(struct work_struct *work) >>> >>> set_capacity(vblk->disk, capacity); >>> revalidate_disk(vblk->disk); >>> + kobject_uevent_env(&disk_to_dev(vblk->disk)->kobj, KOBJ_CHANGE, envp); >>> done: >>> mutex_unlock(&vblk->config_lock); >>> } >>> -- >>> 1.7.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] virtio-blk: emit udev event when device is resized 2013-02-25 23:41 ` Milos Vyletel @ 2013-02-27 0:46 ` Rusty Russell 2013-02-27 13:09 ` Milos Vyletel 0 siblings, 1 reply; 8+ messages in thread From: Rusty Russell @ 2013-02-27 0:46 UTC (permalink / raw) To: Milos Vyletel, Greg KH Cc: Kay Sievers, linux-kernel, linux-hotplug, virtualization, mst Milos Vyletel <milos.vyletel@sde.cz> writes: > On Feb 25, 2013, at 5:12 PM, Greg KH <greg@kroah.com> wrote: > >> On Fri, Feb 22, 2013 at 10:14:49AM +1030, Rusty Russell wrote: >>> Milos Vyletel <milos.vyletel@sde.cz> writes: >>> >>>> When virtio-blk device is resized from host (using block_resize from QEMU) emit >>>> KOBJ_CHANGE uevent to notify guest about such change. This allows user to have >>>> custom udev rules which would take whatever action if such event occurs. As a >>>> proof of concept I've created simple udev rule that automatically resize >>>> filesystem on virtio-blk device. >>>> >>>> ACTION="change", KERNEL="vd*", \ >>>> ENV{RESIZE}="1", \ >>>> ENV{ID_FS_TYPE}="ext[3-4]", \ >>>> RUN+="/sbin/resize2fs /dev/%k" >>>> ACTION="change", KERNEL="vd*", \ >>>> ENV{RESIZE}="1", \ >>>> ENV{ID_FS_TYPE}="LVM2_member", \ >>>> RUN+="/sbin/pvresize /dev/%k" >>> >>> This looks fine to me, but I like to check with Greg before adding udev >>> callouts.... Greg? >> >> Hm, I thought we were frowning apon running binaries from udev rules >> these days, especially ones that might have big consequences (like >> resizing a disk image) like this. >> >> Kay, am I right? >> >> We already emit KOBJECT_CHANGE events when block devices change, from >> within the block core code. Why is the patch below needed instead of >> using these events that are already generated? How are virtio block >> devices special? >> >>> BTW, if this is good, it's good for stable IMHO. >> >> What bug does it fix? >> > > It is not really a bug but it definitely is useful enhancement to have in stable too. I > can imagine lots of people can benefit from this. But that applies to almost any enhancement :) It will go in *next* merge window, not this one. Thanks, Rusty. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] virtio-blk: emit udev event when device is resized 2013-02-27 0:46 ` Rusty Russell @ 2013-02-27 13:09 ` Milos Vyletel 0 siblings, 0 replies; 8+ messages in thread From: Milos Vyletel @ 2013-02-27 13:09 UTC (permalink / raw) To: Rusty Russell Cc: Greg KH, Kay Sievers, linux-kernel, linux-hotplug, virtualization, mst ----- Original Message ----- > Milos Vyletel <milos.vyletel@sde.cz> writes: > > On Feb 25, 2013, at 5:12 PM, Greg KH <greg@kroah.com> wrote: > > > >> On Fri, Feb 22, 2013 at 10:14:49AM +1030, Rusty Russell wrote: > >>> Milos Vyletel <milos.vyletel@sde.cz> writes: > >>> > >>>> When virtio-blk device is resized from host (using block_resize from > >>>> QEMU) emit > >>>> KOBJ_CHANGE uevent to notify guest about such change. This allows user > >>>> to have > >>>> custom udev rules which would take whatever action if such event occurs. > >>>> As a > >>>> proof of concept I've created simple udev rule that automatically resize > >>>> filesystem on virtio-blk device. > >>>> > >>>> ACTION="change", KERNEL="vd*", \ > >>>> ENV{RESIZE}="1", \ > >>>> ENV{ID_FS_TYPE}="ext[3-4]", \ > >>>> RUN+="/sbin/resize2fs /dev/%k" > >>>> ACTION="change", KERNEL="vd*", \ > >>>> ENV{RESIZE}="1", \ > >>>> ENV{ID_FS_TYPE}="LVM2_member", \ > >>>> RUN+="/sbin/pvresize /dev/%k" > >>> > >>> This looks fine to me, but I like to check with Greg before adding udev > >>> callouts.... Greg? > >> > >> Hm, I thought we were frowning apon running binaries from udev rules > >> these days, especially ones that might have big consequences (like > >> resizing a disk image) like this. > >> > >> Kay, am I right? > >> > >> We already emit KOBJECT_CHANGE events when block devices change, from > >> within the block core code. Why is the patch below needed instead of > >> using these events that are already generated? How are virtio block > >> devices special? > >> > >>> BTW, if this is good, it's good for stable IMHO. > >> > >> What bug does it fix? > >> > > > > It is not really a bug but it definitely is useful enhancement to have in > > stable too. I > > can imagine lots of people can benefit from this. > > But that applies to almost any enhancement :) > Good point :) > It will go in *next* merge window, not this one. > Cool, thanks. Milos ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-02-27 13:09 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1361473348-7660-1-git-send-email-milos.vyletel@sde.cz>
[not found] ` <87y5ehfczy.fsf@rustcorp.com.au>
2013-02-25 22:12 ` [PATCH] virtio-blk: emit udev event when device is resized Greg KH
2013-02-25 22:39 ` Kay Sievers
2013-02-25 22:43 ` Greg KH
2013-02-25 23:04 ` Kay Sievers
2013-02-25 23:38 ` Milos Vyletel
2013-02-25 23:41 ` Milos Vyletel
2013-02-27 0:46 ` Rusty Russell
2013-02-27 13:09 ` Milos Vyletel
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).