All of lore.kernel.org
 help / color / mirror / Atom feed
From: "James (song wei)" <jsong@novell.com>
To: xen-devel@lists.xensource.com
Subject: earlier remove the backend of tapdisk device in xenstore to release the resource allocated in backend driver lies in dom0'kernel
Date: Thu, 22 Apr 2010 01:08:41 -0700 (PDT)	[thread overview]
Message-ID: <28325456.post@talk.nabble.com> (raw)



Blktapctl thread will use qemu-dm connection instead of tapdisk-ioemu in the
case of FV VM. We found the resource like memory allocated for this Guest
can't be free for backend driver couldn't be closed in qemu-dm. 
This patch would  remove the backend of tapdisk device earlier in xenstore
to triger qemu-dm to notify the backend driver to release the resource
allocated.
I have tested this patch at the case of
1, save && restore 
2, destory && shutdown
3, snapshot

regards,

-James (Song Wei)



Signed-off-by: James ( Song Wei ) <jsong@novell.com> 
diff -r fadf63ab49e7 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py   Mon Apr 19 17:57:28 2010
+0100
+++ b/tools/python/xen/xend/XendDomainInfo.py   Thu Apr 22 15:54:01 2010
+0800
@@ -2406,8 +2406,13 @@

     def _releaseDevices(self, suspend = False):
         """Release all domain's devices.  Nothrow guarantee."""
+        t = xstransact("%s/device" % self.vmpath)
         if self.image:
             try:
+                for dev in t.list('tap'):
+                    log.debug("Early removing %s", dev);
+                    self.getDeviceController('tap').destroyDevice(dev,
True)
+                time.sleep(0.1)
                 log.debug("Destroying device model")
                 self.image.destroyDeviceModel()
             except Exception, e:
@@ -2416,9 +2421,10 @@
             log.debug("No device model")

         log.debug("Releasing devices")
-        t = xstransact("%s/device" % self.vmpath)
         try:
             for devclass in XendDevices.valid_devices():
+                if devclass is 'tap':
+                    continue
                 for dev in t.list(devclass):
                     try:
                         log.debug("Removing %s", dev);
                                                                  
http://old.nabble.com/file/p28325456/tapdisk-close.patch tapdisk-close.patch 
-- 
View this message in context: http://old.nabble.com/earlier-remove-the-backend-of-tapdisk-device-in-xenstore-to-release-the-resource-allocated-in-backend-driver-lies-in-dom0%27kernel-tp28325456p28325456.html
Sent from the Xen - Dev mailing list archive at Nabble.com.

             reply	other threads:[~2010-04-22  8:08 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-22  8:08 James (song wei) [this message]
2010-04-22 11:13 ` earlier remove the backend of tapdisk device in xenstore to release the resource allocated in backend driver lies in dom0'kernel Jan Beulich
2010-04-22 17:14   ` Jim Fehlig
2010-04-23  1:48     ` James (song wei)
2010-04-23  3:24   ` James (song wei)
2010-04-23  8:13     ` Jan Beulich
2010-04-23  8:54       ` Keir Fraser
2010-04-23  9:09         ` James Song

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=28325456.post@talk.nabble.com \
    --to=jsong@novell.com \
    --cc=xen-devel@lists.xensource.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.