From: Michael Neuling <mikey@neuling.org>
To: Breno Leitao <leitao@debian.org>, linuxppc-dev@lists.ozlabs.org
Cc: paulus@ozlabs.org, gromero@linux.vnet.ibm.com,
mpe@ellerman.id.au, ldufour@linux.vnet.ibm.com
Subject: Re: [RFC PATCH 10/11] powerpc/tm: Set failure summary
Date: Tue, 18 Sep 2018 15:50:04 +1000 [thread overview]
Message-ID: <7647a2d788ceb979e6de8bb8bb988f4d37fb1877.camel@neuling.org> (raw)
In-Reply-To: <1536781219-13938-11-git-send-email-leitao@debian.org>
On Wed, 2018-09-12 at 16:40 -0300, Breno Leitao wrote:
> Since the transaction will be doomed with treckpt., the TEXASR[FS]
> should be set, to reflect that the transaction is a failure. This patch
> ensures it before recheckpointing, and remove changes from other places
> that were calling recheckpoint.
TEXASR[FS] should be set by the reclaim. I don't know why you'd need to set=
this
explicitly in process.c. The only case is when the user supplies a bad sign=
al
context, but we should check that in the signals code, not process.c
Hence I think this patch is wrong.
Also, according to the architecture, TEXASR[FS] HAS TO BE SET on trecheckpo=
int
otherwise you'll get a TM Bad Thing. You should say that rather than sugges=
ting
it's because the transaction is doomed. It's illegal to not do it. That's w=
hy we
have this check in arch/powerpc/kernel/tm.S.
/* Do final sanity check on TEXASR to make sure FS is set. Do this
* here before we load up the userspace r1 so any bugs we hit will get
* a call chain */
mfspr r5, SPRN_TEXASR
srdi r5, r5, 16
li r6, (TEXASR_FS)@h
and r6, r6, r5
1: tdeqi r6, 0
EMIT_BUG_ENTRY 1b,__FILE__,__LINE__,0
Mikey
> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
> arch/powerpc/kernel/process.c | 6 ++++++
> arch/powerpc/kernel/signal_32.c | 2 --
> arch/powerpc/kernel/signal_64.c | 2 --
> 3 files changed, 6 insertions(+), 4 deletions(-)
>=20
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.=
c
> index 5cace1b744b1..77725b2e4dc1 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -937,6 +937,12 @@ void tm_recheckpoint(struct thread_struct *thread)
> local_irq_save(flags);
> hard_irq_disable();
> =20
> + /*
> + * Make sure the failure summary is set, since the transaction will be
> + * doomed.
> + */
> + thread->tm_texasr |=3D TEXASR_FS;
> +
> /* The TM SPRs are restored here, so that TEXASR.FS can be set
> * before the trecheckpoint and no explosion occurs.
> */
> diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal=
_32.c
> index 4a1b17409bf3..96956d50538e 100644
> --- a/arch/powerpc/kernel/signal_32.c
> +++ b/arch/powerpc/kernel/signal_32.c
> @@ -851,8 +851,6 @@ static long restore_tm_user_regs(struct pt_regs *regs=
,
> /* Pull in the MSR TM bits from the user context */
> regs->msr =3D (regs->msr & ~MSR_TS_MASK) | (msr_hi & MSR_TS_MASK);
> =20
> - /* Make sure the transaction is marked as failed */
> - current->thread.tm_texasr |=3D TEXASR_FS;
> /* Make sure restore_tm_state will be called */
> set_thread_flag(TIF_RESTORE_TM);
> =20
> diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal=
_64.c
> index 32402aa23a5e..c84501711b14 100644
> --- a/arch/powerpc/kernel/signal_64.c
> +++ b/arch/powerpc/kernel/signal_64.c
> @@ -569,8 +569,6 @@ static long restore_tm_sigcontexts(struct task_struct
> *tsk,
> }
> }
> #endif
> - /* Make sure the transaction is marked as failed */
> - tsk->thread.tm_texasr |=3D TEXASR_FS;
> /* Guarantee that restore_tm_state() will be called */
> set_thread_flag(TIF_RESTORE_TM);
> =20
next prev parent reply other threads:[~2018-09-18 5:50 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-12 19:40 [RFC PATCH 00/11] New TM Model Breno Leitao
2018-09-12 19:40 ` [RFC PATCH 01/11] powerpc/tm: Reclaim transaction on kernel entry Breno Leitao
2018-09-18 1:31 ` Michael Neuling
2018-09-27 20:28 ` Breno Leitao
2018-09-27 20:28 ` Breno Leitao
2018-09-12 19:40 ` [RFC PATCH 02/11] powerpc/tm: Reclaim on unavailable exception Breno Leitao
2018-09-12 19:40 ` [RFC PATCH 03/11] powerpc/tm: Recheckpoint when exiting from kernel Breno Leitao
2018-09-12 19:40 ` [RFC PATCH 04/11] powerpc/tm: Always set TIF_RESTORE_TM on reclaim Breno Leitao
2018-09-12 19:40 ` [RFC PATCH 05/11] powerpc/tm: Function that updates the failure code Breno Leitao
2018-09-17 5:29 ` Michael Neuling
2018-09-18 1:29 ` Michael Neuling
2018-09-27 20:58 ` Breno Leitao
2018-09-28 5:27 ` Michael Neuling
2018-09-18 3:27 ` Michael Neuling
2018-09-12 19:40 ` [RFC PATCH 06/11] powerpc/tm: Refactor the __switch_to_tm code Breno Leitao
2018-09-18 4:04 ` Michael Neuling
2018-09-27 20:48 ` Breno Leitao
2018-09-12 19:40 ` [RFC PATCH 07/11] powerpc/tm: Do not recheckpoint at sigreturn Breno Leitao
2018-09-18 5:32 ` Michael Neuling
2018-09-12 19:40 ` [RFC PATCH 08/11] powerpc/tm: Do not reclaim on ptrace Breno Leitao
2018-09-18 5:36 ` Michael Neuling
2018-09-27 21:03 ` Breno Leitao
2018-09-28 5:36 ` Michael Neuling
2018-09-30 23:51 ` Breno Leitao
2018-10-01 0:34 ` Michael Neuling
2018-09-12 19:40 ` [RFC PATCH 09/11] powerpc/tm: Do not restore default DSCR Breno Leitao
2018-09-18 5:41 ` Michael Neuling
2018-09-27 20:51 ` Breno Leitao
2018-09-28 5:03 ` Michael Neuling
2018-09-12 19:40 ` [RFC PATCH 10/11] powerpc/tm: Set failure summary Breno Leitao
2018-09-18 5:50 ` Michael Neuling [this message]
2018-09-27 20:52 ` Breno Leitao
2018-09-28 5:17 ` Michael Neuling
2018-09-12 19:40 ` [RFC PATCH 11/11] selftests/powerpc: Adapt the test Breno Leitao
2018-09-18 6:36 ` Michael Neuling
2018-09-27 20:57 ` Breno Leitao
2018-09-28 5:25 ` Michael Neuling
2018-10-01 17:50 ` Breno Leitao
2018-09-17 5:25 ` [RFC PATCH 00/11] New TM Model Michael Neuling
2018-09-27 20:13 ` Breno Leitao
2018-09-27 20:13 ` Breno Leitao
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=7647a2d788ceb979e6de8bb8bb988f4d37fb1877.camel@neuling.org \
--to=mikey@neuling.org \
--cc=gromero@linux.vnet.ibm.com \
--cc=ldufour@linux.vnet.ibm.com \
--cc=leitao@debian.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@ozlabs.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).