All of lore.kernel.org
 help / color / mirror / Atom feed
* earlier remove the backend of tapdisk device in xenstore to release the resource allocated in backend driver lies in dom0'kernel
@ 2010-04-22  8:08 James (song wei)
  2010-04-22 11:13 ` Jan Beulich
  0 siblings, 1 reply; 8+ messages in thread
From: James (song wei) @ 2010-04-22  8:08 UTC (permalink / raw)
  To: xen-devel



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.

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

end of thread, other threads:[~2010-04-23  9:09 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-22  8:08 earlier remove the backend of tapdisk device in xenstore to release the resource allocated in backend driver lies in dom0'kernel James (song wei)
2010-04-22 11:13 ` 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

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.