From nobody Tue Feb 10 19:47:48 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1648452724; cv=none; d=zohomail.com; s=zohoarc; b=OtzWBr6jTUGrhWjHctr6R/bV/BGIhjoL+mSejQenLsIuA67OLC5cqLUIKo6nlI6FqYIVHalZV1IS4HXBfUw5Hjj8Jdn93woFTVzPzGEwXNhBxcKf2FgBD1akTy5tez+lXnIEmfo6sKDffZfWRDDGDrw3dfK2ug3hHiMGIRgW9yc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1648452724; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6d/sW6e/Kr8RlzyNo5dvyc8xZgVcCb9FkL7LlYdAfb8=; b=CzBBNiXJ/76cH15+4oKWYP6+vCC+BQbET44av3QVf0quT49M+JbzpvG04NH9ki2NDs8QGRsOUBE14JM2MxyWI0+fPnptTDaiNkPi0O7iawOOzsNsF8dz9qi6DvCi/WpGat6a7dx3QVQ38m/tBI7WOAcE4XmBqn844EVLQfPJyi8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1648452724439811.26330043213; Mon, 28 Mar 2022 00:32:04 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-271-CKMfKQbhOU-tZoVnzwO1Ng-1; Mon, 28 Mar 2022 03:31:57 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DB0C72A5957E; Mon, 28 Mar 2022 07:31:55 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id DC57A40D2991; Mon, 28 Mar 2022 07:31:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 19AE1193F6DC; Mon, 28 Mar 2022 07:31:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 64CAD1947BBF for ; Mon, 28 Mar 2022 07:31:51 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 21B294010A03; Mon, 28 Mar 2022 07:31:51 +0000 (UTC) Received: from maggie.redhat.com (unknown [10.43.2.180]) by smtp.corp.redhat.com (Postfix) with ESMTP id A0A0D40D1B9B for ; Mon, 28 Mar 2022 07:31:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1648452723; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=6d/sW6e/Kr8RlzyNo5dvyc8xZgVcCb9FkL7LlYdAfb8=; b=E6FPJgpMi4fJW3ChHvYFVzskzpoG6ofgMfyaxMd1UnkIpGr/j3VB2gVpv+dekIb6+bQ0SV wLdB/C1OwH4acn67mVsENk3w1heGiAIMEA2Yq7wFpdAQQs7M/A3+VIxsx4xqCPAU4v++mR 8Qb9UcDsdMClt9ZjfFKioS6zLfwFxGU= X-MC-Unique: CKMfKQbhOU-tZoVnzwO1Ng-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Michal Privoznik To: libvir-list@redhat.com Subject: [PATCH 2/2] Revert "qemu: add support for tsc.on_reboot element" Date: Mon, 28 Mar 2022 09:31:48 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1648452726725100001 Content-Type: text/plain; charset="utf-8"; x-default="true" This reverts commit 06c960e477de4561c7ba956f82994fa120226397. Turns out, this feature is not needed and QEMU will fix TSC without any intervention from outside. Signed-off-by: Michal Privoznik --- src/qemu/qemu_capabilities.c | 2 - src/qemu/qemu_capabilities.h | 1 - src/qemu/qemu_command.c | 11 ----- src/qemu/qemu_validate.c | 45 ++++++++----------- .../caps_7.0.0.x86_64.replies | 4 -- .../caps_7.0.0.x86_64.xml | 1 - .../cpu-tsc-clear-on-reset.args | 32 ------------- .../cpu-tsc-clear-on-reset.x86_64-7.0.0.args | 34 -------------- .../cpu-tsc-clear-on-reset.xml | 35 --------------- tests/qemuxml2argvtest.c | 2 - 10 files changed, 19 insertions(+), 148 deletions(-) delete mode 100644 tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.args delete mode 100644 tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.x86_64-7.= 0.0.args delete mode 100644 tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.xml diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 7c427cefc6..6b4ed08499 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -669,7 +669,6 @@ VIR_ENUM_IMPL(virQEMUCaps, /* 425 */ "blockdev.nbd.tls-hostname", /* QEMU_CAPS_BLOCKDEV_NBD_TLS_H= OSTNAME */ "memory-backend-file.prealloc-threads", /* QEMU_CAPS_MEMORY_= BACKEND_PREALLOC_THREADS */ - "x86-cpu.tsc-clear-on-reset", /* QEMU_CAPS_X86_CPU_TSC_CLEAR= _ON_RESET */ ); =20 =20 @@ -1778,7 +1777,6 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjec= tPropsMemoryBackendMemfd[] static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMaxCPU[] =3D { { "unavailable-features", QEMU_CAPS_CPU_UNAVAILABLE_FEATURES }, { "kvm-no-adjvtime", QEMU_CAPS_CPU_KVM_NO_ADJVTIME }, - { "tsc-clear-on-reset", QEMU_CAPS_X86_CPU_TSC_CLEAR_ON_RESET }, { "migratable", QEMU_CAPS_CPU_MIGRATABLE }, }; =20 diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 995a3e8edf..948029d60d 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -644,7 +644,6 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ /* 425 */ QEMU_CAPS_BLOCKDEV_NBD_TLS_HOSTNAME, /* tls hostname can be overriden = for NBD clients */ QEMU_CAPS_MEMORY_BACKEND_PREALLOC_THREADS, /* -object memory-backend-*= .prealloc-threads */ - QEMU_CAPS_X86_CPU_TSC_CLEAR_ON_RESET, /* x86-cpu.tsc-clear-on-reset */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3565a5967e..8246ab515a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6616,17 +6616,6 @@ qemuBuildCpuCommandLine(virCommand *cmd, case VIR_DOMAIN_TIMER_NAME_TSC: if (timer->frequency > 0) virBufferAsprintf(&buf, ",tsc-frequency=3D%llu", timer->fr= equency); - switch (timer->reboot) { - case VIR_DOMAIN_TIMER_REBOOT_MODE_CLEAR: - virBufferAddLit(&buf, ",tsc-clear-on-reset=3Don"); - break; - case VIR_DOMAIN_TIMER_REBOOT_MODE_KEEP: - virBufferAddLit(&buf, ",tsc-clear-on-reset=3Doff"); - break; - case VIR_DOMAIN_TIMER_REBOOT_MODE_DEFAULT: - case VIR_DOMAIN_TIMER_REBOOT_MODE_LAST: - break; - } break; case VIR_DOMAIN_TIMER_NAME_ARMVTIMER: switch (timer->tickpolicy) { diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 8f569554c6..e0708b8a76 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -396,11 +396,10 @@ static int qemuValidateDomainDefClockTimers(const virDomainDef *def, virQEMUCaps *qemuCaps) { - virDomainTimerDef *timer; size_t i; =20 for (i =3D 0; i < def->clock.ntimers; i++) { - timer =3D def->clock.timers[i]; + virDomainTimerDef *timer =3D def->clock.timers[i]; =20 switch ((virDomainTimerNameType)timer->name) { case VIR_DOMAIN_TIMER_NAME_PLATFORM: @@ -410,22 +409,18 @@ qemuValidateDomainDefClockTimers(const virDomainDef *= def, return -1; =20 case VIR_DOMAIN_TIMER_NAME_TSC: - if (!ARCH_IS_X86(def->os.arch) && timer->present =3D=3D VIR_TR= ISTATE_BOOL_YES) - goto no_support; - - if (timer->reboot !=3D VIR_DOMAIN_TIMER_REBOOT_MODE_DEFAULT && - !virQEMUCapsGet(qemuCaps, QEMU_CAPS_X86_CPU_TSC_CLEAR_ON_R= ESET)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Configuring the '%s' timer to reset on r= eboot is not supported with this QEMU binary"), - virDomainTimerNameTypeToString(timer->name)= ); - return -1; - } - break; - case VIR_DOMAIN_TIMER_NAME_KVMCLOCK: case VIR_DOMAIN_TIMER_NAME_HYPERVCLOCK: - if (!ARCH_IS_X86(def->os.arch) && timer->present =3D=3D VIR_TR= ISTATE_BOOL_YES) - goto no_support; + if (!ARCH_IS_X86(def->os.arch) && timer->present =3D=3D VIR_TR= ISTATE_BOOL_YES) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Configuring the '%s' timer is not suppor= ted " + "for virtType=3D%s arch=3D%s machine=3D%s= guests"), + virDomainTimerNameTypeToString(timer->name), + virDomainVirtTypeToString(def->virtType), + virArchToString(def->os.arch), + def->os.machine); + return -1; + } break; =20 case VIR_DOMAIN_TIMER_NAME_LAST: @@ -504,7 +499,14 @@ qemuValidateDomainDefClockTimers(const virDomainDef *d= ef, case VIR_DOMAIN_TIMER_NAME_ARMVTIMER: if (def->virtType !=3D VIR_DOMAIN_VIRT_KVM || !qemuDomainIsARMVirt(def)) { - goto no_support; + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Configuring the '%s' timer is not suppor= ted " + "for virtType=3D%s arch=3D%s machine=3D%s= guests"), + virDomainTimerNameTypeToString(timer->name), + virDomainVirtTypeToString(def->virtType), + virArchToString(def->os.arch), + def->os.machine); + return -1; } if (timer->present =3D=3D VIR_TRISTATE_BOOL_NO) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -538,15 +540,6 @@ qemuValidateDomainDefClockTimers(const virDomainDef *d= ef, } =20 return 0; - - no_support: - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("Configuring the '%s' timer is not supported for virt= Type=3D%s arch=3D%s machine=3D%s guests"), - virDomainTimerNameTypeToString(timer->name), - virDomainVirtTypeToString(def->virtType), - virArchToString(def->os.arch), - def->os.machine); - return -1; } =20 =20 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.replies b/tests/q= emucapabilitiesdata/caps_7.0.0.x86_64.replies index d919caf7f3..82ccbab6eb 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.replies @@ -28849,10 +28849,6 @@ { "name": "sse4_1", "type": "bool" - }, - { - "name": "tsc-clear-on-reset", - "type": "bool" } ], "id": "libvirt-41" diff --git a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.0.0.x86_64.xml index 02868b7695..5227e3ee0b 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0.x86_64.xml @@ -245,7 +245,6 @@ - 6002050 0 43100243 diff --git a/tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.args b/tests/qem= uxml2argvdata/cpu-tsc-clear-on-reset.args deleted file mode 100644 index f2b8a98968..0000000000 --- a/tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.args +++ /dev/null @@ -1,32 +0,0 @@ -LC_ALL=3DC \ -PATH=3D/bin \ -HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ -USER=3Dtest \ -LOGNAME=3Dtest \ -XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ -XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ -XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ -QEMU_AUDIO_DRV=3Dnone \ -/usr/bin/qemu-system-x86_64 \ --name guest=3DQEMUGuest1,debug-threads=3Don \ --S \ --object secret,id=3DmasterKey0,format=3Draw,file=3D/tmp/lib/domain--1-QEMU= Guest1/master-key.aes \ --machine pc,usb=3Doff,dump-guest-core=3Doff \ --accel kvm \ --cpu Haswell,vme=3Don,ds=3Don,acpi=3Don,ss=3Don,ht=3Don,tm=3Don,pbe=3Don,d= tes64=3Don,monitor=3Don,ds-cpl=3Don,vmx=3Don,smx=3Don,est=3Don,tm2=3Don,xtp= r=3Don,pdcm=3Don,f16c=3Don,rdrand=3Don,pdpe1gb=3Don,abm=3Don,lahf-lm=3Don,i= nvtsc=3Don,tsc-clear-on-reset=3Don \ --m 214 \ --realtime mlock=3Doff \ --smp 1,sockets=3D1,cores=3D1,threads=3D1 \ --uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ --display none \ --no-user-config \ --nodefaults \ --chardev socket,id=3Dcharmonitor,path=3D/tmp/lib/domain--1-QEMUGuest1/moni= tor.sock,server=3Don,wait=3Doff \ --mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ --rtc base=3Dutc \ --no-shutdown \ --no-acpi \ --boot strict=3Don \ --usb \ --device virtio-balloon-pci,id=3Dballoon0,bus=3Dpci.0,addr=3D0x2 \ --msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.x86_64-7.0.0.arg= s b/tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.x86_64-7.0.0.args deleted file mode 100644 index 59f1d66ed4..0000000000 --- a/tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.x86_64-7.0.0.args +++ /dev/null @@ -1,34 +0,0 @@ -LC_ALL=3DC \ -PATH=3D/bin \ -HOME=3D/tmp/lib/domain--1-QEMUGuest1 \ -USER=3Dtest \ -LOGNAME=3Dtest \ -XDG_DATA_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.local/share \ -XDG_CACHE_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.cache \ -XDG_CONFIG_HOME=3D/tmp/lib/domain--1-QEMUGuest1/.config \ -/usr/bin/qemu-system-x86_64 \ --name guest=3DQEMUGuest1,debug-threads=3Don \ --S \ --object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tm= p/lib/domain--1-QEMUGuest1/master-key.aes"}' \ --machine pc-i440fx-7.0,usb=3Doff,dump-guest-core=3Doff,memory-backend=3Dpc= .ram \ --accel kvm \ --cpu EPYC-Rome,x2apic=3Don,tsc-deadline=3Don,hypervisor=3Don,tsc-adjust=3D= on,stibp=3Don,arch-capabilities=3Don,ssbd=3Don,xsaves=3Don,cmp-legacy=3Don,= amd-ssbd=3Don,virt-ssbd=3Don,svme-addr-chk=3Don,rdctl-no=3Don,skip-l1dfl-vm= entry=3Don,mds-no=3Don,pschange-mc-no=3Don,invtsc=3Don,tsc-clear-on-reset= =3Don \ --m 214 \ --object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ --overcommit mem-lock=3Doff \ --smp 1,sockets=3D1,cores=3D1,threads=3D1 \ --uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ --display none \ --no-user-config \ --nodefaults \ --chardev socket,id=3Dcharmonitor,fd=3D1729,server=3Don,wait=3Doff \ --mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ --rtc base=3Dutc \ --no-shutdown \ --no-acpi \ --boot strict=3Don \ --device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ --audiodev '{"id":"audio1","driver":"none"}' \ --device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","add= r":"0x2"}' \ --sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ --msg timestamp=3Don diff --git a/tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.xml b/tests/qemu= xml2argvdata/cpu-tsc-clear-on-reset.xml deleted file mode 100644 index 2521349ce7..0000000000 --- a/tests/qemuxml2argvdata/cpu-tsc-clear-on-reset.xml +++ /dev/null @@ -1,35 +0,0 @@ - - QEMUGuest1 - c7a5fdbd-edaf-9455-926a-d65c16db1809 - A description of the test machine. - - A test of qemu's minimal configuration. - This test also tests the description and title elements. - - 219100 - 219100 - 1 - - hvm - - - - - - - - - - destroy - restart - destroy - - /usr/bin/qemu-system-x86_64 - - - - - - - - diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 9d5aba85a1..e7fecb24d3 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -2094,8 +2094,6 @@ mymain(void) DO_TEST("cpu-Haswell-noTSX", QEMU_CAPS_KVM); DO_TEST_NOCAPS("cpu-host-model-cmt"); DO_TEST_CAPS_VER("cpu-host-model-cmt", "4.0.0"); - DO_TEST("cpu-tsc-clear-on-reset", QEMU_CAPS_X86_CPU_TSC_CLEAR_ON_RESET= ); - DO_TEST_CAPS_VER("cpu-tsc-clear-on-reset", "7.0.0"); DO_TEST("cpu-tsc-frequency", QEMU_CAPS_KVM); DO_TEST_CAPS_VER("cpu-tsc-frequency", "4.0.0"); DO_TEST_CAPS_VER("cpu-translation", "4.0.0"); --=20 2.34.1