From mboxrd@z Thu Jan 1 00:00:00 1970 From: jonkery huang Subject: Redhat enterprise linux 4 update 7 guest suspend hang Date: Tue, 22 Jul 2008 17:35:36 +0800 Message-ID: <4885A9E8.4030702@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Hi, I have installed a Redhat EL4U7 HVM guest, then issue xm suspend, the command will hang at xc_save: 1. # ps aux ...... root 16761 0.1 0.9 11264 5984 pts/9 S+ 14:17 0:00 python /usr/sbin/xm suspend 41 root 16763 0.0 0.0 1988 480 ? S 14:17 0:00 /usr/lib/xen/bin/xc_save 29 41 0 0 4 # strace -p 16763 Process 16763 attached - interrupt to quit read(0, seems it is waiting for something. 2. Check with this guest, it has pv dirver installed: # xm li Name ID Mem VCPUs State Time(s) Domain-0 0 585 4 r----- 1144.9 OVM_EL4U7_X86_HVM_4GB 40 1024 1 -b---- 82.2 # python Python 2.4.3 (#1, Jun 6 2007, 15:09:38) [GCC 4.1.1 20070105 (Red Hat 4.1.1-52)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> import xen.lowlevel.xc >>> from xen.xend.XendConstants import * >>> xc = xen.lowlevel.xc.xc() >>> hvm_pvdrv = xc.hvm_get_param(40, HVM_PARAM_CALLBACK_IRQ) >>> if hvm_pvdrv: ... print "This domain has PV drivers" ... This domain has PV drivers 3. Check with EL4U7 kernel kernel-2.6.9-70.0.0.0.1.EL, HVM_PARAM_CALLBACK_IRQ is set when init platform-pci which is built in to the kernel. 4. For hvm guest with pv driver, xend will deal with it in a special way, paste some code from tools/python/xen/xend/XendDomainInfo.py # HVM domain shuts itself down only if it has PV drivers if self.info.is_hvm(): hvm_pvdrv = xc.hvm_get_param(self.domid, HVM_PARAM_CALLBACK_IRQ) if not hvm_pvdrv: code = REVERSE_DOMAIN_SHUTDOWN_REASONS[reason] log.info("HVM save:remote shutdown dom %d!", self.domid) xc.domain_shutdown(self.domid, code) In the comment, it says "HVM domain shuts itself down only if it has PV drivers", what does this mean? how to shutdown a HVM guest with pv driver? -- Thanks Jonkery