Re: TSC not updating after resume: Bug or Feature?

From: Rafael J. Wysocki
Date: Tue Dec 23 2008 - 09:15:39 EST


On Tuesday, 23 of December 2008, Thomas Gleixner wrote:
> On Tue, 23 Dec 2008, Rafael J. Wysocki wrote:
> > > Care to explain ?
> >
> > Well, the fact that in the resume code path the clocksource is only updated as
> > a result of executing pci_set_power_state() is worrisome. I would be more
> > reliable to update it directly at one point.
>
> Hmm. We reactivate the clock sources from timekeeping resume():
>
> clocksource_resume();
>
> How is this related to pci_set_power_state() ?

>From the original report:

"I am using ftrace to get a detailed timing analysis of the resume process
on the OLPC XO laptop and am seeing that when we start running again, the
system timestamep is not being updated for several (hundreds of) thousands
of cycles (~2000 ftrace entries). From following the ftrace, what is
happening is that the clocksource is not updated until we run the cpu_idle()
thread due to an explicit scheduling operation in the resume path that occurs
via call to msleep from pci_set_power_state()."

That's what I was referring to.

Thanks,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/