[PATCH] qemu: Do not silently allow non-available timers on non-x86 systems
Thomas Huth
thuth at redhat.com
Fri Jul 31 06:05:23 UTC 2020
On 28/07/2020 17.13, Boris Fiuczynski wrote:
> On 7/22/20 1:21 PM, Thomas Huth wrote:
>> libvirt currently silently allows <timer name="kvmclock"/> and some
>> other timer tags in the guest XML definition for timers that do not
>> exist on non-x86 systems. We should not silently ignore these tags
>> since the users might not get what they expected otherwise.
>>
>> Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1754887
>> Signed-off-by: Thomas Huth <thuth at redhat.com>
>> ---
>> src/qemu/qemu_validate.c | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>>
>> diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
>> index 488f258d00..667ac5cc23 100644
>> --- a/src/qemu/qemu_validate.c
>> +++ b/src/qemu/qemu_validate.c
>> @@ -371,6 +371,18 @@ qemuValidateDomainDefClockTimers(const
>> virDomainDef *def,
>> case VIR_DOMAIN_TIMER_NAME_TSC:
>> case VIR_DOMAIN_TIMER_NAME_KVMCLOCK:
>> case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK:
>> + if (!ARCH_IS_X86(def->os.arch)) {
>> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>> + _("Configuring the '%s' timer is not
>> supported "
>> + "for virtType=%s arch=%s machine=%s
>> guests"),
>> +
>> virDomainTimerNameTypeToString(timer->name),
>> + virDomainVirtTypeToString(def->virtType),
>> + virArchToString(def->os.arch),
>> + def->os.machine);
>> + return -1;
>> + }
>> + break;
>> +
>> case VIR_DOMAIN_TIMER_NAME_LAST:
>> break;
>>
>
> This would render previously as valid accepted domains invalid, e.g. on
> s390x using kvmclock: As long as the user does not specify the "present"
> attribute the domain starts without error since qemus cpu parameter is
> not extended.
Shall I turn it into a VIR_WARN() instead?
Thomas
More information about the libvir-list
mailing list