All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@web.de>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Avi Kivity <avi@redhat.com>,
	kvm@vger.kernel.org, qemu-devel@nongnu.org,
	Gleb Natapov <gleb@redhat.com>
Subject: Re: [PATCH v3 04/10] qemu-kvm: Clean up mpstate synchronization
Date: Thu, 25 Feb 2010 01:02:01 +0100	[thread overview]
Message-ID: <4B85BDF9.2070801@web.de> (raw)
In-Reply-To: <20100224224419.GA15712@amt.cnet>

[-- Attachment #1: Type: text/plain, Size: 1422 bytes --]

Marcelo Tosatti wrote:
> On Wed, Feb 24, 2010 at 03:17:52PM +0100, Jan Kiszka wrote:
>> Push mpstate reading/writing into kvm_arch_load/save_regs and, on x86,
>> properly synchronize with halted in the accessor functions.
>>
>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> 
>> @@ -1290,6 +1318,7 @@ int kvm_arch_init_vcpu(CPUState *cenv)
>>  #ifdef KVM_EXIT_TPR_ACCESS
>>      kvm_tpr_vcpu_start(cenv);
>>  #endif
>> +    kvm_reset_mpstate(cenv);
>>      return 0;
>>  }
>>  
>> @@ -1363,15 +1392,10 @@ void kvm_arch_cpu_reset(CPUState *env)
>>  {
>>      kvm_arch_reset_vcpu(env);
>>      kvm_put_vcpu_events(env);
>> -    if (!cpu_is_bsp(env)) {
>> -	if (kvm_irqchip_in_kernel()) {
>> -#ifdef KVM_CAP_MP_STATE
>> -	    kvm_reset_mpstate(env);
>> -#endif
>> -	} else {
>> -	    env->interrupt_request &= ~CPU_INTERRUPT_HARD;
>> -	    env->halted = 1;
>> -	}
>> +    kvm_reset_mpstate(env);
>> +    if (!cpu_is_bsp(env) && !kvm_irqchip_in_kernel()) {
>> +        env->interrupt_request &= ~CPU_INTERRUPT_HARD;
>> +        env->halted = 1;
>>      }
>>  }
> 
> Why are these two needed? Now that initialization of mp_state 
> happens via synchronize_state(init/reset) -> arch_load_regs?

Maybe correct. env->halted is also reset on load, not sure about the
interrupt_request reset impact yet. This is (or at least was) hairy
stuff, /me has to sleep about it again.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Jan Kiszka <jan.kiszka@web.de>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Gleb Natapov <gleb@redhat.com>, Avi Kivity <avi@redhat.com>,
	kvm@vger.kernel.org, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH v3 04/10] qemu-kvm: Clean up mpstate synchronization
Date: Thu, 25 Feb 2010 01:02:01 +0100	[thread overview]
Message-ID: <4B85BDF9.2070801@web.de> (raw)
In-Reply-To: <20100224224419.GA15712@amt.cnet>

