From: Greg KH <greg@kroah.com>
To: Sasha Levin <sashal@kernel.org>
Cc: linux-kernel@vger.kernel.org, yu.c.chen@intel.com,
stable-commits@vger.kernel.org
Subject: Re: Patch "x86/pm: Introduce quirk framework to save/restore extra MSR registers around suspend/resume" has been added to the 4.4-stable tree
Date: Wed, 28 Aug 2019 10:43:51 +0200 [thread overview]
Message-ID: <20190828084351.GC29927@kroah.com> (raw)
In-Reply-To: <20190828041240.12F5221883@mail.kernel.org>
On Wed, Aug 28, 2019 at 12:12:39AM -0400, Sasha Levin wrote:
> This is a note to let you know that I've just added the patch titled
>
> x86/pm: Introduce quirk framework to save/restore extra MSR registers around suspend/resume
>
> to the 4.4-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>
> The filename of the patch is:
> x86-pm-introduce-quirk-framework-to-save-restore-ext.patch
> and it can be found in the queue-4.4 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@vger.kernel.org> know about it.
>
>
>
> commit d63273440aa0fdebc30d0c931f15f79beb213134
> Author: Chen Yu <yu.c.chen@intel.com>
> Date: Wed Nov 25 01:03:41 2015 +0800
>
> x86/pm: Introduce quirk framework to save/restore extra MSR registers around suspend/resume
>
> A bug was reported that on certain Broadwell platforms, after
> resuming from S3, the CPU is running at an anomalously low
> speed.
>
> It turns out that the BIOS has modified the value of the
> THERM_CONTROL register during S3, and changed it from 0 to 0x10,
> thus enabled clock modulation(bit4), but with undefined CPU Duty
> Cycle(bit1:3) - which causes the problem.
>
> Here is a simple scenario to reproduce the issue:
>
> 1. Boot up the system
> 2. Get MSR 0x19a, it should be 0
> 3. Put the system into sleep, then wake it up
> 4. Get MSR 0x19a, it shows 0x10, while it should be 0
>
> Although some BIOSen want to change the CPU Duty Cycle during
> S3, in our case we don't want the BIOS to do any modification.
>
> Fix this issue by introducing a more generic x86 framework to
> save/restore specified MSR registers(THERM_CONTROL in this case)
> for suspend/resume. This allows us to fix similar bugs in a much
> simpler way in the future.
>
> When the kernel wants to protect certain MSRs during suspending,
> we simply add a quirk entry in msr_save_dmi_table, and customize
> the 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 suspend,
> the MSRs indicated by these IDs will be restored to their
> original, pre-suspend values.
>
> Since both 64-bit and 32-bit kernels are affected, this patch
> covers the common 64/32-bit suspend/resume 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.
>
> Reported-and-tested-by: Marcin Kaszewski <marcin.kaszewski@intel.com>
> Signed-off-by: Chen Yu <yu.c.chen@intel.com>
> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Acked-by: Pavel Machek <pavel@ucw.cz>
> Cc: Andy Lutomirski <luto@amacapital.net>
> Cc: Borislav Petkov <bp@alien8.de>
> Cc: Brian Gerst <brgerst@gmail.com>
> Cc: Denys Vlasenko <dvlasenk@redhat.com>
> Cc: H. Peter Anvin <hpa@zytor.com>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: bp@suse.de
> Cc: len.brown@intel.com
> Cc: linux@horizon.com
> Cc: luto@kernel.org
> Cc: rjw@rjwysocki.net
> Link: http://lkml.kernel.org/r/c9abdcbc173dd2f57e8990e304376f19287e92ba.1448382971.git.yu.c.chen@intel.com
> [ More edits to the naming of data structures. ]
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
No git id of the patch in Linus's tree, or your signed-off-by?
Sasha, did your scripts trigger this unintentionally somehow?
thanks,
greg k-h
next parent reply other threads:[~2019-08-28 8:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20190828041240.12F5221883@mail.kernel.org>
2019-08-28 8:43 ` Greg KH [this message]
2019-08-28 9:00 ` Patch "x86/pm: Introduce quirk framework to save/restore extra MSR registers around suspend/resume" has been added to the 4.4-stable tree Yu Chen
2019-08-28 9:11 ` Greg KH
2019-08-28 11:13 ` Sasha Levin
2019-08-28 15:14 ` Greg KH
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=20190828084351.GC29927@kroah.com \
--to=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sashal@kernel.org \
--cc=stable-commits@vger.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.