[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/5] mc146818rtc: properly count the time for th
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 3/5] mc146818rtc: properly count the time for the next interrupt |
Date: |
Wed, 3 May 2017 17:32:27 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 12/04/2017 11:51, address@hidden wrote:
> +#ifdef TARGET_I386
> + /*
> + * if more than period clocks were passed, i.e, the timer
> interrupt
> + * has been lost, we should catch up the time.
> + */
> + if (s->lost_tick_policy == LOST_TICK_POLICY_SLEW &&
> + (lost_clock / period)) {
> + int lost_interrupt = lost_clock / period;
> +
> + s->irq_coalesced += lost_interrupt;
> + lost_clock -= lost_interrupt * period;
> + if (lost_interrupt) {
> + DPRINTF_C("cmos: compensate %d interrupts, coalesced
> irqs "
> + "increased to %d\n", lost_interrupt,
> + s->irq_coalesced);
> + rtc_coalesced_timer_update(s);
> + }
I think you should merge these two patches, since both of them
essentially update the number of coalesced ticks and then split it
between s->irq_coalesced and lost_clock.
Paolo
> + } else
> +#endif
> + /*
> + * no way to compensate the interrupt if LOST_TICK_POLICY_SLEW
> + * is not used, we should make the time progress anyway.
> + */
> + lost_clock = MIN(lost_clock, period);
> + assert(lost_clock >= 0);
> + }
> +
- Re: [Qemu-devel] [PATCH 3/5] mc146818rtc: properly count the time for the next interrupt,
Paolo Bonzini <=