On Thu, Jun 02, 2016 at 11:53:22 -0300, Eduardo Habkost 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.
I couldn't find anything regarding xlevel (so we might actually not
support it at all), but we indeed do limit the hv_spinlock count:
if (def->hyperv_spinlocks < 0xFFF) {
virReportError(VIR_ERR_XML_ERROR, "%s",
_("HyperV spinlock retry count must be "
"at least 4095"));
goto error;
}
Peter