From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, stable@vger.kernel.org, Juergen Gross <jgross@suse.com>, Thomas Gleixner <tglx@linutronix.de>, Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com Subject: [PATCH 4.9 15/65] x86/xen: Zero MSR_IA32_SPEC_CTRL before suspend Date: Fri, 9 Mar 2018 16:18:15 -0800 [thread overview] Message-ID: <20180310001826.213960392@linuxfoundation.org> (raw) In-Reply-To: <20180310001824.927996722@linuxfoundation.org> 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Juergen Gross <jgross@suse.com> commit 71c208dd54ab971036d83ff6d9837bae4976e623 upstream. Older Xen versions (4.5 and before) might have problems migrating pv guests with MSR_IA32_SPEC_CTRL having a non-zero value. So before suspending zero that MSR and restore it after being resumed. Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Jan Beulich <jbeulich@suse.com> Cc: stable@vger.kernel.org Cc: xen-devel@lists.xenproject.org Cc: boris.ostrovsky@oracle.com Link: https://lkml.kernel.org/r/20180226140818.4849-1-jgross@suse.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- arch/x86/xen/suspend.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) --- a/arch/x86/xen/suspend.c +++ b/arch/x86/xen/suspend.c @@ -1,11 +1,14 @@ #include <linux/types.h> #include <linux/tick.h> +#include <linux/percpu-defs.h> #include <xen/xen.h> #include <xen/interface/xen.h> #include <xen/grant_table.h> #include <xen/events.h> +#include <asm/cpufeatures.h> +#include <asm/msr-index.h> #include <asm/xen/hypercall.h> #include <asm/xen/page.h> #include <asm/fixmap.h> @@ -68,6 +71,8 @@ static void xen_pv_post_suspend(int susp xen_mm_unpin_all(); } +static DEFINE_PER_CPU(u64, spec_ctrl); + void xen_arch_pre_suspend(void) { if (xen_pv_domain()) @@ -84,6 +89,9 @@ void xen_arch_post_suspend(int cancelled static void xen_vcpu_notify_restore(void *data) { + if (xen_pv_domain() && boot_cpu_has(X86_FEATURE_SPEC_CTRL)) + wrmsrl(MSR_IA32_SPEC_CTRL, this_cpu_read(spec_ctrl)); + /* Boot processor notified via generic timekeeping_resume() */ if (smp_processor_id() == 0) return; @@ -93,7 +101,15 @@ static void xen_vcpu_notify_restore(void static void xen_vcpu_notify_suspend(void *data) { + u64 tmp; + tick_suspend_local(); + + if (xen_pv_domain() && boot_cpu_has(X86_FEATURE_SPEC_CTRL)) { + rdmsrl(MSR_IA32_SPEC_CTRL, tmp); + this_cpu_write(spec_ctrl, tmp); + wrmsrl(MSR_IA32_SPEC_CTRL, 0); + } } void xen_arch_resume(void)
WARNING: multiple messages have this Message-ID (diff)
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> To: linux-kernel@vger.kernel.org Cc: Juergen Gross <jgross@suse.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, stable@vger.kernel.org, Jan Beulich <jbeulich@suse.com>, xen-devel@lists.xenproject.org, Thomas Gleixner <tglx@linutronix.de>, boris.ostrovsky@oracle.com Subject: [PATCH 4.9 15/65] x86/xen: Zero MSR_IA32_SPEC_CTRL before suspend Date: Fri, 9 Mar 2018 16:18:15 -0800 [thread overview] Message-ID: <20180310001826.213960392@linuxfoundation.org> (raw) In-Reply-To: <20180310001824.927996722@linuxfoundation.org> 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Juergen Gross <jgross@suse.com> commit 71c208dd54ab971036d83ff6d9837bae4976e623 upstream. Older Xen versions (4.5 and before) might have problems migrating pv guests with MSR_IA32_SPEC_CTRL having a non-zero value. So before suspending zero that MSR and restore it after being resumed. Signed-off-by: Juergen Gross <jgross@suse.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Jan Beulich <jbeulich@suse.com> Cc: stable@vger.kernel.org Cc: xen-devel@lists.xenproject.org Cc: boris.ostrovsky@oracle.com Link: https://lkml.kernel.org/r/20180226140818.4849-1-jgross@suse.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- arch/x86/xen/suspend.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) --- a/arch/x86/xen/suspend.c +++ b/arch/x86/xen/suspend.c @@ -1,11 +1,14 @@ #include <linux/types.h> #include <linux/tick.h> +#include <linux/percpu-defs.h> #include <xen/xen.h> #include <xen/interface/xen.h> #include <xen/grant_table.h> #include <xen/events.h> +#include <asm/cpufeatures.h> +#include <asm/msr-index.h> #include <asm/xen/hypercall.h> #include <asm/xen/page.h> #include <asm/fixmap.h> @@ -68,6 +71,8 @@ static void xen_pv_post_suspend(int susp xen_mm_unpin_all(); } +static DEFINE_PER_CPU(u64, spec_ctrl); + void xen_arch_pre_suspend(void) { if (xen_pv_domain()) @@ -84,6 +89,9 @@ void xen_arch_post_suspend(int cancelled static void xen_vcpu_notify_restore(void *data) { + if (xen_pv_domain() && boot_cpu_has(X86_FEATURE_SPEC_CTRL)) + wrmsrl(MSR_IA32_SPEC_CTRL, this_cpu_read(spec_ctrl)); + /* Boot processor notified via generic timekeeping_resume() */ if (smp_processor_id() == 0) return; @@ -93,7 +101,15 @@ static void xen_vcpu_notify_restore(void static void xen_vcpu_notify_suspend(void *data) { + u64 tmp; + tick_suspend_local(); + + if (xen_pv_domain() && boot_cpu_has(X86_FEATURE_SPEC_CTRL)) { + rdmsrl(MSR_IA32_SPEC_CTRL, tmp); + this_cpu_write(spec_ctrl, tmp); + wrmsrl(MSR_IA32_SPEC_CTRL, 0); + } } void xen_arch_resume(void) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2018-03-10 0:18 UTC|newest] Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-03-10 0:18 [PATCH 4.9 00/65] 4.9.87-stable review Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 01/65] tpm: st33zp24: fix potential buffer overruns caused by bit glitches on the bus Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 02/65] tpm_i2c_infineon: " Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 03/65] tpm_i2c_nuvoton: " Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 04/65] tpm_tis: " Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 05/65] tpm: constify transmit data pointers Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 06/65] tpm_tis_spi: Use DMA-safe memory for SPI transfers Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 07/65] tpm-dev-common: Reject too short writes Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 08/65] ALSA: usb-audio: Add a quirck for B&W PX headphones Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 09/65] ALSA: hda: Add a power_save blacklist Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 10/65] ALSA: hda - Fix pincfg at resume on Lenovo T470 dock Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 11/65] timers: Forward timer base before migrating timers Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 12/65] parisc: Fix ordering of cache and TLB flushes Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 13/65] cpufreq: s3c24xx: Fix broken s3c_cpufreq_init() Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 14/65] dax: fix vma_is_fsdax() helper Greg Kroah-Hartman 2018-03-10 0:18 ` Greg Kroah-Hartman [this message] 2018-03-10 0:18 ` [PATCH 4.9 15/65] x86/xen: Zero MSR_IA32_SPEC_CTRL before suspend Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 16/65] x86/platform/intel-mid: Handle Intel Edison reboot correctly Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 17/65] media: m88ds3103: dont call a non-initalized function Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 18/65] nospec: Allow index argument to have const-qualified type Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 19/65] ARM: mvebu: Fix broken PL310_ERRATA_753970 selects Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 20/65] ARM: kvm: fix building with gcc-8 Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 21/65] KVM: mmu: Fix overlap between public and private memslots Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 22/65] KVM/x86: Remove indirect MSR op calls from SPEC_CTRL Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 23/65] KVM/VMX: Optimize vmx_vcpu_run() and svm_vcpu_run() by marking the RDMSR path as unlikely() Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 24/65] PCI/ASPM: Deal with missing root ports in link state handling Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 25/65] dm io: fix duplicate bio completion due to missing ref count Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 26/65] ARM: dts: LogicPD SOM-LV: Fix I2C1 pinmux Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 27/65] ARM: dts: LogicPD Torpedo: " Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 28/65] x86/mm: Give each mm TLB flush generation a unique ID Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 29/65] x86/speculation: Use Indirect Branch Prediction Barrier in context switch Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 30/65] md: only allow remove_and_add_spares when no sync_thread running Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 31/65] netlink: put module reference if dump start fails Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 32/65] x86/apic/vector: Handle legacy irq data correctly Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 33/65] bridge: check brport attr show in brport_show Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 34/65] fib_semantics: Dont match route with mismatching tclassid Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 35/65] hdlc_ppp: carrier detect ok, dont turn off negotiation Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 36/65] ipv6 sit: work around bogus gcc-8 -Wrestrict warning Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 37/65] net: fix race on decreasing number of TX queues Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 38/65] net: ipv4: dont allow setting net.ipv4.route.min_pmtu below 68 Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 39/65] netlink: ensure to loop over all netns in genlmsg_multicast_allns() Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 40/65] ppp: prevent unregistered channels from connecting to PPP units Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 41/65] udplite: fix partial checksum initialization Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 42/65] sctp: fix dst refcnt leak in sctp_v4_get_dst Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 43/65] mlxsw: spectrum_switchdev: Check success of FDB add operation Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 44/65] net: phy: fix phy_start to consider PHY_IGNORE_INTERRUPT Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 45/65] tcp: Honor the eor bit in tcp_mtu_probe Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 46/65] rxrpc: Fix send in rxrpc_send_data_packet() Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 47/65] tcp_bbr: better deal with suboptimal GSO Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 48/65] sctp: fix dst refcnt leak in sctp_v6_get_dst() Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 49/65] s390/qeth: fix underestimated count of buffer elements Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 50/65] s390/qeth: fix SETIP command handling Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 51/65] s390/qeth: fix overestimated count of buffer elements Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 52/65] s390/qeth: fix IP removal on offline cards Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 53/65] s390/qeth: fix double-free on IP add/remove race Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 54/65] s390/qeth: fix IP address lookup for L3 devices Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 55/65] s390/qeth: fix IPA command submission race Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 56/65] sctp: verify size of a new chunk in _sctp_make_chunk() Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 57/65] net: mpls: Pull common label check into helper Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 58/65] mpls, nospec: Sanitize array index in mpls_label_ok() Greg Kroah-Hartman 2018-03-10 0:18 ` [PATCH 4.9 59/65] bpf: fix wrong exposure of map_flags into fdinfo for lpm Greg Kroah-Hartman 2018-03-10 0:19 ` [PATCH 4.9 60/65] bpf: fix mlock precharge on arraymaps Greg Kroah-Hartman 2018-03-10 0:19 ` [PATCH 4.9 61/65] bpf, x64: implement retpoline for tail call Greg Kroah-Hartman 2018-03-10 0:19 ` [PATCH 4.9 62/65] bpf, arm64: fix out of bounds access in " Greg Kroah-Hartman 2018-03-10 0:19 ` [PATCH 4.9 63/65] bpf: add schedule points in percpu arrays management Greg Kroah-Hartman 2018-03-10 0:19 ` [PATCH 4.9 64/65] bpf, ppc64: fix out of bounds access in tail call Greg Kroah-Hartman 2018-03-10 0:19 ` [PATCH 4.9 65/65] btrfs: preserve i_mode if __btrfs_set_acl() fails Greg Kroah-Hartman 2018-03-10 5:14 ` [PATCH 4.9 00/65] 4.9.87-stable review Shuah Khan 2018-03-10 7:59 ` kernelci.org bot 2018-03-10 15:44 ` Guenter Roeck 2018-03-12 7:02 ` Naresh Kamboju 2018-03-12 9:32 ` Naresh Kamboju 2018-03-12 10:01 ` Naresh Kamboju 2018-03-12 10:26 ` Naresh Kamboju
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=20180310001826.213960392@linuxfoundation.org \ --to=gregkh@linuxfoundation.org \ --cc=boris.ostrovsky@oracle.com \ --cc=jbeulich@suse.com \ --cc=jgross@suse.com \ --cc=linux-kernel@vger.kernel.org \ --cc=stable@vger.kernel.org \ --cc=tglx@linutronix.de \ --cc=xen-devel@lists.xenproject.org \ /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: linkBe 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.