[Kimchi-devel] [PATCH] Setting default memory of PPC to 2048

Daniel Henrique Barboza dhbarboza82 at gmail.com
Thu Aug 6 16:54:24 UTC 2015



On 08/06/2015 10:38 AM, Aline Manera wrote:
>
>
> On 31/07/2015 15:00, dhbarboza82 at gmail.com wrote:
>> From: Daniel Henrique Barboza <dhbarboza82 at gmail.com>
>>
>> At this moment Kimchi for Power systems does not support guests
>> created with less that 2Gb of RAM. This patch set the default
>> Power template to reflect it.
>>
>> Any user defined setting in template.conf will overwrite this
>> default. This is intended. The user must have the final
>> word in the customization of his/her VM templates.
>>
>> Signed-off-by: Daniel Henrique Barboza <dhbarboza82 at gmail.com>
>> ---
>>   src/kimchi/osinfo.py | 26 +++++++++++++++-----------
>>   1 file changed, 15 insertions(+), 11 deletions(-)
>>
>> diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py
>> index 78eb828..6506f2d 100644
>> --- a/src/kimchi/osinfo.py
>> +++ b/src/kimchi/osinfo.py
>> @@ -44,28 +44,28 @@ template_specs = {'x86': {'old': 
>> dict(disk_bus='ide',
>>                                           cdrom_bus='scsi',
>>                                           kbd_type="kbd",
>>                                           kbd_bus='usb', 
>> mouse_bus='usb',
>> -                                        tablet_bus='usb', memory=1280),
>> +                                        tablet_bus='usb', memory=2048),
>>                               'modern': dict(disk_bus='virtio',
>>                                              nic_model='virtio',
>>                                              cdrom_bus='scsi',
>>                                              kbd_bus='usb',
>>                                              kbd_type="kbd",
>>                                              mouse_bus='usb', 
>> tablet_bus='usb',
>> -                                           memory=1280)},
>> +                                           memory=2048)},
>>                     'ppc64le': {'old': dict(disk_bus='virtio',
>>                                             nic_model='virtio',
>>                                             cdrom_bus='scsi',
>>                                             kbd_bus='usb',
>>                                             kbd_type="keyboard",
>>                                             mouse_bus='usb', 
>> tablet_bus='usb',
>> -                                          memory=1280),
>> +                                          memory=2048),
>>                                 'modern': dict(disk_bus='virtio',
>> nic_model='virtio',
>>                                                cdrom_bus='scsi',
>>                                                kbd_bus='usb',
>> kbd_type="keyboard",
>>                                                mouse_bus='usb', 
>> tablet_bus='usb',
>> -                                             memory=1280)}}
>> +                                             memory=2048)}}
>>
>>
>>   custom_specs = {'fedora': {'22': dict(video_model='qxl')}}
>> @@ -89,6 +89,16 @@ icon_available_distros = [icon[5:-4] for icon in 
>> glob.glob1('%s/images/'
>>                             % paths.ui_dir, 'icon-*.png')]
>>
>>
>> +def _get_arch():
>> +    for arch, sub_archs in SUPPORTED_ARCHS.iteritems():
>> +        if os.uname()[4] in sub_archs:
>> +            return arch
>> +
>> +
>> +def _get_default_template_mem(host_arch):
>> +    return template_specs[host_arch]['modern'].get('memory', 1024)
>
> You are assuming the OS is a modern distro to every case which may be 
> not true in always cases.
> I know the memory value is the same in both cases - old and modern, 
> but it is a easy point of failure.
>
> As we know have the template.conf file, I suggest to create one 
> specific by arch.
> So we will have one for x86 and other one for Power. The conf file for 
> Power can have the default value already set and while loading it, we 
> get the right one according to arch.
> What do you think about it?

Not sure. Perhaps it would be easier to just add the default x86 mem 
value '1024' to the old
and modern dicts of x86_64 arch and just rely on the code to set the 
correct value. I'll test it
here and see if it works.

>
>> +
>> +
>>   def _get_tmpl_defaults():
>>       """
>>       ConfigObj returns a dict like below when no changes were made 
>> in the
>> @@ -107,7 +117,7 @@ def _get_tmpl_defaults():
>>       # Create dict with default values
>>       tmpl_defaults = defaultdict(dict)
>>       tmpl_defaults['main']['networks'] = ['default']
>> -    tmpl_defaults['main']['memory'] = 1024
>> +    tmpl_defaults['main']['memory'] = 
>> _get_default_template_mem(_get_arch())
>>       tmpl_defaults['storage']['pool'] = 'default'
>>       tmpl_defaults['storage']['disk.0'] = {'size': 10, 'format': 
>> 'qcow2'}
>>       tmpl_defaults['processor']['cpus'] = 1
>> @@ -157,12 +167,6 @@ def _get_tmpl_defaults():
>>   defaults = _get_tmpl_defaults()
>>
>>
>> -def _get_arch():
>> -    for arch, sub_archs in SUPPORTED_ARCHS.iteritems():
>> -        if os.uname()[4] in sub_archs:
>> -            return arch
>> -
>> -
>>   def get_template_default(template_type, field):
>>       host_arch = _get_arch()
>>       # Assuming 'power' = 'ppc64le' because lookup() does the same,
>




More information about the Kimchi-devel mailing list