[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option
From: |
Glauber Costa |
Subject: |
[Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option |
Date: |
Wed, 7 Oct 2009 20:14:05 -0300 |
User-agent: |
Jack Bauer |
On Wed, Oct 07, 2009 at 06:00:34PM -0500, Anthony Liguori wrote:
> Glauber Costa wrote:
>> This option deprecates --enable-kvm. It is a more flexible option,
>> that makes use of qemu-opts, and allow us to pass on options to enable or
>> disable kernel irqchip, for example.
>>
>
> With proper qdev support, you could select kvm device models based on
> -device so I think this option isn't all that useful.
>
> What I'd like to see in the interim is a kvm specific machine type
> that's defaulted to if kvm is enabled. I think this would be useful not
> only for enabling things like in-kernel apic, but also for selecting a
> default cpu model.
I don't really follow.
even if we have qdev on the irq controllers, one could still come up with
situations in which we'd like to force the use of one device over another.
>
>> Signed-off-by: Glauber Costa <address@hidden>
>> ---
>> kvm-all.c | 1 +
>> kvm.h | 1 +
>> qemu-config.c | 16 ++++++++++++++++
>> qemu-config.h | 1 +
>> qemu-options.hx | 13 +++++++++----
>> vl.c | 11 +++++++++++
>> 6 files changed, 39 insertions(+), 4 deletions(-)
>>
>> diff --git a/kvm-all.c b/kvm-all.c
>> index f33354d..b31d085 100644
>> --- a/kvm-all.c
>> +++ b/kvm-all.c
>> @@ -51,6 +51,7 @@ typedef struct KVMSlot
>> typedef struct kvm_dirty_log KVMDirtyLog;
>>
>> int kvm_allowed = 0;
>> +int kvm_use_kernel_chip = 0;
>>
>> struct KVMState
>> {
>> diff --git a/kvm.h b/kvm.h
>> index f0c9201..49a2b56 100644
>> --- a/kvm.h
>> +++ b/kvm.h
>> @@ -20,6 +20,7 @@
>>
>> #ifdef CONFIG_KVM
>> extern int kvm_allowed;
>> +extern int kvm_use_kernel_chip;
>>
>> #define kvm_enabled() (kvm_allowed)
>> #else
>> diff --git a/qemu-config.c b/qemu-config.c
>> index bafaea2..9461766 100644
>> --- a/qemu-config.c
>> +++ b/qemu-config.c
>> @@ -184,12 +184,28 @@ QemuOptsList qemu_rtc_opts = {
>> },
>> };
>>
>> +QemuOptsList qemu_kvm_opts = {
>> + .name = "kvm",
>> + .head = QTAILQ_HEAD_INITIALIZER(qemu_kvm_opts.head),
>> + .desc = {
>> + {
>> + .name = "irqchip-in-kernel",
>> + .type = QEMU_OPT_BOOL,
>> + },{
>> + .name = "enabled",
>> + .type = QEMU_OPT_BOOL,
>> + },
>> + { /* end if list */ }
>> + },
>> +};
>> +
>> static QemuOptsList *lists[] = {
>> &qemu_drive_opts,
>> &qemu_chardev_opts,
>> &qemu_device_opts,
>> &qemu_net_opts,
>> &qemu_rtc_opts,
>> + &qemu_kvm_opts,
>> NULL,
>> };
>>
>> diff --git a/qemu-config.h b/qemu-config.h
>> index cdad5ac..58cead2 100644
>> --- a/qemu-config.h
>> +++ b/qemu-config.h
>> @@ -6,6 +6,7 @@ extern QemuOptsList qemu_chardev_opts;
>> extern QemuOptsList qemu_device_opts;
>> extern QemuOptsList qemu_net_opts;
>> extern QemuOptsList qemu_rtc_opts;
>> +extern QemuOptsList qemu_kvm_opts;
>>
>> int qemu_set_option(const char *str);
>>
>> diff --git a/qemu-options.hx b/qemu-options.hx
>> index 3dd76b3..1cb8431 100644
>> --- a/qemu-options.hx
>> +++ b/qemu-options.hx
>> @@ -1431,15 +1431,20 @@ Set the filename for the BIOS.
>> ETEXI
>>
>> #ifdef CONFIG_KVM
>> -DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, \
>> - "-enable-kvm enable KVM full virtualization support\n")
>> -#endif
>> +HXCOMM Options deprecated by -kvm
>> +DEF("enable-kvm", 0, QEMU_OPTION_enable_kvm, "")
>> +
>> +DEF("kvm", HAS_ARG, QEMU_OPTION_kvm, \
>> + "-kvm enable=on|off,irqchip-in-kernel=on|off\n" \
>> + " enable KVM full virtualization support\n")
>> STEXI
>> address@hidden -enable-kvm
>> address@hidden -kvm [enable=on|off][,irqchip-in-kernel=on|off]
>> Enable KVM full virtualization support. This option is only available
>> if KVM support is enabled when compiling.
>> ETEXI
>>
>> +#endif
>> +
>> #ifdef CONFIG_XEN
>> DEF("xen-domid", HAS_ARG, QEMU_OPTION_xen_domid,
>> "-xen-domid id specify xen guest domain id\n")
>> diff --git a/vl.c b/vl.c
>> index afe01af..a6f9eb7 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -5353,6 +5353,17 @@ int main(int argc, char **argv, char **envp)
>> case QEMU_OPTION_enable_kvm:
>> kvm_allowed = 1;
>> break;
>> + case QEMU_OPTION_kvm:
>> +
>> + opts = qemu_opts_parse(&qemu_kvm_opts, optarg, NULL);
>> + if (!opts) {
>> + fprintf(stderr, "parse error: %s\n", optarg);
>> + exit(1);
>> + }
>> +
>> + kvm_allowed = qemu_opt_get_bool(opts, "enabled", 1);
>> + kvm_use_kernel_chip = qemu_opt_get_bool(opts,
>> "irqchip-in-kernel", 1);
>> + break;
>> #endif
>> case QEMU_OPTION_usb:
>> usb_enabled = 1;
>>
>
>
> --
> Regards,
>
> Anthony Liguori
>
- [Qemu-devel] [PATCH v2 1/9] add base-addr field to io apic state, (continued)
- [Qemu-devel] [PATCH v2 1/9] add base-addr field to io apic state, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 2/9] Save missing fields in VMState, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 3/9] provide in-kernel ioapic, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 4/9] provide in-kernel apic, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 5/9] provide apic_set_irq_delivered, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 6/9] provide in-kernel i8259 chip, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 7/9] initialize i8259 chip, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 8/9] Initialize in-kernel irqchip, Glauber Costa, 2009/10/07
- [Qemu-devel] [PATCH v2 9/9] Add -kvm option, Glauber Costa, 2009/10/07
- [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Anthony Liguori, 2009/10/07
- [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option,
Glauber Costa <=
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Anthony Liguori, 2009/10/07
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Gerd Hoffmann, 2009/10/12
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Anthony Liguori, 2009/10/12
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Gerd Hoffmann, 2009/10/12
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Anthony Liguori, 2009/10/12
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Gerd Hoffmann, 2009/10/13
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Anthony Liguori, 2009/10/13
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Markus Armbruster, 2009/10/13
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Anthony Liguori, 2009/10/13
- Re: [Qemu-devel] Re: [PATCH v2 9/9] Add -kvm option, Gerd Hoffmann, 2009/10/14