
On Thu, 2 Jun 2016 11:53:22 -0300 Eduardo Habkost <ehabkost@redhat.com> wrote:
(CCing libvirt folks)
BTW:
On Thu, Jun 02, 2016 at 02:22:22PM +0200, Igor Mammedov wrote: [...]
/* Special cases: */ if (!strcmp(name, "xlevel")) { numvalue = strtoul(val, &err, 0); if (!*val || *err) { error_setg(errp, "bad numerical value %s", val); return; } if (numvalue < 0x80000000) { error_report("xlevel value shall always be >= 0x80000000" ", fixup will be removed in future versions"); numvalue += 0x80000000; snprintf(num, sizeof(num), "%" PRIu32, numvalue); val = num;
[...]
} else if (!strcmp(name, "hv-spinlocks")) { const int min = 0xFFF;
numvalue = strtoul(val, &err, 0); if (!*val || *err) { error_setg(errp, "bad numerical value %s", val); return; } if (numvalue < min) { error_report("hv-spinlocks value shall always be >= 0x%x" ", fixup will be removed in future versions", min); numvalue = min; }
Those "fixup will be removed in future versions" warnings are present since QEMU 1.7. Assuming that libvirt never allowed those invalid values to be used in the configuration (did it?), I believe we can safely remove the hv-spinlocks and xlevel fixups in QEMU 2.7.
The hv-spinlocks setter already rejects invalid values. We just need to make x86_cpu_realizefn() reject invalid xlevel values.
I'll leave axing them to you.