qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/5] s390x/cpu: Use ioctl to reset state in the


From: Thomas Huth
Subject: Re: [Qemu-devel] [PATCH 1/5] s390x/cpu: Use ioctl to reset state in the kernel
Date: Mon, 14 Apr 2014 13:54:08 +0200

On Mon, 14 Apr 2014 12:14:49 +0200
Alexander Graf <address@hidden> wrote:

> 
> On 26.02.14 12:38, Christian Borntraeger wrote:
> > From: Thomas Huth <address@hidden>
> >
> > Some of the state in the kernel can not be reset from QEMU yet.
> > For this we've got to use the KVM_S390_INITIAL_RESET ioctl to make
> > sure that the state in the kernel is set to the right values during
> > initial CPU reset, too.
> >
> > Signed-off-by: Thomas Huth <address@hidden>
> > Acked-by: Cornelia Huck <address@hidden>
> > Signed-off-by: Christian Borntraeger <address@hidden>
> > ---
> >   target-s390x/cpu.c | 9 +++++++++
> >   1 file changed, 9 insertions(+)
> >
> > diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
> > index f1319e5..1a8c1cc 100644
> > --- a/target-s390x/cpu.c
> > +++ b/target-s390x/cpu.c
> > @@ -108,6 +108,15 @@ static void s390_cpu_initial_reset(CPUState *s)
> >       env->cregs[14] = CR14_RESET;
> >   
> >       env->pfault_token = -1UL;
> > +
> > +#if defined(CONFIG_KVM)
> > +    /* Reset state inside the kernel that we cannot access yet from QEMU. 
> > */
> > +    if (kvm_enabled()) {
> > +        if (kvm_vcpu_ioctl(s, KVM_S390_INITIAL_RESET, NULL)) {
> 
> Could we put this into the vcpu register sync function? It gets a 
> parameter that indicates when we are on RESET level, right?

No, sorry, as far as I can see, this is not that easily possible:

On S390, we've got five different levels of reset (CPU reset,
Initial CPU reset, Subsystem reset, Clear reset & Power-on reset).
The ioctl is about initial CPU reset only, while the register sync
function flag is rather only used by system/clear reset instead.

So for example when the guest OS sends a SIGP INITIAL CPU RESET from
one CPU to another, only the s390_cpu_initial_reset() will be called,
but not the register sync with KVM_PUT_RESET_STATE.

 Thomas




reply via email to

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