qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anton Blanchard <anton@samba.org>
To: Alexey Kardashevskiy <aik@ozlabs.ru>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Paul Mackerras <paulus@samba.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Michael Neuling <mikey@neuling.org>,
	David Gibson <david@gibson.dropbear.id.au>,
	Alexander Graf <agraf@suse.de>
Cc: qemu-ppc@nongnu.org, linuxppc-dev@lists.ozlabs.org,
	qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH] powerpc: Clear user CPU feature bits if TM is disabled at runtime
Date: Mon, 4 Apr 2016 21:11:12 +1000	[thread overview]
Message-ID: <20160404211112.66b0756f@kryten> (raw)
In-Reply-To: <20160404204346.1cf44df8@kryten>

In check_cpu_pa_features() we check a number of bits in the
ibm,pa-features array and set and clear CPU features based on what
we find. One of these bits is CPU_FTR_TM, the transactional memory
feature bit.

If this does disable TM at runtime, then we need to tell userspace
about it by clearing the user CPU feature bits.

Without this patch userspace processes will think they can execute
TM instructions and get killed when they try.

Signed-off-by: Anton Blanchard <anton@samba.org>
Cc: stable@vger.kernel.org
---

Michael I've added stable here because I'm seeing this on a number
of distros and would like to get it backported, but I'll leave it up
to you if it should go there.

diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index f98be83..98c6c86 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -822,4 +822,18 @@ static int __init disable_hardlockup_detector(void)
 	return 0;
 }
 early_initcall(disable_hardlockup_detector);
+
+static int __init update_cpu_user_features(void)
+{
+	/*
+	 * Firmware might have disabled TM by clearing the relevant
+	 * bit in the ibm,pa-features array. In this case we need to
+	 * tell userspace.
+	 */
+	if (!cpu_has_feature(CPU_FTR_TM))
+		cur_cpu_spec->cpu_user_features2 &= ~(PPC_FEATURE2_HTM|PPC_FEATURE2_HTM_NOSC);
+
+	return 0;
+}
+early_initcall(update_cpu_user_features);
 #endif

  parent reply	other threads:[~2016-04-04 11:11 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20160404164457.539a55f0@kryten>
     [not found] ` <57021123.6050506@ozlabs.ru>
2016-04-04 10:43   ` [Qemu-devel] PR KVM and TM issues Anton Blanchard
2016-04-04 11:09     ` [Qemu-devel] [PATCH] spapr: Don't set the TM ibm, pa-features bit in PR KVM mode Anton Blanchard
2016-04-04 11:13       ` Alexander Graf
2016-04-30  0:48         ` [Qemu-devel] [PATCH v2] " Anton Blanchard
2016-05-02  9:36           ` haris iqbal
2016-05-27  4:52           ` David Gibson
2016-06-07 12:28           ` [Qemu-devel] [PATCH 1/2] Add PowerPC AT_HWCAP2 definitions Anton Blanchard
2016-06-07 12:32             ` [Qemu-devel] [PATCH 2/2] spapr: Better handling of ibm, pa-features TM bit Anton Blanchard
2016-06-08  2:26               ` David Gibson
2016-07-05  5:19                 ` [Qemu-devel] [PATCH 0/3] Rework " Sam Bobroff
2016-07-05  5:19                   ` [Qemu-devel] [PATCH 1/3] spapr: Disable ibm, pa-features HTM bit Sam Bobroff
2016-07-05  5:51                     ` David Gibson
2016-07-05  5:19                   ` [Qemu-devel] [PATCH 2/3] Add KVM_CAP_PPC_HTM to linux/kvm.h Sam Bobroff
2016-07-05  6:05                     ` David Gibson
2016-07-06  4:41                       ` Sam Bobroff
2016-07-06  5:09                         ` David Gibson
2016-07-05  5:19                   ` [Qemu-devel] [PATCH 3/3] spapr: Set ibm, pa-features HTM from KVM_CAP_PPC_HTM Sam Bobroff
2016-07-05  6:52                     ` David Gibson
2016-07-06  5:35                   ` [Qemu-devel] [PATCH v2 0/3] Rework spapr: Better handling of ibm, pa-features TM bit Sam Bobroff
2016-07-06  5:35                     ` [Qemu-devel] [PATCH v2 1/3] spapr: Disable ibm, pa-features HTM bit Sam Bobroff
2016-07-07  4:38                       ` David Gibson
2016-07-06  5:35                     ` [Qemu-devel] [PATCH v2 2/3] Add KVM_CAP_PPC_HTM to linux/kvm.h Sam Bobroff
2016-07-07  4:38                       ` David Gibson
2016-07-06  5:35                     ` [Qemu-devel] [PATCH v2 3/3] spapr: Set ibm, pa-features HTM from KVM_CAP_PPC_HTM Sam Bobroff
2016-07-07  4:39                       ` David Gibson
2016-06-08  2:19             ` [Qemu-devel] [PATCH 1/2] Add PowerPC AT_HWCAP2 definitions David Gibson
2016-04-05  2:12       ` [Qemu-devel] [PATCH] spapr: Don't set the TM ibm, pa-features bit in PR KVM mode Paul Mackerras
2016-04-05  4:09         ` David Gibson
2016-04-05  7:33           ` Alexey Kardashevskiy
2016-04-04 11:11     ` Anton Blanchard [this message]
2016-04-05  0:52       ` [Qemu-devel] [PATCH] powerpc: Clear user CPU feature bits if TM is disabled at runtime David Gibson
2016-04-05  9:35       ` [Qemu-devel] " Michael Ellerman
2016-04-05  9:56         ` Benjamin Herrenschmidt
2016-04-05 22:40           ` Michael Ellerman
2016-04-15  2:06       ` [Qemu-devel] [PATCH 1/3] powerpc: scan_features() updates incorrect bits Anton Blanchard
2016-04-15 14:27         ` [Qemu-devel] [1/3] " Michael Ellerman
2016-04-18  4:40           ` Michael Ellerman
2016-04-18  4:16         ` Michael Ellerman
2016-04-18 10:36         ` [Qemu-devel] [PATCH v2 1/3] powerpc: scan_features() updates incorrect bits for REAL_LE Michael Ellerman
2016-04-19 10:09           ` [Qemu-devel] [v2, " Michael Ellerman
2016-04-15  2:07       ` [Qemu-devel] [PATCH 2/3] powerpc: Update cpu_user_features2 in scan_features() Anton Blanchard
2016-04-19 10:09         ` [Qemu-devel] [2/3] " Michael Ellerman
2016-04-15  2:08       ` [Qemu-devel] [PATCH 3/3] powerpc: Update TM user feature bits " Anton Blanchard
2016-04-19 10:09         ` [Qemu-devel] [3/3] " Michael Ellerman

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=20160404211112.66b0756f@kryten \
    --to=anton@samba.org \
    --cc=agraf@suse.de \
    --cc=aik@ozlabs.ru \
    --cc=benh@kernel.crashing.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mikey@neuling.org \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).