Patchwork [RFC,03/15] kvm: set vcpu_id to APIC ID instead of CPU index

login
register
mail settings
Submitter Eduardo Habkost
Date Aug. 7, 2012, 7:56 p.m.
Message ID <1344369413-9053-4-git-send-email-ehabkost@redhat.com>
Download mbox | patch
Permalink /patch/175802/
State New
Headers show

Comments

Eduardo Habkost - Aug. 7, 2012, 7:56 p.m.
The CPU ID in KVM is supposed to be the APIC ID, so change the
KVM_CREATE_VCPU call to match it. It didn't break anything yet because
today the APIC ID is assumed to be == the CPU index, but this won't be
true in the future.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 kvm-all.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Igor Mammedov - Aug. 13, 2012, 7:16 p.m.
On 08/07/2012 09:56 PM, Eduardo Habkost wrote:
> The CPU ID in KVM is supposed to be the APIC ID, so change the
> KVM_CREATE_VCPU call to match it. It didn't break anything yet because
> today the APIC ID is assumed to be == the CPU index, but this won't be
> true in the future.
What it would break if APIC ID != CPU index ?

>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
>   kvm-all.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kvm-all.c b/kvm-all.c
> index 2148b20..38de992 100644
> --- a/kvm-all.c
> +++ b/kvm-all.c
> @@ -213,7 +213,7 @@ int kvm_init_vcpu(CPUArchState *env)
>
>       DPRINTF("kvm_init_vcpu\n");
>
> -    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpu_index);
> +    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpuid_apic_id);
>       if (ret < 0) {
>           DPRINTF("kvm_create_vcpu failed\n");
>           goto err;
>
Eduardo Habkost - Aug. 13, 2012, 7:59 p.m.
On Mon, Aug 13, 2012 at 09:16:52PM +0200, Igor Mammedov wrote:
> On 08/07/2012 09:56 PM, Eduardo Habkost wrote:
> >The CPU ID in KVM is supposed to be the APIC ID, so change the
> >KVM_CREATE_VCPU call to match it. It didn't break anything yet because
> >today the APIC ID is assumed to be == the CPU index, but this won't be
> >true in the future.
> What it would break if APIC ID != CPU index ?

It is not supposed to break anything, now that SeaBIOS was changed to
accept non-contiguous APIC IDs (and after applying patches 3-6 from this
series). If there is other code that expect APIC ID == CPU index, that
code also needs to be fixed.

> 
> >
> >Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> >---
> >  kvm-all.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> >diff --git a/kvm-all.c b/kvm-all.c
> >index 2148b20..38de992 100644
> >--- a/kvm-all.c
> >+++ b/kvm-all.c
> >@@ -213,7 +213,7 @@ int kvm_init_vcpu(CPUArchState *env)
> >
> >      DPRINTF("kvm_init_vcpu\n");
> >
> >-    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpu_index);
> >+    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpuid_apic_id);
> >      if (ret < 0) {
> >          DPRINTF("kvm_create_vcpu failed\n");
> >          goto err;
> >
> 
> 
> -- 
> Regards,
>   Igor

Patch

diff --git a/kvm-all.c b/kvm-all.c
index 2148b20..38de992 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -213,7 +213,7 @@  int kvm_init_vcpu(CPUArchState *env)
 
     DPRINTF("kvm_init_vcpu\n");
 
-    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpu_index);
+    ret = kvm_vm_ioctl(s, KVM_CREATE_VCPU, env->cpuid_apic_id);
     if (ret < 0) {
         DPRINTF("kvm_create_vcpu failed\n");
         goto err;