lkml.org 
[lkml]   [2011]   [Dec]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v6] kvm: make vcpu life cycle separated from kvm instance
    (2011/12/27 17:38), Liu Ping Fan wrote:
    > From: Liu Ping Fan<pingfank@linux.vnet.ibm.com>
    >
    > Currently, vcpu can be destructed only when kvm instance destroyed.
    > Change this to vcpu's destruction before kvm instance, so vcpu MUST
    > and CAN be destroyed before kvm's destroy.

    I really don't understand why this big change can be justified by only
    3 lines.

    >
    > Signed-off-by: Liu Ping Fan<pingfank@linux.vnet.ibm.com>
    > ---
    > arch/x86/kvm/i8254.c | 10 +++--
    > arch/x86/kvm/i8259.c | 17 +++++--
    > arch/x86/kvm/x86.c | 53 +++++++++++-----------
    > include/linux/kvm_host.h | 20 +++-----
    > virt/kvm/irq_comm.c | 6 ++-
    > virt/kvm/kvm_main.c | 110 +++++++++++++++++++++++++++++++++++-----------
    > 6 files changed, 140 insertions(+), 76 deletions(-)
    >

    You are introducing kvm_arch_vcpu_zap().

    Then, apart from the "zap" naming issue I mentioned last time,
    what about other architectures than x86?


    > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
    > index 900c763..b88d418d 100644
    > --- a/include/linux/kvm_host.h
    > +++ b/include/linux/kvm_host.h
    > @@ -117,6 +117,7 @@ enum {
    >
    > struct kvm_vcpu {
    > struct kvm *kvm;
    > + struct list_head list;
    > #ifdef CONFIG_PREEMPT_NOTIFIERS
    > struct preempt_notifier preempt_notifier;
    > #endif
    > @@ -251,12 +252,14 @@ struct kvm {
    > struct mm_struct *mm; /* userspace tied to this vm */
    > struct kvm_memslots *memslots;
    > struct srcu_struct srcu;
    > + struct srcu_struct srcu_vcpus;
    > +

    Another srcu. This alone is worth explaining in the changelog IMO.

    Takuya

    > #ifdef CONFIG_KVM_APIC_ARCHITECTURE
    > u32 bsp_vcpu_id;
    > #endif
    > - struct kvm_vcpu *vcpus[KVM_MAX_VCPUS];
    > + struct list_head vcpus;
    > atomic_t online_vcpus;
    > - int last_boosted_vcpu;
    > + int last_boosted_vcpu_id;
    > struct list_head vm_list;
    > struct mutex lock;
    > struct kvm_io_bus *buses[KVM_NR_BUSES];


    \
     
     \ /
      Last update: 2011-12-27 12:23    [W:0.030 / U:65.188 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site