[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Re: BSOD "A clock interrupt was not recevied onasecondary processor within the allocated time interval"
Steven Smith wrote: Alternative Viridian interface support was checked in. When enabled, it ought to be sufficient to disable these bugchecks. Œviridian=1¹ needs to be specified in the domain config file.Hmm... In order for the Viridian stuff to actually solve this problem, you need to set the relaxed-timers bit. It doesn't look like the xen-unstable implementation does so. Something like this might help: diff -r f6b92526e916 xen/arch/x86/hvm/viridian.c --- a/xen/arch/x86/hvm/viridian.c Tue Jan 06 09:14:39 2009 +0000 +++ b/xen/arch/x86/hvm/viridian.c Tue Jan 06 10:32:26 2009 +0000 @@ -37,6 +37,7 @@/* Viridian CPUID 4000004, Implementation Recommendations. */#define CPUID4A_MSR_BASED_APIC (1 << 3) +#define CPUID4A_RELAX_TIMER_INT_HANDLING (1 << 5)int cpuid_viridian_leaves(unsigned int leaf, unsigned int *eax,unsigned int *ebx, unsigned int *ecx, @@ -84,7 +85,7 @@ if ( (d->arch.hvm_domain.viridian.guest_os_id.raw == 0) || (d->arch.hvm_domain.viridian.guest_os_id.fields.os < 4) ) break; - *eax = CPUID4A_MSR_BASED_APIC; + *eax = CPUID4A_MSR_BASED_APIC | CPUID4A_RELAX_TIMER_INT_HANDLING; *ebx = 2047; /* long spin count */ break; } But note that I haven't tested this *at all*. That appears to work. I have a test setup where I can introduce an arbitrary delay in qemu-dm. It's easy to trigger bug check 0x101 in Windows 2008 that way. Using viridian=1, with the relaxed timer bit set, I have been unable to crash Windows 2008. Looks like a good thing to commit. - Frank _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |