Re: KVM usability

Anthony Liguori
2010-03-09T17:27:46Z

On 03/09/2010 11:11 AM, Avi Kivity wrote:
> On 03/09/2010 04:57 PM, Anthony Liguori wrote:
>> On 03/09/2010 08:52 AM, Avi Kivity wrote:
>>> On 03/09/2010 04:50 PM, Anthony Liguori wrote:
>>>>> It's all in the openSUSE build service. The direct access URL
>>>>> (login required FWIW) is here:
>>>>>
>>>>> https://build.opensuse.org/package/view_file?file=kvm-qemu-default-memsize.patch&package=kvm&project=Virtualization
>>>>>
>>>>>
>>>>> It merely changes DEFAULT_RAM_SIZE in vl.c from 128 to 384 for the
>>>>> "kvm" package.
>>>>
>>>> We should attempt to do three things with default ram size:
>>>>
>>>> 1) bump it up to a more reasonable number
>>>> 2) make it specified in the global default config
>>>> 3) make sure we can provide compatibility support for older machine
>>>> types
>>>
>>> It's really sad, the amount of code needed to change a number.
>>
>> We don't do enough via a config. If we did, we could just have a
>> 0.12 config version that got frozen over time.
>>
>> So really, if we can make the mem readable by global config, and we
>> can have machine specific configs, it would simplify the problem in
>> the future so that we just had to bump a number.
>
> Perhaps a json representation of things. We already have the parser.

Please no :-)

We have a config format, QemuOpts ties nicely into it as does qdev. We
just need to represent machine information via QemuOpts and tie -m to
manipulating the memory assigned to a machine. IOW, instead of:

(machine_init)(ram_addr_t ram_size,
const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
const char *cpu_model)

It should be:

(machine_init)(QemuOpts *opts);

Then we can have a [machine] section in the config where we describe all
of these things.

Regards,

Anthony Liguori