From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH for-1.4 qom-cpu 1/9] kvm: Create kvm_arch_vcpu_id() function Date: Wed, 23 Jan 2013 12:26:22 +0200 Message-ID: <20130123102622.GN31120@redhat.com> References: <1358886309-26258-1-git-send-email-ehabkost@redhat.com> <1358886309-26258-2-git-send-email-ehabkost@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org, "Michael S. Tsirkin" , Marcelo Tosatti , qemu-devel@nongnu.org, Igor Mammedov , Andreas =?utf-8?Q?F=C3=A4rber?= To: Eduardo Habkost Return-path: Content-Disposition: inline In-Reply-To: <1358886309-26258-2-git-send-email-ehabkost@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org On Tue, Jan 22, 2013 at 06:25:01PM -0200, Eduardo Habkost wrote: > This will allow each architecture to define how the VCPU ID is set on > the KVM_CREATE_VCPU ioctl call. > > Signed-off-by: Eduardo Habkost Acked-by: Gleb Natapov > --- > Cc: kvm@vger.kernel.org > Cc: Michael S. Tsirkin > Cc: Gleb Natapov > Cc: Marcelo Tosatti > > Changes v2: > - Get CPUState as argument instead of CPUArchState > > Changes v3: > - Convert KVM_CREATE_VCPU ioctl() argument to void*, so > the argument type matches the type expected by kvm_vm_ioctl() > --- > include/sysemu/kvm.h | 3 +++ > kvm-all.c | 2 +- > target-i386/kvm.c | 5 +++++ > target-ppc/kvm.c | 5 +++++ > target-s390x/kvm.c | 5 +++++ > 5 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h > index 22acf91..384ee66 100644 > --- a/include/sysemu/kvm.h > +++ b/include/sysemu/kvm.h > @@ -196,6 +196,9 @@ int kvm_arch_init(KVMState *s); > > int kvm_arch_init_vcpu(CPUState *cpu); > > +/* Returns VCPU ID to be used on KVM_CREATE_VCPU ioctl() */ > +unsigned long kvm_arch_vcpu_id(CPUState *cpu); > + > void kvm_arch_reset_vcpu(CPUState *cpu); > > int kvm_arch_on_sigbus_vcpu(CPUState *cpu, int code, void *addr); > diff --git a/kvm-all.c b/kvm-all.c > index 6278d61..363a358 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -222,7 +222,7 @@ int kvm_init_vcpu(CPUState *cpu) > > DPRINTF("kvm_init_vcpu\n"); > > - ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, cpu->cpu_index); > + ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, (void *)kvm_arch_vcpu_id(cpu)); > if (ret < 0) { > DPRINTF("kvm_create_vcpu failed\n"); > goto err; > diff --git a/target-i386/kvm.c b/target-i386/kvm.c > index 3acff40..5f3f789 100644 > --- a/target-i386/kvm.c > +++ b/target-i386/kvm.c > @@ -411,6 +411,11 @@ static void cpu_update_state(void *opaque, int running, RunState state) > } > } > > +unsigned long kvm_arch_vcpu_id(CPUState *cpu) > +{ > + return cpu->cpu_index; > +} > + > int kvm_arch_init_vcpu(CPUState *cs) > { > struct { > diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c > index 2f4f068..2c64c63 100644 > --- a/target-ppc/kvm.c > +++ b/target-ppc/kvm.c > @@ -384,6 +384,11 @@ static inline void kvm_fixup_page_sizes(PowerPCCPU *cpu) > > #endif /* !defined (TARGET_PPC64) */ > > +unsigned long kvm_arch_vcpu_id(CPUState *cpu) > +{ > + return cpu->cpu_index; > +} > + > int kvm_arch_init_vcpu(CPUState *cs) > { > PowerPCCPU *cpu = POWERPC_CPU(cs); > diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c > index add6a58..99deddf 100644 > --- a/target-s390x/kvm.c > +++ b/target-s390x/kvm.c > @@ -76,6 +76,11 @@ int kvm_arch_init(KVMState *s) > return 0; > } > > +unsigned long kvm_arch_vcpu_id(CPUState *cpu) > +{ > + return cpu->cpu_index; > +} > + > int kvm_arch_init_vcpu(CPUState *cpu) > { > int ret = 0; > -- > 1.8.1 -- Gleb.