[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 1 of 2] kvm: Move KVM mp_state accessors to i386
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] Re: [PATCH 1 of 2] kvm: Move KVM mp_state accessors to i386-specific code |
Date: |
Tue, 10 Nov 2009 00:03:21 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
Hollis Blanchard wrote:
> This is the technique Anthony requested this morning, rather than
> relocating mp_state.
Then let's move it. There is not that much code to share anyway.
> To be honest, I don't care which way it's fixed;
> this is at least the 3rd patch to solve this seemingly trivial
> problem.
That's indeed unfortunate, but I think to remember that not all of these
attempts were clean.
Jan
>
> /home/hollisb/source/qemu-fresh.hg/kvm-all.c: In function 'kvm_put_mp_state':
> /home/hollisb/source/qemu-fresh.hg/kvm-all.c:212: error: 'struct
> CPUPPCState' has no member named 'mp_state'
>
> -Hollis
>
> On Mon, Nov 9, 2009 at 2:12 PM, Jan Kiszka <address@hidden> wrote:
>> Hollis Blanchard wrote:
>>> Unbreaks PowerPC and S390 KVM builds.
>> What breaks precisely?
>>
>> Note that KVM_GET/SET_MP_STATE are generic IOCTLs and supposed to be
>> shared with ia64 - one day. We could still move things back then, but
>> maybe we can handle the build issues already in place, specifically as
>> qemu-kvm is carrying this in generic code since ages.
>>
>> Jan
>>
>>> Signed-off-by: Hollis Blanchard <address@hidden>
>>>
>>> diff --git a/kvm-all.c b/kvm-all.c
>>> --- a/kvm-all.c
>>> +++ b/kvm-all.c
>>> @@ -207,26 +207,6 @@ err:
>>> return ret;
>>> }
>>>
>>> -int kvm_put_mp_state(CPUState *env)
>>> -{
>>> - struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
>>> -
>>> - return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state);
>>> -}
>>> -
>>> -int kvm_get_mp_state(CPUState *env)
>>> -{
>>> - struct kvm_mp_state mp_state;
>>> - int ret;
>>> -
>>> - ret = kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state);
>>> - if (ret < 0) {
>>> - return ret;
>>> - }
>>> - env->mp_state = mp_state.mp_state;
>>> - return 0;
>>> -}
>>> -
>>> /*
>>> * dirty pages logging control
>>> */
>>> diff --git a/kvm.h b/kvm.h
>>> --- a/kvm.h
>>> +++ b/kvm.h
>>> @@ -74,9 +74,6 @@ int kvm_vm_ioctl(KVMState *s, int type,
>>>
>>> int kvm_vcpu_ioctl(CPUState *env, int type, ...);
>>>
>>> -int kvm_get_mp_state(CPUState *env);
>>> -int kvm_put_mp_state(CPUState *env);
>>> -
>>> /* Arch specific hooks */
>>>
>>> int kvm_arch_post_run(CPUState *env, struct kvm_run *run);
>>> diff --git a/target-i386/kvm.c b/target-i386/kvm.c
>>> --- a/target-i386/kvm.c
>>> +++ b/target-i386/kvm.c
>>> @@ -659,6 +659,26 @@ static int kvm_get_msrs(CPUState *env)
>>> return 0;
>>> }
>>>
>>> +static int kvm_put_mp_state(CPUState *env)
>>> +{
>>> + struct kvm_mp_state mp_state = { .mp_state = env->mp_state };
>>> +
>>> + return kvm_vcpu_ioctl(env, KVM_SET_MP_STATE, &mp_state);
>>> +}
>>> +
>>> +static int kvm_get_mp_state(CPUState *env)
>>> +{
>>> + struct kvm_mp_state mp_state;
>>> + int ret;
>>> +
>>> + ret = kvm_vcpu_ioctl(env, KVM_GET_MP_STATE, &mp_state);
>>> + if (ret < 0) {
>>> + return ret;
>>> + }
>>> + env->mp_state = mp_state.mp_state;
>>> + return 0;
>>> +}
>>> +
>>> int kvm_arch_put_registers(CPUState *env)
>>> {
>>> int ret;
>>
>>
signature.asc
Description: OpenPGP digital signature