From: Frank van der Linden <Frank.Vanderlinden@Sun.COM>
To: Steven Smith <steven.smith@eu.citrix.com>
Cc: "Xen-Devel (E-mail)" <xen-devel@lists.xensource.com>,
Steve Prochniak <sprochniak@virtualiron.com>,
Andrew Lyon <andrew.lyon@gmail.com>,
Keir Fraser <keir.fraser@eu.citrix.com>,
xen-users@lists.xensource.com,
Ben Guthro <bguthro@virtualiron.com>
Subject: Re: Re: BSOD "A clock interrupt was not recevied onasecondary processor within the allocated time interval"
Date: Wed, 07 Jan 2009 10:42:08 -0700 [thread overview]
Message-ID: <4964E970.3090803@Sun.COM> (raw)
In-Reply-To: <20090106103909.GA23206@weybridge.uk.xensource.com>
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
next prev parent reply other threads:[~2009-01-07 17:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <f4527be0812290132p2f29afe1k5dbad3888ee552ba@mail.gmail.com>
2009-01-02 18:33 ` BSOD "A clock interrupt was not recevied ona secondary processor within the allocated time interval" Andrew Lyon
[not found] ` <B99564216C25704085A82B41C46DD342088343FA@exchange.katana.local>
2009-01-05 20:24 ` Re: BSOD "A clock interrupt was not recevied onasecondary " Andrew Lyon
2009-01-05 20:55 ` Steve Prochniak
2009-01-05 21:32 ` Ben Guthro
2009-01-05 21:51 ` Keir Fraser
2009-01-06 9:34 ` Andrew Lyon
2009-01-06 9:44 ` Keir Fraser
2009-01-06 10:39 ` Steven Smith
2009-01-06 12:13 ` Ben Guthro
2009-01-07 17:42 ` Frank van der Linden [this message]
2009-01-07 19:33 ` [Xen-devel] " Andrew Lyon
2009-01-07 20:48 ` Frank van der Linden
2009-01-05 22:07 ` Andrew Lyon
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=4964E970.3090803@Sun.COM \
--to=frank.vanderlinden@sun.com \
--cc=andrew.lyon@gmail.com \
--cc=bguthro@virtualiron.com \
--cc=keir.fraser@eu.citrix.com \
--cc=sprochniak@virtualiron.com \
--cc=steven.smith@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
--cc=xen-users@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.