[-- Attachment #1: Type: text/plain, Size: 1422 bytes --]

Marcelo Tosatti wrote:
> On Wed, Feb 24, 2010 at 03:17:52PM +0100, Jan Kiszka wrote:
>> Push mpstate reading/writing into kvm_arch_load/save_regs and, on x86,
>> properly synchronize with halted in the accessor functions.
>>
>> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> 
>> @@ -1290,6 +1318,7 @@ int kvm_arch_init_vcpu(CPUState *cenv)
>>  #ifdef KVM_EXIT_TPR_ACCESS
>>      kvm_tpr_vcpu_start(cenv);
>>  #endif
>> +    kvm_reset_mpstate(cenv);
>>      return 0;
>>  }
>>  
>> @@ -1363,15 +1392,10 @@ void kvm_arch_cpu_reset(CPUState *env)
>>  {
>>      kvm_arch_reset_vcpu(env);
>>      kvm_put_vcpu_events(env);
>> -    if (!cpu_is_bsp(env)) {
>> -	if (kvm_irqchip_in_kernel()) {
>> -#ifdef KVM_CAP_MP_STATE
>> -	    kvm_reset_mpstate(env);
>> -#endif
>> -	} else {
>> -	    env->interrupt_request &= ~CPU_INTERRUPT_HARD;
>> -	    env->halted = 1;
>> -	}
>> +    kvm_reset_mpstate(env);
>> +    if (!cpu_is_bsp(env) && !kvm_irqchip_in_kernel()) {
>> +        env->interrupt_request &= ~CPU_INTERRUPT_HARD;
>> +        env->halted = 1;
>>      }
>>  }
> 
> Why are these two needed? Now that initialization of mp_state 
> happens via synchronize_state(init/reset) -> arch_load_regs?

Maybe correct. env->halted is also reset on load, not sure about the
interrupt_request reset impact yet. This is (or at least was) hairy
stuff, /me has to sleep about it again.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

  reply	other threads:[~2010-02-25  0:02 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-24 14:17 [PATCH v3 00/10] qemu-kvm: Hook cleanups and yet more use of upstream code Jan Kiszka
2010-02-24 14:17 ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 01/10] qemu-kvm: Add KVM_CAP_X86_ROBUST_SINGLESTEP-awareness Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 02/10] qemu-kvm: Rework VCPU state writeback API Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 03/10] x86: Extend validity of cpu_is_bsp Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 04/10] qemu-kvm: Clean up mpstate synchronization Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 22:44   ` Marcelo Tosatti
2010-02-24 22:44     ` [Qemu-devel] " Marcelo Tosatti
2010-02-25  0:02     ` Jan Kiszka [this message]
2010-02-25  0:02       ` Jan Kiszka
2010-02-25 11:56       ` Jan Kiszka
2010-02-25 11:56         ` [Qemu-devel] " Jan Kiszka
2010-02-25 17:20   ` [PATCH v4 " Jan Kiszka
2010-02-25 17:20     ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 05/10] KVM: x86: Restrict writeback of VCPU state Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 22:59   ` Marcelo Tosatti
2010-02-24 22:59     ` [Qemu-devel] " Marcelo Tosatti
2010-02-24 23:51     ` Jan Kiszka
2010-02-24 23:51       ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 06/10] qemu-kvm: Use VCPU event state for reset and vmsave/load Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 07/10] qemu-kvm: Cleanup/fix TSC and PV clock writeback Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 23:17   ` Marcelo Tosatti
2010-02-24 23:17     ` [Qemu-devel] " Marcelo Tosatti
2010-02-24 23:45     ` Jan Kiszka
2010-02-24 23:45       ` [Qemu-devel] " Jan Kiszka
2010-02-24 23:49       ` Marcelo Tosatti
2010-02-24 23:49         ` [Qemu-devel] " Marcelo Tosatti
2010-02-24 23:58         ` Jan Kiszka
2010-02-24 23:58           ` [Qemu-devel] " Jan Kiszka
2010-02-25  3:58           ` Marcelo Tosatti
2010-02-25  3:58             ` [Qemu-devel] " Marcelo Tosatti
2010-02-25  8:48             ` Jan Kiszka
2010-02-25  8:48               ` [Qemu-devel] " Jan Kiszka
2010-02-25 15:07               ` Marcelo Tosatti
2010-02-25 15:07                 ` [Qemu-devel] " Marcelo Tosatti
2010-02-25 15:17                 ` Jan Kiszka
2010-02-25 15:17                   ` [Qemu-devel] " Jan Kiszka
2010-02-25 15:48                   ` Marcelo Tosatti
2010-02-25 15:48                     ` [Qemu-devel] " Marcelo Tosatti
2010-02-25 15:56   ` [PATCH v4 " Jan Kiszka
2010-02-25 15:56     ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 08/10] qemu-kvm: Clean up KVM's APIC hooks Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 09/10] qemu-kvm: Move kvm_set_boot_cpu_id Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 14:17 ` [PATCH v3 10/10] qemu-kvm: Bring qemu_init_vcpu back home Jan Kiszka
2010-02-24 14:17   ` [Qemu-devel] " Jan Kiszka
2010-02-24 23:26 ` [PATCH v3 00/10] qemu-kvm: Hook cleanups and yet more use of upstream code Marcelo Tosatti
2010-02-24 23:26   ` [Qemu-devel] " Marcelo Tosatti
2010-02-24 23:55   ` Jan Kiszka
2010-02-24 23:55     ` [Qemu-devel] " Jan Kiszka

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=4B85BDF9.2070801@web.de \
    --to=jan.kiszka@web.de \
    --cc=avi@redhat.com \
    --cc=gleb@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.