From: Pavel Machek <pavel@ucw.cz>
To: Chen Yu <yu.c.chen@intel.com>
Cc: rjw@rjwysocki.net, tglx@linutronix.de, mingo@redhat.com,
hpa@zytor.com, bp@alien8.de, rui.zhang@intel.com,
linux-pm@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] [v4] x86, suspend: Save/restore extra MSR registers for suspend
Date: Thu, 17 Sep 2015 07:30:04 +0200 [thread overview]
Message-ID: <20150917053004.GB6665@amd> (raw)
In-Reply-To: <1440645507-17768-1-git-send-email-yu.c.chen@intel.com>
On Thu 2015-08-27 11:18:27, Chen Yu wrote:
> A bug is reported(https://bugzilla.redhat.com/show_bug.cgi?id=1227208)
> that, after resumed from S3, CPU is running at a low speed.
> After investigation, it is found that, BIOS has modified the value
> of THERM_CONTROL register during S3, and changes it from 0 to 0x10,
> since value of 0x10 means CPU can only get 25% of the Duty Cycle,
> this triggers the problem.
>
> Here is a simple scenario to reproduce the issue:
> 1.Boot up the system
> 2.Get MSR with address 0x19a, it should be 0
> 3.Put the system into sleep, then wake it up
> 4.Get MSR with address 0x19a, it should be 0(actually it shows 0x10)
>
> Although this is a BIOS issue, it would be more robust for linux to deal
> with this situation. This patch fixes this issue by introducing a framework
> to save/restore specified MSR registers(THERM_CONTROL in this case)
> for suspend/resume.
>
> When user encounters a problematic platform and needs to protect the
> MSRs during suspending, he can simply add a quirk entry in
> msr_save_dmi_table, and customizes MSR registers inside the quirk
> callback, for example:
>
> u32 msr_id_need_to_save[] = {MSR_ID0, MSR_ID1, MSR_ID2...};
>
> and the quirk mechanism ensures that, once resumed from suspended,
> the MSRs indicated by these IDs will be restored to their original values
> before suspended.
>
> Since both 64/32-bit kernels are affected, this patch covers 64/32-bit
> common code path. And because the MSRs specified by the user might not
> be available or readable in any situation, we use rdmsrl_safe to safely
> save these MSRs.
>
> Tested-by: Marcin Kaszewski <marcin.kaszewski@intel.com>
> Signed-off-by: Chen Yu <yu.c.chen@intel.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2015-09-17 5:30 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-27 3:18 [PATCH] [v4] x86, suspend: Save/restore extra MSR registers for suspend Chen Yu
2015-09-17 5:30 ` Pavel Machek [this message]
2015-10-09 9:39 ` Chen, Yu C
2015-10-09 18:55 ` Doug Smythies
2015-10-09 18:55 ` Doug Smythies
2015-10-11 2:26 ` Chen, Yu C
2015-10-11 15:46 ` Doug Smythies
2015-10-11 15:46 ` Doug Smythies
2015-11-01 16:49 ` Chen, Yu C
2015-11-06 15:33 ` Doug Smythies
2015-11-06 15:33 ` Doug Smythies
2015-11-12 9:42 ` Chen, Yu C
2015-11-21 16:45 ` Doug Smythies
2015-11-21 16:45 ` Doug Smythies
2015-11-27 3:28 ` Doug Smythies
2015-11-27 3:28 ` Doug Smythies
2015-11-27 6:01 ` Yu Chen
2015-10-09 21:50 ` Rafael J. Wysocki
2015-10-11 2:43 ` Chen, Yu C
2015-10-11 2:43 ` Chen, Yu C
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=20150917053004.GB6665@amd \
--to=pavel@ucw.cz \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=rui.zhang@intel.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yu.c.chen@intel.com \
/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.