From mboxrd@z Thu Jan 1 00:00:00 1970 From: "James Harper" Subject: Re: Win2003R2 64 suspend failed in self live migration Date: Wed, 15 Jun 2011 22:21:37 +1000 Message-ID: <5EEB467B-04D0-44B8-8125-6E9930D567CA@bendigoit.com.au> References: Mime-Version: 1.0 (iPhone Mail 8J2) Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: MaoXiaoyun Cc: xen devel List-Id: xen-devel@lists.xenproject.org 4kb of stack space might be too much and could cause such a hang. Declare yo= ur buffer as a global, or a per-CPU array of buffers if required Sent from my iPhone On 15/06/2011, at 22:05, "MaoXiaoyun" wrote: > Hi James; > =20 > I've been testing Windows HVM live migration for a while, OS type cov= ers 2003, and 2008. > It works well most of time. I mean migration been two physical host. > But 2003R2 64 bit failed on self live migration. (VM migration on the= same host) > =20 > After instal debug version PV driver inside VM, not debug log show up= . > Later I learnt that, in your code you implied that the debug routine= could not be hooked since > "// can't patch IDT on AMD64 "(in xenpci_dbprint.c XenPci_HookDbgPrin= t()) > =20 > I was able to get the log output simply by redefine the KdPrint macr= o like below. But unfortunately > , VM is suffuring hang now and then.=20 > =20 > So is it proper to do this, or how to obtain 64bit log properly? > As for self migration, I've noticed that VM is able to migrate once= , but after migration, the network=20 > is in trouble, VM can not access outside. It looks like xennet is not fun= ction properly. Meanwhile, it looks > like "a fake arp" is needed after migration, as linux pv. > =20 > I shall dig more, but currently the hang in log brother me a lot. > Could you kindly offer me some help? > Thanks. > =20 > ----------debug log ---- =20 > =20 > void xmaoDPrint(PCH Format, ...); > #undef KdPrint > #define KdPrint(A) xmaoDPrint=20 > void xmaoDPrint(PCHAR fmt, ...){ > char buf[4096]; > va_list argptr;=20 > memset(buf, 0, 4096); > va_start(argptr, fmt); > RtlStringCchVPrintfA(buf, 4095, fmt, argptr); > va_end(argptr); > XenDbgPrint(buf, (ULONG)strlen(buf)); > return; >=20 > =20