From nobody Tue Feb 10 23:55:06 2026 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=red-soft.ru Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1703455119503572.0034333287896; Sun, 24 Dec 2023 13:58:39 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id DF94E827; Sun, 24 Dec 2023 16:58:37 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 8953F1B12; Sun, 24 Dec 2023 16:36:40 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 5A4FB19E4; Sun, 24 Dec 2023 16:35:13 -0500 (EST) Received: from gw.red-soft.ru (red-soft.ru [188.246.186.2]) by lists.libvirt.org (Postfix) with ESMTP id A64F119FF for ; Sun, 24 Dec 2023 16:35:03 -0500 (EST) Received: from gentoo.darknet (unknown [10.81.10.243]) by gw.red-soft.ru (Postfix) with ESMTPA id DC4793E1B93; Mon, 25 Dec 2023 00:26:07 +0300 (MSK) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 From: Artem Chernyshev To: devel@lists.libvirt.org Subject: [PATCH 03/10] virtime: virTimeMillisNowRaw to void Date: Mon, 25 Dec 2023 00:25:56 +0300 Message-ID: <20231224212603.29506-4-artem.chernyshev@red-soft.ru> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231224212603.29506-1-artem.chernyshev@red-soft.ru> References: <20231224212603.29506-1-artem.chernyshev@red-soft.ru> MIME-Version: 1.0 X-KLMS-Rule-ID: 1 X-KLMS-Message-Action: clean X-KLMS-AntiSpam-Lua-Profiles: 182326 [Dec 24 2023] X-KLMS-AntiSpam-Version: 6.1.0.3 X-KLMS-AntiSpam-Envelope-From: artem.chernyshev@red-soft.ru X-KLMS-AntiSpam-Rate: 0 X-KLMS-AntiSpam-Status: not_detected X-KLMS-AntiSpam-Method: none X-KLMS-AntiSpam-Auth: dkim=none X-KLMS-AntiSpam-Info: LuaCore: 7 0.3.7 6d6bf5bd8eea7373134f756a2fd73e9456bb7d1a, {Tracking_from_domain_doesnt_match_to}, d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;127.0.0.199:7.1.2;red-soft.ru:7.1.1, FromAlignment: s X-MS-Exchange-Organization-SCL: -1 X-KLMS-AntiSpam-Interceptor-Info: scan successful X-KLMS-AntiPhishing: Clean, bases: 2023/12/24 20:51:00 X-KLMS-AntiVirus: Kaspersky Security for Linux Mail Server, version 8.0.3.30, bases: 2023/12/24 19:18:00 #22792569 X-KLMS-AntiVirus-Status: Clean, skipped Message-ID-Hash: UTEUMOAR4COPYM7NE22ST3Q4LIQTF7SZ X-Message-ID-Hash: UTEUMOAR4COPYM7NE22ST3Q4LIQTF7SZ X-MailFrom: artem.chernyshev@red-soft.ru X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Artem Chernyshev X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1703455120466100001 virTimeMillisNowRaw() function are invariant now, so, quite a few checks, dependent on it are become irrelevant. Fixes: f5e9bdb87f ("src: replace clock_gettime()/gettimeofday() with g_get_= real_time()") Signed-off-by: Artem Chernyshev --- src/conf/virdomainjob.c | 7 ++-- src/libxl/libxl_domain.c | 10 ++--- src/libxl/libxl_domain.h | 2 +- src/libxl/libxl_driver.c | 6 +-- src/nwfilter/nwfilter_dhcpsnoop.c | 18 +++----- src/qemu/qemu_agent.c | 6 +-- src/qemu/qemu_backup.c | 3 +- src/qemu/qemu_dbus.c | 3 +- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_domainjob.c | 22 ++++------ src/qemu/qemu_domainjob.h | 4 +- src/qemu/qemu_driver.c | 10 ++--- src/qemu/qemu_hotplug.c | 6 +-- src/qemu/qemu_migration.c | 4 +- src/qemu/qemu_nbdkit.c | 3 +- src/qemu/qemu_process.c | 9 ++-- src/qemu/qemu_tpm.c | 3 +- src/storage/storage_backend_iscsi_direct.c | 4 +- src/util/virfdstream.c | 3 +- src/util/virhostuptime.c | 3 +- src/util/virtime.c | 48 +++++----------------- src/util/virtime.h | 14 +++---- src/vz/vz_driver.c | 15 +++---- src/vz/vz_utils.c | 16 +++----- src/vz/vz_utils.h | 2 +- tools/virsh-domain.c | 12 ++---- 26 files changed, 82 insertions(+), 153 deletions(-) diff --git a/src/conf/virdomainjob.c b/src/conf/virdomainjob.c index 38f08f1d18..457b218f6f 100644 --- a/src/conf/virdomainjob.c +++ b/src/conf/virdomainjob.c @@ -326,8 +326,7 @@ virDomainObjBeginJobInternal(virDomainObj *obj, virDomainAgentJobTypeToString(jobObj->agentActive), virDomainAsyncJobTypeToString(jobObj->asyncJob)); =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); =20 jobObj->jobsQueued++; then =3D now + VIR_JOB_WAIT_TIME; @@ -373,7 +372,7 @@ virDomainObjBeginJobInternal(virDomainObj *obj, goto cleanup; } =20 - ignore_value(virTimeMillisNow(&now)); + virTimeMillisNow(&now); =20 if (job) { virDomainObjResetJob(jobObj); @@ -422,7 +421,7 @@ virDomainObjBeginJobInternal(virDomainObj *obj, return 0; =20 error: - ignore_value(virTimeMillisNow(&now)); + virTimeMillisNow(&now); if (jobObj->active && jobObj->started) duration =3D now - jobObj->started; if (jobObj->agentActive && jobObj->agentStarted) diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 19cbdd9e82..69bac7d0ae 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -43,24 +43,22 @@ VIR_LOG_INIT("libxl.libxl_domain"); =20 =20 -int +void libxlDomainJobGetTimeElapsed(virDomainJobObj *job, unsigned long long *tim= eElapsed) { unsigned long long now; =20 if (!job->started) - return 0; + return; =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); =20 if (now < job->started) { job->started =3D 0; - return 0; + return; } =20 *timeElapsed =3D now - job->started; - return 0; } =20 static void * diff --git a/src/libxl/libxl_domain.h b/src/libxl/libxl_domain.h index 94b693e477..c5573188d1 100644 --- a/src/libxl/libxl_domain.h +++ b/src/libxl/libxl_domain.h @@ -49,7 +49,7 @@ extern const struct libxl_event_hooks ev_hooks; int libxlDomainObjPrivateInitCtx(virDomainObj *vm); =20 -int +void libxlDomainJobGetTimeElapsed(virDomainJobObj *job, unsigned long long *timeElapsed); =20 diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 11a96233bd..5ad66261fd 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5370,8 +5370,7 @@ libxlDomainGetJobInfo(virDomainPtr dom, /* In libxl we don't have an estimated completion time * thus we always set to unbounded and update time * for the active job. */ - if (libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed) < 0) - goto cleanup; + libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed); =20 /* setting only these two attributes is enough because libxl never sets * anything else */ @@ -5417,8 +5416,7 @@ libxlDomainGetJobStats(virDomainPtr dom, /* In libxl we don't have an estimated completion time * thus we always set to unbounded and update time * for the active job. */ - if (libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed) < 0) - goto cleanup; + libxlDomainJobGetTimeElapsed(vm->job, &timeElapsed); =20 if (virTypedParamsAddULLong(params, nparams, &maxparams, VIR_DOMAIN_JOB_TIME_ELAPSED, diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcp= snoop.c index 26072ec26e..91e6bc28ef 100644 --- a/src/nwfilter/nwfilter_dhcpsnoop.c +++ b/src/nwfilter/nwfilter_dhcpsnoop.c @@ -1103,13 +1103,9 @@ virNWFilterSnoopRatePenalty(virNWFilterSnoopPcapConf= *pc, if (diff > limit) { unsigned long long now; =20 - if (virTimeMillisNowRaw(&now) < 0) { - g_usleep(PCAP_FLOOD_TIMEOUT_MS); /* 1 ms */ - pc->penaltyTimeoutAbs =3D 0; - } else { - /* don't listen to the fd for 1 ms */ - pc->penaltyTimeoutAbs =3D now + PCAP_FLOOD_TIMEOUT_MS; - } + virTimeMillisNowRaw(&now); + /* don't listen to the fd for 1 ms */ + pc->penaltyTimeoutAbs =3D now + PCAP_FLOOD_TIMEOUT_MS; } } =20 @@ -1127,12 +1123,8 @@ virNWFilterSnoopAdjustPoll(virNWFilterSnoopPcapConf = *pc, =20 for (i =3D 0; i < nPc; i++) { if (pc[i].penaltyTimeoutAbs !=3D 0) { - if (now =3D=3D 0) { - if (virTimeMillisNow(&now) < 0) { - ret =3D -1; - break; - } - } + if (now =3D=3D 0) + virTimeMillisNow(&now); =20 if (now < pc[i].penaltyTimeoutAbs) { /* don't listen to incoming data on the fd for some time */ diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c index f9bcf38dfb..7d3be39380 100644 --- a/src/qemu/qemu_agent.c +++ b/src/qemu/qemu_agent.c @@ -737,8 +737,7 @@ static int qemuAgentSend(qemuAgent *agent, =20 if (seconds > VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK) { unsigned long long now; - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); if (seconds =3D=3D VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT) seconds =3D QEMU_AGENT_WAIT_TIME; then =3D now + seconds * 1000ull; @@ -803,8 +802,7 @@ qemuAgentGuestSyncSend(qemuAgent *agent, qemuAgentMessage sync_msg =3D { 0 }; int rc; =20 - if (virTimeMillisNow(&id) < 0) - return -1; + virTimeMillisNow(&id); =20 txMsg =3D g_strdup_printf("{\"execute\":\"guest-sync\", " "\"arguments\":{\"id\":%llu}}\n", id); diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 857709b17e..a269f1f802 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -1145,8 +1145,7 @@ qemuBackupGetJobInfoStats(virDomainObj *vm, return -1; } =20 - if (qemuDomainJobDataUpdateTime(jobData) < 0) - return -1; + qemuDomainJobDataUpdateTime(jobData); =20 jobData->status =3D VIR_DOMAIN_JOB_STATUS_ACTIVE; =20 diff --git a/src/qemu/qemu_dbus.c b/src/qemu/qemu_dbus.c index 06b655d870..85e00b7607 100644 --- a/src/qemu/qemu_dbus.c +++ b/src/qemu/qemu_dbus.c @@ -231,8 +231,7 @@ qemuDBusStart(virQEMUDriver *driver, goto cleanup; } =20 - if (virTimeBackOffStart(&timebackoff, 1, timeout) < 0) - goto cleanup; + virTimeBackOffStart(&timebackoff, 1, timeout); while (virTimeBackOffWait(&timebackoff)) { char errbuf[1024] =3D { 0 }; =20 diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 734d63f8a4..ac5aefeb43 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6439,7 +6439,7 @@ qemuDomainObjEnterMonitorInternal(virDomainObj *obj, priv->mon, obj, obj->def->name); virObjectLock(priv->mon); virObjectRef(priv->mon); - ignore_value(virTimeMillisNow(&priv->monStart)); + virTimeMillisNow(&priv->monStart); virObjectUnlock(obj); =20 return 0; diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c index 245e51f14b..9419795406 100644 --- a/src/qemu/qemu_domainjob.c +++ b/src/qemu/qemu_domainjob.c @@ -133,7 +133,7 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm, virDomainAsyncJobTypeToString(asyncJob), vm->def->name); =20 if (started =3D=3D 0) - ignore_value(virTimeMillisNow(&started)); + virTimeMillisNow(&started); =20 job->jobsQueued++; job->asyncJob =3D asyncJob; @@ -151,48 +151,44 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm, } =20 =20 -int +void qemuDomainJobDataUpdateTime(virDomainJobData *jobData) { unsigned long long now; =20 if (!jobData->started) - return 0; + return; =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); =20 if (now < jobData->started) { VIR_WARN("Async job starts in the future"); jobData->started =3D 0; - return 0; + return; } =20 jobData->timeElapsed =3D now - jobData->started; - return 0; } =20 -int +void qemuDomainJobDataUpdateDowntime(virDomainJobData *jobData) { unsigned long long now; qemuDomainJobDataPrivate *priv =3D jobData->privateData; =20 if (!jobData->stopped) - return 0; + return; =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); =20 if (now < jobData->stopped) { VIR_WARN("Guest's CPUs stopped in the future"); jobData->stopped =3D 0; - return 0; + return; } =20 priv->stats.mig.downtime =3D now - jobData->stopped; priv->stats.mig.downtime_set =3D true; - return 0; } =20 =20 diff --git a/src/qemu/qemu_domainjob.h b/src/qemu/qemu_domainjob.h index c3de401aa5..5bd457abc7 100644 --- a/src/qemu/qemu_domainjob.h +++ b/src/qemu/qemu_domainjob.h @@ -89,9 +89,9 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm, void qemuDomainObjDiscardAsyncJob(virDomainObj *obj); void qemuDomainObjReleaseAsyncJob(virDomainObj *obj); =20 -int qemuDomainJobDataUpdateTime(virDomainJobData *jobData) +void qemuDomainJobDataUpdateTime(virDomainJobData *jobData) ATTRIBUTE_NONNULL(1); -int qemuDomainJobDataUpdateDowntime(virDomainJobData *jobData) +void qemuDomainJobDataUpdateDowntime(virDomainJobData *jobData) ATTRIBUTE_NONNULL(1); int qemuDomainJobDataToInfo(virDomainJobData *jobData, virDomainJobInfoPtr info) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 4b6068be04..9e2c930cf5 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2578,8 +2578,7 @@ qemuDomainGetControlInfo(virDomainPtr dom, info->state =3D VIR_DOMAIN_CONTROL_ERROR; info->details =3D VIR_DOMAIN_CONTROL_ERROR_REASON_MONITOR; } else if (vm->job->active) { - if (virTimeMillisNow(&info->stateTime) < 0) - goto cleanup; + virTimeMillisNow(&info->stateTime); if (vm->job->current) { info->state =3D VIR_DOMAIN_CONTROL_JOB; info->stateTime -=3D vm->job->current->started; @@ -11924,7 +11923,9 @@ qemuDomainGetJobInfoMigrationStats(virDomainObj *vm, return 0; } =20 - return qemuDomainJobDataUpdateTime(jobData); + qemuDomainJobDataUpdateTime(jobData); + + return 0; } =20 =20 @@ -11948,8 +11949,7 @@ qemuDomainGetJobInfoDumpStats(virDomainObj *vm, =20 privJob->stats.dump =3D stats; =20 - if (qemuDomainJobDataUpdateTime(jobData) < 0) - return -1; + qemuDomainJobDataUpdateTime(jobData); =20 switch (privJob->stats.dump.status) { case QEMU_MONITOR_DUMP_STATUS_NONE: diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 75e1d39b60..fed292295a 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -252,8 +252,7 @@ qemuHotplugWaitForTrayEject(virDomainObj *vm, unsigned long long now; int rc; =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); =20 while (disk->tray_status !=3D VIR_DOMAIN_DISK_TRAY_OPEN) { if ((rc =3D virDomainObjWaitUntil(vm, now + CHANGE_MEDIA_TIMEOUT))= < 0) @@ -5448,8 +5447,7 @@ qemuDomainWaitForDeviceRemoval(virDomainObj *vm) qemuDomainObjPrivate *priv =3D vm->privateData; unsigned long long until; =20 - if (virTimeMillisNow(&until) < 0) - return 1; + virTimeMillisNow(&until); until +=3D qemuDomainGetUnplugTimeout(vm); =20 while (true) { diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 3ba0aa502b..9d49885cb0 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -5027,7 +5027,7 @@ qemuMigrationSrcRun(virQEMUDriver *driver, vm->job->completed->stopped =3D vm->job->current->stopped; qemuDomainJobDataUpdateTime(vm->job->completed); qemuDomainJobDataUpdateDowntime(vm->job->completed); - ignore_value(virTimeMillisNow(&vm->job->completed->sent)); + virTimeMillisNow(&vm->job->completed->sent); } =20 cookieFlags |=3D QEMU_MIGRATION_COOKIE_NETWORK | @@ -6846,7 +6846,7 @@ qemuMigrationDstFinish(virQEMUDriver *driver, goto cleanup; phase =3D QEMU_MIGRATION_PHASE_FINISH_RESUME; } - ignore_value(virTimeMillisNow(&timeReceived)); + virTimeMillisNow(&timeReceived); =20 if (qemuMigrationJobStartPhase(vm, phase) < 0) goto cleanup; diff --git a/src/qemu/qemu_nbdkit.c b/src/qemu/qemu_nbdkit.c index 85e61be44c..0ffde44fe3 100644 --- a/src/qemu/qemu_nbdkit.c +++ b/src/qemu/qemu_nbdkit.c @@ -1209,8 +1209,7 @@ qemuNbdkitProcessStart(qemuNbdkitProcess *proc, goto error; } =20 - if (virTimeBackOffStart(&timebackoff, 1, 1000) < 0) - goto error; + virTimeBackOffStart(&timebackoff, 1, 1000); =20 while (virTimeBackOffWait(&timebackoff)) { if (virFileExists(proc->socketfile)) { diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 5926acf7ad..43df1b4865 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -662,7 +662,7 @@ qemuProcessHandleStop(qemuMonitor *mon G_GNUC_UNUSED, detail); =20 if (vm->job->current) - ignore_value(virTimeMillisNow(&vm->job->current->stopped)); + virTimeMillisNow(&vm->job->current->stopped); =20 if (priv->signalStop) virDomainObjBroadcast(vm); @@ -1869,7 +1869,7 @@ qemuConnectMonitor(virQEMUDriver *driver, return -1; } =20 - ignore_value(virTimeMillisNow(&priv->monStart)); + virTimeMillisNow(&priv->monStart); =20 mon =3D qemuMonitorOpen(vm, priv->monConfig, @@ -2832,8 +2832,7 @@ qemuProcessStartManagedPRDaemon(virDomainObj *vm) goto cleanup; } =20 - if (virTimeBackOffStart(&timebackoff, 1, timeout) < 0) - goto cleanup; + virTimeBackOffStart(&timebackoff, 1, timeout); while (virTimeBackOffWait(&timebackoff)) { char errbuf[1024] =3D { 0 }; =20 @@ -3187,7 +3186,7 @@ int qemuProcessStopCPUs(virQEMUDriver *driver, ignore_value(qemuInterfaceStopDevices(vm->def)); =20 if (vm->job->current) - ignore_value(virTimeMillisNow(&vm->job->current->stopped)); + virTimeMillisNow(&vm->job->current->stopped); =20 /* The STOP event handler will change the domain state with the reason * saved in priv->pausedReason and it will also emit corresponding dom= ain diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index bf0c6bcb0d..c5e6e6c41c 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -969,8 +969,7 @@ qemuTPMEmulatorStart(virQEMUDriver *driver, goto error; } =20 - if (virTimeBackOffStart(&timebackoff, 1, timeout) < 0) - goto error; + virTimeBackOffStart(&timebackoff, 1, timeout); while (virTimeBackOffWait(&timebackoff)) { char errbuf[1024] =3D { 0 }; =20 diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/stora= ge_backend_iscsi_direct.c index 658a684e83..485416e0bd 100644 --- a/src/storage/storage_backend_iscsi_direct.c +++ b/src/storage/storage_backend_iscsi_direct.c @@ -188,9 +188,7 @@ virISCSIDirectTestUnitReady(struct iscsi_context *iscsi, int ret =3D -1; virTimeBackOffVar timebackoff; =20 - if (virTimeBackOffStart(&timebackoff, 1, - VIR_ISCSI_TEST_UNIT_TIMEOUT) < 0) - goto cleanup; + virTimeBackOffStart(&timebackoff, 1, VIR_ISCSI_TEST_UNIT_TIMEOUT); =20 do { if (!(task =3D iscsi_testunitready_sync(iscsi, lun))) { diff --git a/src/util/virfdstream.c b/src/util/virfdstream.c index 26a1f00316..926ca980e2 100644 --- a/src/util/virfdstream.c +++ b/src/util/virfdstream.c @@ -1213,8 +1213,7 @@ int virFDStreamConnectUNIX(virStreamPtr st, return -1; } =20 - if (virTimeBackOffStart(&timeout, 1, 3*1000 /* ms */) < 0) - return -1; + virTimeBackOffStart(&timeout, 1, 3*1000 /* ms */); while (virTimeBackOffWait(&timeout)) { ret =3D connect(fd, (struct sockaddr *)&sa, sizeof(sa)); if (ret =3D=3D 0) diff --git a/src/util/virhostuptime.c b/src/util/virhostuptime.c index 2467ea51b0..323e275483 100644 --- a/src/util/virhostuptime.c +++ b/src/util/virhostuptime.c @@ -51,8 +51,7 @@ virHostGetBootTimeProcfs(unsigned long long *btime) g_autofree char *buf =3D NULL; char *tmp; =20 - if (virTimeMillisNow(&now) < 0) - return -errno; + virTimeMillisNow(&now); =20 /* 1KiB limit is more than enough. */ if (virFileReadAll(UPTIME_FILE, 1024, &buf) < 0) diff --git a/src/util/virtime.c b/src/util/virtime.c index baf4ce5db7..3d62494109 100644 --- a/src/util/virtime.c +++ b/src/util/virtime.c @@ -49,13 +49,10 @@ VIR_LOG_INIT("util.time"); * * Retrieves the current system time, in milliseconds since the * epoch - * - * Returns 0 on success, -1 on error with errno set */ -int virTimeMillisNowRaw(unsigned long long *now) +void virTimeMillisNowRaw(unsigned long long *now) { *now =3D g_get_real_time() / 1000; - return 0; } =20 =20 @@ -65,19 +62,13 @@ int virTimeMillisNowRaw(unsigned long long *now) * * Retrieves the current time, in broken-down field format. * The time is always in UTC. - * - * Returns 0 on success, -1 on error with errno set */ -int virTimeFieldsNowRaw(struct tm *fields) +void virTimeFieldsNowRaw(struct tm *fields) { unsigned long long now; =20 - if (virTimeMillisNowRaw(&now) < 0) - return -1; - + virTimeMillisNowRaw(&now); virTimeFieldsThen(now, fields); - - return 0; } =20 =20 @@ -163,8 +154,7 @@ int virTimeStringNowRaw(char *buf) { unsigned long long now; =20 - if (virTimeMillisNowRaw(&now) < 0) - return -1; + virTimeMillisNowRaw(&now); =20 return virTimeStringThenRaw(now, buf); } @@ -208,17 +198,10 @@ int virTimeStringThenRaw(unsigned long long when, cha= r *buf) * * Retrieves the current system time, in milliseconds since the * epoch - * - * Returns 0 on success, -1 on error with error reported */ -int virTimeMillisNow(unsigned long long *now) +void virTimeMillisNow(unsigned long long *now) { - if (virTimeMillisNowRaw(now) < 0) { - virReportSystemError(errno, "%s", - _("Unable to get current time")); - return -1; - } - return 0; + virTimeMillisNowRaw(now); } =20 =20 @@ -228,18 +211,13 @@ int virTimeMillisNow(unsigned long long *now) * * Retrieves the current time, in broken-down field format. * The time is always in UTC. - * - * Returns 0 on success, -1 on error with errno reported */ -int virTimeFieldsNow(struct tm *fields) +void virTimeFieldsNow(struct tm *fields) { unsigned long long now; =20 - if (virTimeMillisNow(&now) < 0) - return -1; - + virTimeMillisNow(&now); virTimeFieldsThen(now, fields); - return 0; } =20 =20 @@ -327,19 +305,15 @@ virTimeLocalOffsetFromUTC(long *offset) * @timeout: Timeout (milliseconds). * * Initialize the timeout variable @var and start the timer running. - * - * Returns 0 on success, -1 on error and raises a libvirt error. */ -int +void virTimeBackOffStart(virTimeBackOffVar *var, unsigned long long first, unsigned long long timeout) { - if (virTimeMillisNow(&var->start_t) < 0) - return -1; + virTimeMillisNow(&var->start_t); =20 var->next =3D first; var->limit_t =3D var->start_t + timeout; - return 0; } =20 =20 @@ -379,7 +353,7 @@ virTimeBackOffWait(virTimeBackOffVar *var) { unsigned long long next, t =3D 0; =20 - ignore_value(virTimeMillisNowRaw(&t)); + virTimeMillisNowRaw(&t); =20 VIR_DEBUG("t=3D%llu, limit=3D%llu", t, var->limit_t); =20 diff --git a/src/util/virtime.h b/src/util/virtime.h index d4fba4aff5..19604f2b55 100644 --- a/src/util/virtime.h +++ b/src/util/virtime.h @@ -39,10 +39,6 @@ void virTimeFieldsThen(unsigned long long when, struct t= m *fields) =20 /* These APIs are async signal safe and return -1, setting * errno on failure */ -int virTimeMillisNowRaw(unsigned long long *now) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; -int virTimeFieldsNowRaw(struct tm *fields) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; int virTimeStringNowRaw(char *buf) ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; int virTimeStringThenRaw(unsigned long long when, char *buf) @@ -51,10 +47,6 @@ int virTimeStringThenRaw(unsigned long long when, char *= buf) /* These APIs are *not* async signal safe and return -1, * raising a libvirt error on failure */ -int virTimeMillisNow(unsigned long long *now) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; -int virTimeFieldsNow(struct tm *fields) - ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT; char *virTimeStringNow(void); char *virTimeStringThen(unsigned long long when); =20 @@ -67,7 +59,11 @@ typedef struct { unsigned long long limit_t; } virTimeBackOffVar; =20 -int virTimeBackOffStart(virTimeBackOffVar *var, +void virTimeBackOffStart(virTimeBackOffVar *var, unsigned long long first, unsigned long long timeo= ut); =20 bool virTimeBackOffWait(virTimeBackOffVar *var); +void virTimeMillisNowRaw(unsigned long long *now); +void virTimeFieldsNowRaw(struct tm *fields); +void virTimeMillisNow(unsigned long long *now); +void virTimeFieldsNow(struct tm *fields); diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index c7ceec2339..93f0e1bbb4 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -3320,7 +3320,7 @@ vzDomainMigrateConfirm3Params(virDomainPtr domain G_G= NUC_UNUSED, return 0; } =20 -static int +static void vzDomainGetJobInfoImpl(virDomainObj *dom, virDomainJobInfoPtr info) { struct vzDomObj *privdom =3D dom->privateData; @@ -3329,18 +3329,15 @@ vzDomainGetJobInfoImpl(virDomainObj *dom, virDomain= JobInfoPtr info) memset(info, 0, sizeof(*info)); =20 if (!job->active || !job->hasProgress) - return 0; + return; =20 - if (vzDomainJobUpdateTime(job) < 0) - return -1; + vzDomainJobUpdateTime(job); =20 info->type =3D VIR_DOMAIN_JOB_UNBOUNDED; info->dataTotal =3D 100; info->dataProcessed =3D job->progress; info->dataRemaining =3D 100 - job->progress; info->timeElapsed =3D job->elapsed; - - return 0; } =20 static int @@ -3355,7 +3352,8 @@ vzDomainGetJobInfo(virDomainPtr domain, virDomainJobI= nfoPtr info) if (virDomainGetJobInfoEnsureACL(domain->conn, dom->def) < 0) goto cleanup; =20 - ret =3D vzDomainGetJobInfoImpl(dom, info); + vzDomainGetJobInfoImpl(dom, info); + ret =3D 0; =20 cleanup: virDomainObjEndAPI(&dom); @@ -3416,8 +3414,7 @@ vzDomainGetJobStats(virDomainPtr domain, if (virDomainGetJobStatsEnsureACL(domain->conn, dom->def) < 0) goto cleanup; =20 - if (vzDomainGetJobInfoImpl(dom, &info) < 0) - goto cleanup; + vzDomainGetJobInfoImpl(dom, &info); =20 if (info.type =3D=3D VIR_DOMAIN_JOB_NONE) { *type =3D VIR_DOMAIN_JOB_NONE; diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c index 7c08d0f88b..bbcffa3148 100644 --- a/src/vz/vz_utils.c +++ b/src/vz/vz_utils.c @@ -584,8 +584,7 @@ vzDomainObjBeginJob(virDomainObj *dom) unsigned long long now; unsigned long long then; =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); then =3D now + VZ_JOB_WAIT_TIME; =20 while (pdom->job.active) { @@ -593,8 +592,7 @@ vzDomainObjBeginJob(virDomainObj *dom) goto error; } =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); =20 pdom->job.active =3D true; pdom->job.started =3D now; @@ -623,23 +621,21 @@ vzDomainObjEndJob(virDomainObj *dom) virCondSignal(&pdom->job.cond); } =20 -int +void vzDomainJobUpdateTime(struct _vzDomainJobObj *job) { unsigned long long now; =20 if (!job->started) - return 0; + return; =20 - if (virTimeMillisNow(&now) < 0) - return -1; + virTimeMillisNow(&now); =20 if (now < job->started) { VIR_WARN("Async job starts in the future"); job->started =3D 0; - return 0; + return; } =20 job->elapsed =3D now - job->started; - return 0; } diff --git a/src/vz/vz_utils.h b/src/vz/vz_utils.h index 7a797953a5..6da4e8c998 100644 --- a/src/vz/vz_utils.h +++ b/src/vz/vz_utils.h @@ -149,5 +149,5 @@ int vzDomainObjBeginJob(virDomainObj *dom); void vzDomainObjEndJob(virDomainObj *dom); -int +void vzDomainJobUpdateTime(struct _vzDomainJobObj *job); diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index 58d5a4ab57..778a96856f 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -1917,10 +1917,8 @@ virshBlockJobWait(virshBlockJobWaitData *data) sigaction(SIGINT, &sig_action, &old_sig_action); #endif /* !WIN32 */ =20 - if (data->timeout && virTimeMillisNow(&start) < 0) { - vshSaveLibvirtError(); - goto cleanup; - } + if (data->timeout) + virTimeMillisNow(&start); =20 last.cur =3D last.end =3D 0; =20 @@ -1969,10 +1967,8 @@ virshBlockJobWait(virshBlockJobWaitData *data) info.end); last =3D info; =20 - if (data->timeout && virTimeMillisNow(&curr) < 0) { - vshSaveLibvirtError(); - goto cleanup; - } + if (data->timeout) + virTimeMillisNow(&curr); =20 if (intCaught || (data->timeout && (curr - start > data->timeout))= ) { if (virDomainBlockJobAbort(data->dom, data->dev, abort_flags) = < 0) { --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org