On 04/05/2017 04:54, Xiao Guangrong wrote: >>> >>> + /* >>> + * 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_clo / 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. > > I thought these two patches fix two different issues, one for clock > lost for coalesced-irq and another for period reconfiguration. Your > suggestion sounds reasonable indeed, will merged them in the next > version. :) Yunfang's patch in turn has two parts, one that is only for SLEW and one that is not. You can keep the first separate, and merge the second with yours. Paolo