qemu-devel
[Top][All Lists]
Advanced

[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);
> +        }
> +



reply via email to

[Prev in Thread] Current Thread [Next in Thread]