mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
libxl: don't hardcode scheduler weight
Long ago in commit dfa1e1dd53
the scheduler weight was accidentally
hardcoded to 1000. Weight is a setting with no unit since it is
relative to the weight of other domains. If no weight is specified,
libxl defaults to 256.
Instead of hardcoding the weight to 1000, honor any <shares> specified
in <cputune>. libvirt's notion of shares is synonomous to libxl's
scheduler weight setting. If shares is unspecified, defer default
weight setting to libxl.
Removing the hardcoded weight required some test fixup. While at it,
add an explicit test for <shares> conversion to scheduler weight.
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
04b4cf5210
commit
83edaf4435
@ -366,7 +366,9 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
b_info->sched_params.weight = 1000;
|
if (def->cputune.sharesSpecified)
|
||||||
|
b_info->sched_params.weight = def->cputune.shares;
|
||||||
|
|
||||||
/* Xen requires the memory sizes to be rounded to 1MiB increments */
|
/* Xen requires the memory sizes to be rounded to 1MiB increments */
|
||||||
virDomainDefSetMemoryTotal(def,
|
virDomainDefSetMemoryTotal(def,
|
||||||
VIR_ROUND_UP(virDomainDefGetMemoryInitial(def), 1024));
|
VIR_ROUND_UP(virDomainDefGetMemoryInitial(def), 1024));
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"device_model_version": "qemu_xen",
|
"device_model_version": "qemu_xen",
|
||||||
"device_model": "/bin/true",
|
"device_model": "/bin/true",
|
||||||
"sched_params": {
|
"sched_params": {
|
||||||
"weight": 1000
|
|
||||||
},
|
},
|
||||||
"type.hvm": {
|
"type.hvm": {
|
||||||
"pae": "True",
|
"pae": "True",
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
"max_memkb": 524288,
|
"max_memkb": 524288,
|
||||||
"target_memkb": 524288,
|
"target_memkb": 524288,
|
||||||
"sched_params": {
|
"sched_params": {
|
||||||
"weight": 1000
|
|
||||||
},
|
},
|
||||||
"type.pv": {
|
"type.pv": {
|
||||||
"bootloader": "pygrub"
|
"bootloader": "pygrub"
|
||||||
|
89
tests/libxlxml2domconfigdata/cpu-shares-hvm.json
Normal file
89
tests/libxlxml2domconfigdata/cpu-shares-hvm.json
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
{
|
||||||
|
"c_info": {
|
||||||
|
"type": "hvm",
|
||||||
|
"name": "test-hvm",
|
||||||
|
"uuid": "2147d599-9cc6-c0dc-92ab-4064b5446e9b"
|
||||||
|
},
|
||||||
|
"b_info": {
|
||||||
|
"max_vcpus": 4,
|
||||||
|
"avail_vcpus": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3
|
||||||
|
],
|
||||||
|
"max_memkb": 1048576,
|
||||||
|
"target_memkb": 1048576,
|
||||||
|
"video_memkb": 8192,
|
||||||
|
"shadow_memkb": 12288,
|
||||||
|
"device_model_version": "qemu_xen",
|
||||||
|
"device_model": "/bin/true",
|
||||||
|
"sched_params": {
|
||||||
|
"weight": 1500
|
||||||
|
},
|
||||||
|
"type.hvm": {
|
||||||
|
"pae": "True",
|
||||||
|
"apic": "True",
|
||||||
|
"acpi": "True",
|
||||||
|
"vga": {
|
||||||
|
"kind": "cirrus"
|
||||||
|
},
|
||||||
|
"vnc": {
|
||||||
|
"enable": "True",
|
||||||
|
"listen": "0.0.0.0",
|
||||||
|
"findunused": "False"
|
||||||
|
},
|
||||||
|
"sdl": {
|
||||||
|
"enable": "False"
|
||||||
|
},
|
||||||
|
"spice": {
|
||||||
|
|
||||||
|
},
|
||||||
|
"boot": "c",
|
||||||
|
"rdm": {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"arch_arm": {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disks": [
|
||||||
|
{
|
||||||
|
"pdev_path": "/var/lib/xen/images/test-hvm.img",
|
||||||
|
"vdev": "hda",
|
||||||
|
"backend": "qdisk",
|
||||||
|
"format": "raw",
|
||||||
|
"removable": 1,
|
||||||
|
"readwrite": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nics": [
|
||||||
|
{
|
||||||
|
"devid": 0,
|
||||||
|
"mac": "00:16:3e:66:12:b4",
|
||||||
|
"bridge": "br0",
|
||||||
|
"script": "/etc/xen/scripts/vif-bridge",
|
||||||
|
"nictype": "vif_ioemu"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vfbs": [
|
||||||
|
{
|
||||||
|
"devid": -1,
|
||||||
|
"vnc": {
|
||||||
|
"enable": "True",
|
||||||
|
"listen": "0.0.0.0",
|
||||||
|
"findunused": "False"
|
||||||
|
},
|
||||||
|
"sdl": {
|
||||||
|
"enable": "False"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"vkbs": [
|
||||||
|
{
|
||||||
|
"devid": -1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on_reboot": "restart"
|
||||||
|
}
|
39
tests/libxlxml2domconfigdata/cpu-shares-hvm.xml
Normal file
39
tests/libxlxml2domconfigdata/cpu-shares-hvm.xml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<domain type='xen'>
|
||||||
|
<name>test-hvm</name>
|
||||||
|
<description>None</description>
|
||||||
|
<uuid>2147d599-9cc6-c0dc-92ab-4064b5446e9b</uuid>
|
||||||
|
<memory>1048576</memory>
|
||||||
|
<currentMemory>1048576</currentMemory>
|
||||||
|
<vcpu>4</vcpu>
|
||||||
|
<cputune>
|
||||||
|
<shares>1500</shares>
|
||||||
|
</cputune>
|
||||||
|
<on_poweroff>destroy</on_poweroff>
|
||||||
|
<on_reboot>restart</on_reboot>
|
||||||
|
<on_crash>destroy</on_crash>
|
||||||
|
<clock offset='utc'/>
|
||||||
|
<os>
|
||||||
|
<type>hvm</type>
|
||||||
|
<loader>/usr/lib/xen/boot/hvmloader</loader>
|
||||||
|
<boot dev='hd'/>
|
||||||
|
</os>
|
||||||
|
<features>
|
||||||
|
<apic/>
|
||||||
|
<acpi/>
|
||||||
|
<pae/>
|
||||||
|
</features>
|
||||||
|
<devices>
|
||||||
|
<emulator>/bin/true</emulator>
|
||||||
|
<disk type='file' device='disk'>
|
||||||
|
<driver name='qemu'/>
|
||||||
|
<source file='/var/lib/xen/images/test-hvm.img'/>
|
||||||
|
<target dev='hda'/>
|
||||||
|
</disk>
|
||||||
|
<interface type='bridge'>
|
||||||
|
<source bridge='br0'/>
|
||||||
|
<mac address='00:16:3e:66:12:b4'/>
|
||||||
|
<script path='/etc/xen/scripts/vif-bridge'/>
|
||||||
|
</interface>
|
||||||
|
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
|
||||||
|
</devices>
|
||||||
|
</domain>
|
@ -21,7 +21,7 @@
|
|||||||
"device_model_version": "qemu_xen",
|
"device_model_version": "qemu_xen",
|
||||||
"device_model": "/bin/true",
|
"device_model": "/bin/true",
|
||||||
"sched_params": {
|
"sched_params": {
|
||||||
"weight": 1000
|
|
||||||
},
|
},
|
||||||
"type.hvm": {
|
"type.hvm": {
|
||||||
"pae": "True",
|
"pae": "True",
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
"max_memkb": 524288,
|
"max_memkb": 524288,
|
||||||
"target_memkb": 524288,
|
"target_memkb": 524288,
|
||||||
"sched_params": {
|
"sched_params": {
|
||||||
"weight": 1000
|
|
||||||
},
|
},
|
||||||
"type.pv": {
|
"type.pv": {
|
||||||
"bootloader": "pygrub"
|
"bootloader": "pygrub"
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
"device_model_version": "qemu_xen",
|
"device_model_version": "qemu_xen",
|
||||||
"device_model": "/bin/true",
|
"device_model": "/bin/true",
|
||||||
"sched_params": {
|
"sched_params": {
|
||||||
"weight": 1000
|
|
||||||
},
|
},
|
||||||
"type.hvm": {
|
"type.hvm": {
|
||||||
"pae": "True",
|
"pae": "True",
|
||||||
|
@ -107,7 +107,7 @@
|
|||||||
"device_model_version": "qemu_xen",
|
"device_model_version": "qemu_xen",
|
||||||
"device_model": "/bin/true",
|
"device_model": "/bin/true",
|
||||||
"sched_params": {
|
"sched_params": {
|
||||||
"weight": 1000
|
|
||||||
},
|
},
|
||||||
"type.hvm": {
|
"type.hvm": {
|
||||||
"pae": "True",
|
"pae": "True",
|
||||||
|
@ -192,6 +192,7 @@ mymain(void)
|
|||||||
|
|
||||||
DO_TEST("basic-pv");
|
DO_TEST("basic-pv");
|
||||||
DO_TEST("basic-hvm");
|
DO_TEST("basic-hvm");
|
||||||
|
DO_TEST("cpu-shares-hvm");
|
||||||
DO_TEST("variable-clock-hvm");
|
DO_TEST("variable-clock-hvm");
|
||||||
DO_TEST("moredevs-hvm");
|
DO_TEST("moredevs-hvm");
|
||||||
DO_TEST("vnuma-hvm");
|
DO_TEST("vnuma-hvm");
|
||||||
|
Loading…
Reference in New Issue
Block a user