qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 05/12] target-i386: push hot-plugged VCPU state


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH 05/12] target-i386: push hot-plugged VCPU state to KVM and unstop it
Date: Wed, 27 Mar 2013 16:16:24 +0100

On Wed, 27 Mar 2013 15:30:30 +0100
Andreas Färber <address@hidden> wrote:

> Am 27.03.2013 14:27, schrieb Igor Mammedov:
> > On Wed, 27 Mar 2013 13:17:45 +0100
> > Andreas Färber <address@hidden> wrote:
> >>> Then I should move following parts to superclass:
> >>>
> >>>     if (dev->hotplugged) {
> >>>         cpu_synchronize_post_init(env);
> >>>         resume_vcpu(CPU(cpu));
> >>>     }
> >>>
> >>> because in case of KVM we should make sure that CPU in sane state before
> >>> allowing CPU to become run-able.
> >>
> >> That's not possible until we change cpu_synchronize_post_init() argument
> >> to CPUState, which is somewhere down my TODO list. Currently I have
> >> mostly flushed my refactorings out, so if you wanted to dive into that,
> >> that would be appreciated. :)
> > 
> > Would something like this be acceptable?
> > ---
> > From 15502168009b7b5ae2b46d854c461e5ad031cdc6 Mon Sep 17 00:00:00 2001
> > From: Igor Mammedov <address@hidden>
> > Date: Wed, 27 Mar 2013 14:21:20 +0100
> > Subject: [PATCH] cpu: Pass CPUState to *cpu_synchronize_post*()
> > 
> > Signed-off-by: Igor Mammedov <address@hidden>
> > ---
> >  cpus.c               |  4 ++--
> >  include/sysemu/kvm.h | 12 ++++++------
> >  kvm-all.c            |  8 ++------
> >  kvm-stub.c           |  4 ++--
> >  4 files changed, 12 insertions(+), 16 deletions(-)
> 
> Looks good so far, did you grep for further occurrences?
yep, I re-factored every *cpu_synchronize_post*() call,

but considering an intention to call cpu_synchronize_post_init() from
qom/cpu.c this patch won't work nice since it will pull with itself
kvm-stub.o to *-user target.

Due to qom/cpu.c is built only once for both softmmu and *-user targets, I
consider to move cpu_synchronize_post_init() & cpu_synchronize_post_reset()
from include/sysemu/kvm.h into include/sysemu/cpus.h with definition moved
into cpus.c + stubs for cpu_synchronize_post_init() &resume_vcpu() in
libqemustub for *-user target.
Adding stubs to libqemustub could be avoided if resume_vcpu() and
cpu_synchronize_post_init() are called from x86_cpu_realizefn()
at the cost of some ifdeffenery in include/sysemu/cpus.h though.

But moving resume_vcpu() & cpu_synchronize_post_init() into qom/cpu.c looks
like good candidate for being reused by other targets. 

Paolo,
  would it be acceptable to add resume_vcpu() & cpu_synchronize_post_init()
  stubs into libqemustub? 


> Andreas
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]