All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Gleb Natapov <gleb@redhat.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	kvm@vger.kernel.org, joerg.roedel@amd.com
Subject: Re: [patch 0/2] Handle multiple exceptions (fixes Win2003 reboot by triple fault)
Date: Sun, 15 Nov 2009 14:54:40 +0200	[thread overview]
Message-ID: <4AFFFA10.9020407@redhat.com> (raw)
In-Reply-To: <20091112130542.GD7392@redhat.com>

On 11/12/2009 03:05 PM, Gleb Natapov wrote:
> On Thu, Nov 12, 2009 at 01:41:31PM +0100, Jan Kiszka wrote:
>    
>> Gleb Natapov wrote:
>>      
>>> On Wed, Nov 11, 2009 at 05:29:47PM -0200, Marcelo Tosatti wrote:
>>>        
>>>> I suppose a complete fix would be to follow the "Conditions for
>>>> Generating a Double Fault" with support for handling exceptions
>>>> serially.
>>>>
>>>> But this works for me.
>>>>
>>>>          
>>> I prefer proper solution. Like one attached (this is combination of ths
>>> patch by Eddie Dong and my fix):
>>>        
>> Nice, preferred here as well. I only have a minor comment below.
>>
>>      
> Move Double-Fault generation logic out of page fault
> exception generating function to cover more generic case.
>
> Signed-off-by: Eddie Dong<eddie.dong@intel.com>
> Signed-off-by: Gleb Natapov<gleb@redhat.com>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 76c8375..88c4490 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -248,12 +248,61 @@ void kvm_set_apic_base(struct kvm_vcpu *vcpu, u64 data)
>   }
>   EXPORT_SYMBOL_GPL(kvm_set_apic_base);
>
> +#define EXCPT_BENIGN		0
> +#define EXCPT_CONTRIBUTORY	1
> +#define EXCPT_PF		2
> +
> +static int exception_class(int vector)
> +{
> +	if (vector == 14)
> +		return EXCPT_PF;
> +	else if (vector == DE_VECTOR || (vector>= TS_VECTOR&&  vector<= GP_VECTOR))
> +		return EXCPT_CONTRIBUTORY;
> +	else
> +		return EXCPT_BENIGN;
> +}
>    

It's actually less readable.  I know 11 is between 10 and 13, but is 
NP_VECTOR between TS_VECTOR and GP_VECTOR?

This is better as a switch, or even:

u8 exception_class[] = {
    [PF_VECTOR] EXPT_PF,

etc.


-- 
error compiling committee.c: too many arguments to function


  reply	other threads:[~2009-11-15 12:54 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-11 19:29 [patch 0/2] Handle multiple exceptions (fixes Win2003 reboot by triple fault) Marcelo Tosatti
2009-11-11 19:29 ` [patch 1/2] KVM: x86: handle double and triple faults for every exception Marcelo Tosatti
2009-11-11 20:07   ` Jan Kiszka
2009-11-11 20:41     ` Marcelo Tosatti
2009-11-11 21:02       ` Jan Kiszka
2009-11-11 21:40         ` Marcelo Tosatti
2009-11-15 12:30           ` Avi Kivity
2009-11-12 12:26   ` Gleb Natapov
2009-11-15 12:41     ` Avi Kivity
2009-11-15 12:51       ` Gleb Natapov
2009-11-15 13:11         ` Avi Kivity
2009-11-15 14:29           ` Jan Kiszka
2009-11-15 14:34             ` Avi Kivity
2009-11-15 14:36               ` Jan Kiszka
2009-11-11 19:29 ` [patch 2/2] KVM: x86: raise TSS exception for NULL CS and SS segments Marcelo Tosatti
2009-11-12 12:21 ` [patch 0/2] Handle multiple exceptions (fixes Win2003 reboot by triple fault) Gleb Natapov
2009-11-12 12:41   ` Jan Kiszka
2009-11-12 13:05     ` Gleb Natapov
2009-11-15 12:54       ` Avi Kivity [this message]
2009-11-19 15:54         ` Gleb Natapov
2009-11-20 15:55           ` Ryan Harper
2009-11-23 16:52           ` Marcelo Tosatti
2009-11-25  9:55           ` Avi Kivity
2009-11-25 13:03           ` Marcelo Tosatti
2009-11-12 16:07   ` Marcelo Tosatti
2009-11-12 18:03     ` Gleb Natapov

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=4AFFFA10.9020407@redhat.com \
    --to=avi@redhat.com \
    --cc=gleb@redhat.com \
    --cc=jan.kiszka@siemens.com \
    --cc=joerg.roedel@amd.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.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.