Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1446256

Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin array

From Chen Yu <yu.c.chen@intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin array
Date 2016-07-19 11:00 +0200
Message-ID <rWz2G-1PI-7@gated-at.bofh.it> (permalink)
References <rWv8J-7LS-11@gated-at.bofh.it> <rWyJk-1Ja-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin array Chen Yu <yu.c.chen@intel.com> - 2016-07-19 06:50 +0200
  Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin  array Thomas Gleixner <tglx@linutronix.de> - 2016-07-19 10:40 +0200
    Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin  array Chen Yu <yu.c.chen@intel.com> - 2016-07-19 11:00 +0200
      Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin  array Thomas Gleixner <tglx@linutronix.de> - 2016-07-19 12:50 +0200
        Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin  array Chen Yu <yu.c.chen@intel.com> - 2016-07-20 13:00 +0200
          Re: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin array "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2016-07-20 15:00 +0200
            RE: [PATCH][v2] timekeeping: Fix memory overwrite of sleep_time_bin  array "Chen, Yu C" <yu.c.chen@intel.com> - 2016-07-20 19:00 +0200

csiph-web