From: Chen Yu <yu.c.chen@intel.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>,
"Rafael J. Wysock" <rjw@rjwysocki.net>,
Linux PM list <linux-pm@vger.kernel.org>,
Linux Kernel list <linux-kernel@vger.kernel.org>,
"Stable # 3 . 17+" <stable@vger.kernel.org>
Subject: Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin array
Date: Tue, 19 Jul 2016 17:07:07 +0800 [thread overview]
Message-ID: <578DEDBB.9030602@intel.com> (raw)
In-Reply-To: <alpine.DEB.2.11.1607191031260.3596@nanos>
Hi Thomas,
On 2016年07月19日 16:36, Thomas Gleixner wrote:
> On Tue, 19 Jul 2016, Chen Yu wrote:
>
>> It is reported the hibernation fails at 2nd attempt, which
>> hangs at hibernate() -> syscore_resume() -> i8237A_resume()
>> -> claim_dma_lock(), because the lock has already been taken.
>> However there is actually no other process would like to grab
>> this lock on that problematic platform.
>>
>> Further investigation shows that, the problem is caused by setting
>> /sys/power/pm_trace to 1 before the 1st hibernation, since once
>> pm_trace is enabled, the rtc becomes an unmeaningful value after resumed,
> So why is the RTC value useless if pm_trace is enabled? I really have a hard
> time to understand why pm_trace would affect the sleep time readout from RTC.
>
> Thanks,
>
> tglx
After pm_trace is enabled, during system suspend/hibernate, the hash name of
each devices will be written to rtc, so the rtc value depends on what
we write in last suspend
round, thus pm_trace can be used for diagnose which device failed to
suspend(eg, the suspending
on this device hang the system, we reboot the system , and check rtc
hash value).
In our case, after first hibernate/resume round, we found our current
system time
is at 2117, so syscore_resume -> timekeeping_resume :
__timekeeping_inject_sleeptime(tk, &ts_delta)
would inject a quite large delta : 2117 - 2017 year, thus the
sleep_time_bin is overflow.
thanks,
Yu
next prev parent reply other threads:[~2016-07-19 8:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-19 4:51 [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin array Chen Yu
2016-07-19 8:36 ` Thomas Gleixner
2016-07-19 9:07 ` Chen Yu [this message]
2016-07-19 10:40 ` Thomas Gleixner
2016-07-20 11:06 ` Chen Yu
2016-07-20 12:59 ` Rafael J. Wysocki
2016-07-20 16:59 ` Chen, Yu C
2016-07-29 9:50 ` Chen Yu
2016-07-29 12:59 ` Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=578DEDBB.9030602@intel.com \
--to=yu.c.chen@intel.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=stable@vger.kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.