qemu_rearm_alarm_timer: do not call rearm if the next deadline is INT64_MAX
qemu_rearm_alarm_timer partially duplicates the code in qemu_next_alarm_deadline to figure out if it needs to rearm the timer. If it calls qemu_next_alarm_deadline, it always rearms the timer even if the next deadline is INT64_MAX. This patch simplifies the behavior of qemu_rearm_alarm_timer and removes the duplicated code, always calling qemu_next_alarm_deadline and only rearming the timer if the deadline is less than INT64_MAX. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reviewed-by: Stefan Weil <sw@weilnetz.de> Tested-by: Andreas Färber <andreas.faerber@web.de> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
82e5d46414
commit
8227421e04
10
qemu-timer.c
10
qemu-timer.c
@ -112,14 +112,10 @@ static int64_t qemu_next_alarm_deadline(void)
|
||||
|
||||
static void qemu_rearm_alarm_timer(struct qemu_alarm_timer *t)
|
||||
{
|
||||
int64_t nearest_delta_ns;
|
||||
if (!rt_clock->active_timers &&
|
||||
!vm_clock->active_timers &&
|
||||
!host_clock->active_timers) {
|
||||
return;
|
||||
int64_t nearest_delta_ns = qemu_next_alarm_deadline();
|
||||
if (nearest_delta_ns < INT64_MAX) {
|
||||
t->rearm(t, nearest_delta_ns);
|
||||
}
|
||||
nearest_delta_ns = qemu_next_alarm_deadline();
|
||||
t->rearm(t, nearest_delta_ns);
|
||||
}
|
||||
|
||||
/* TODO: MIN_TIMER_REARM_NS should be optimized */
|
||||
|
Loading…
Reference in New Issue
Block a user