From: Vincent Legout <vincent.legout@gandi.net>
To: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Jan Beulich <JBeulich@suse.com>,
xen-devel@lists.xenproject.org,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Juergen Gross <jgross@suse.com>,
linux-kernel@vger.kernel.org
Subject: Re: [Xen-devel] [PATCH] xen-blkfront: emit KOBJ_OFFLINE uevent when detaching device
Date: Tue, 5 Sep 2017 09:28:49 +0200 [thread overview]
Message-ID: <20170905072849.mymaugf3im2luqai@bres.gandi.net> (raw)
In-Reply-To: <20170707081053.s6pocjgz3ibkkyjg@dhcp-3-128.uk.xensource.com>
[-- Attachment #1: Type: text/plain, Size: 2097 bytes --]
Hello,
Sorry for such a long delay. I'm still interested in having this patch
merged.
I've tried to make the patch more generic and move it to xenbus as
discussed during the Xen summit, but I'm not sure how or if it's
possible. Would doing something in xenbus_otherend_changed() make sense?
But do we have enough information there? I'd be happy to get any advice,
I've re-attached the original patch.
On Fri, Jul 07, 2017 at 09:10:53AM +0100, Roger Pau Monné wrote :
> On Wed, Jul 05, 2017 at 03:30:00PM +0200, Vincent Legout wrote:
> > On Wed, Jul 05, 2017 at 06:53:25AM -0600, Jan Beulich wrote :
> > > >>> On 05.07.17 at 14:37, <vincent.legout@gandi.net> wrote:
> > > > On Wed, Jul 05, 2017 at 02:17:24AM -0600, Jan Beulich wrote :
> > > >> >>> On 05.07.17 at 10:08, <vincent.legout@gandi.net> wrote:
> > > >> > Without the patch, blkif_release and xlvbd_release_gendisk are never
> > > >> > called, and no call to blk_unregister_queue is made.
> > > >>
> > > >> But isn't that what needs to be fixed then? The device should be
> > > >> removed once its last user goes away (which would be at the time
> > > >> the umount is eventually done aiui).
> > > >
> > > > You mean that block-detach should fail if the device is still mounted?
> > > > or find a way to wait until all the users are gone?
> > > >
> > > > I don't say that's not what should be done, but that's not what I get.
> > > > The device is removed after a block-detach, even if still mounted. So
> > > > the system is left in an unstable state without the patch.
> > >
> > > Unstable? I'd expect subsequent I/O to fail for that device, yes, but
> > > that's still a stable system. Are you observing anything else?
> >
> > Yes, that's what I meant by unstable, nothing else. Sorry for the
> > confusion.
>
> IMHO, this should behave in the same exact way as hot-unplugging a USB
> drive that's mounted, can you confirm that's correct?
I agree. And if I'm not wrong, it currently doesn't behave the same as
USB device unplugging. The patch tries to fix that.
Thanks,
Vincent
[-- Attachment #2: 0001-xen-blkfront-emit-KOBJ_OFFLINE-uevent-when-detaching.patch --]
[-- Type: text/x-diff, Size: 2314 bytes --]
>From 902ae3e380fcf75a2b453ae20a68952ee9752853 Mon Sep 17 00:00:00 2001
From: Vincent Legout <vincent.legout@gandi.net>
Date: Tue, 27 Jun 2017 11:09:32 +0200
Subject: [PATCH] xen-blkfront: emit KOBJ_OFFLINE uevent when detaching device
Devices are not unmounted inside a domU after a xl block-detach.
After xl block-detach, blkfront_closing() is called with state ==
XenbusStateConnected, it detects that the device is still in use and
only switches state to XenbusStateClosing. blkfront_closing() is called
a second time but returns immediately because state ==
XenbusStateClosing. Thus the device keeps being mounted inside the domU.
To fix this, emit a KOBJ_OFFLINE uevent even if the device has users.
With this patch, inside domU, udev has:
KERNEL[16994.526789] offline /devices/vbd-51728/block/xvdb (block)
KERNEL[16994.796197] remove /devices/virtual/bdi/202:16 (bdi)
KERNEL[16994.797167] remove /devices/vbd-51728/block/xvdb (block)
UDEV [16994.798035] remove /devices/virtual/bdi/202:16 (bdi)
UDEV [16994.809429] offline /devices/vbd-51728/block/xvdb (block)
UDEV [16994.842365] remove /devices/vbd-51728/block/xvdb (block)
KERNEL[16995.461991] remove /devices/vbd-51728 (xen)
UDEV [16995.462549] remove /devices/vbd-51728 (xen)
While without, it had:
KERNEL[30.862764] remove /devices/vbd-51728 (xen)
UDEV [30.867838] remove /devices/vbd-51728 (xen)
Signed-off-by: Pascal Bouchareine <pascal@gandi.net>
Signed-off-by: Fatih Acar <fatih.acar@gandi.net>
Signed-off-by: Vincent Legout <vincent.legout@gandi.net>
---
drivers/block/xen-blkfront.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 39459631667c..da0b0444ee1f 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -2185,8 +2185,10 @@ static void blkfront_closing(struct blkfront_info *info)
mutex_lock(&bdev->bd_mutex);
if (bdev->bd_openers) {
- xenbus_dev_error(xbdev, -EBUSY,
- "Device in use; refusing to close");
+ dev_warn(disk_to_dev(info->gd),
+ "detaching %s with pending users\n",
+ xbdev->nodename);
+ kobject_uevent(&disk_to_dev(info->gd)->kobj, KOBJ_OFFLINE);
xenbus_switch_state(xbdev, XenbusStateClosing);
} else {
xlvbd_release_gendisk(info);
--
2.13.2
next prev parent reply other threads:[~2017-09-05 7:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-04 11:48 Vincent Legout
2017-07-04 16:59 ` Roger Pau Monné
2017-07-05 8:08 ` Vincent Legout
2017-07-05 8:17 ` [Xen-devel] " Jan Beulich
2017-07-05 12:37 ` Vincent Legout
2017-07-05 12:53 ` Jan Beulich
2017-07-05 13:30 ` Vincent Legout
2017-07-07 8:10 ` Roger Pau Monné
2017-09-05 7:28 ` Vincent Legout [this message]
2017-09-06 10:18 ` Juergen Gross
2017-09-06 14:57 ` Roger Pau Monné
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170905072849.mymaugf3im2luqai@bres.gandi.net \
--to=vincent.legout@gandi.net \
--cc=JBeulich@suse.com \
--cc=boris.ostrovsky@oracle.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=roger.pau@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®