[RFC PATCH 09/11] powerpc/tm: Do not restore default DSCR
Michael Neuling
mikey at neuling.org
Tue Sep 18 15:41:20 AEST 2018
On Wed, 2018-09-12 at 16:40 -0300, Breno Leitao wrote:
> In the previous TM code, trecheckpoint was being executed in the middle of
> an exception, thus, DSCR was being restored to default kernel DSCR value
> after trecheckpoint was done.
>
> With this current patchset, trecheckpoint is executed just before getting
> to userspace, at ret_from_except_lite, for example. Thus, we do not need to
> set default kernel DSCR value anymore, as we are leaving kernel space. It
> is OK to keep the checkpointed DSCR value into the live SPR, mainly because
> the transaction is doomed and it will fail soon (after RFID),
What if we are going back to a suspended transaction? It will remain live until
userspace does a tresume
> so,
> continuing with the pre-checkpointed DSCR value is what seems correct.
Reading this description suggests this patch isn't really needed. Right?
Mikey
> That said, we must set the DSCR value that will be used in userspace now.
> Current trecheckpoint() function sets it to the pre-checkpointed value
> prior to lines being changed in this patch, so, removing these lines would
> keep the pre-checkpointed values.
>
> Important to say that we do not need to do the same thing with tm_reclaim,
> since it already set the DSCR to the default value, after TRECLAIM is
> called, in the following lines:
>
> /* Load CPU's default DSCR */
> ld r0, PACA_DSCR_DEFAULT(r13)
> mtspr SPRN_DSCR, r0
>
> Signed-off-by: Breno Leitao <leitao at debian.org>
> ---
> arch/powerpc/kernel/tm.S | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/arch/powerpc/kernel/tm.S b/arch/powerpc/kernel/tm.S
> index 6bffbc5affe7..5427eda69846 100644
> --- a/arch/powerpc/kernel/tm.S
> +++ b/arch/powerpc/kernel/tm.S
> @@ -493,10 +493,6 @@ restore_gprs:
> mtlr r0
> ld r2, STK_GOT(r1)
>
> - /* Load CPU's default DSCR */
> - ld r0, PACA_DSCR_DEFAULT(r13)
> - mtspr SPRN_DSCR, r0
> -
> blr
>
> /* ****************************************************************** */
More information about the Linuxppc-dev
mailing list