diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-12-20 23:44:54 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-12-20 23:44:54 -0800 |
| commit | 02ea5fbed297ff7cff857648edf3feee3870da07 (patch) | |
| tree | b1c52e3edd8e478c6347e226db873bd39bda42f9 | |
| parent | 2af3bd09b01805918b7860553b72c848a7b9003b (diff) | |
| parent | fa50fc268b8e891db927235c5ef18d439c049c7a (diff) | |
Merge "time: sched_clock: record cycle count in suspend and resume"
| -rw-r--r-- | kernel/time/sched_clock.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/time/sched_clock.c b/kernel/time/sched_clock.c index 0637823aa5a6..699aff70bbfa 100644 --- a/kernel/time/sched_clock.c +++ b/kernel/time/sched_clock.c @@ -71,6 +71,10 @@ struct clock_data { static struct hrtimer sched_clock_timer; static int irqtime = -1; static int initialized; +static u64 suspend_ns; +static u64 suspend_cycles; +static u64 resume_cycles; + core_param(irqtime, irqtime, int, 0400); @@ -282,6 +286,11 @@ static int sched_clock_suspend(void) struct clock_read_data *rd = &cd.read_data[0]; update_sched_clock(); + + suspend_ns = rd->epoch_ns; + suspend_cycles = rd->epoch_cyc; + pr_info("suspend ns:%17llu suspend cycles:%17llu\n", + rd->epoch_ns, rd->epoch_cyc); hrtimer_cancel(&sched_clock_timer); rd->read_sched_clock = suspended_sched_clock_read; @@ -293,6 +302,8 @@ static void sched_clock_resume(void) struct clock_read_data *rd = &cd.read_data[0]; rd->epoch_cyc = cd.actual_read_sched_clock(); + resume_cycles = rd->epoch_cyc; + pr_info("resume cycles:%17llu\n", rd->epoch_cyc); hrtimer_start(&sched_clock_timer, cd.wrap_kt, HRTIMER_MODE_REL); rd->read_sched_clock = cd.actual_read_sched_clock; } |
