From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
To: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>,
linux-kernel@vger.kernel.org
Cc: sparclinux@vger.kernel.org, Andreas Larsson <andreas@gaisler.com>,
Anthony Yznaga <anthony.yznaga@oracle.com>,
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Subject: Re: [PATCH v2 1/1] sparc: fix accurate exception reporting in copy_{from,to}_user for M7
Date: Mon, 01 Sep 2025 01:43:33 +0200 [thread overview]
Message-ID: <240f0f51687dcb146656a47932ec075b0821b605.camel@physik.fu-berlin.de> (raw)
In-Reply-To: <20250828130456.2335-1-kernel@mkarcher.dialup.fu-berlin.de>
Hi Rainer,
On Thu, 2025-08-28 at 15:04 +0200, Michael Karcher wrote:
> Fixes 34060b8fffa7 ("arch/sparc: Add accurate exception reporting in M7memcpy")
> Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
> ---
> arch/sparc/lib/M7memcpy.S | 20 ++++++++++----------
> arch/sparc/lib/Memcpy_utils.S | 9 +++++++++
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/sparc/lib/M7memcpy.S b/arch/sparc/lib/M7memcpy.S
> index cbd42ea7c3f7..99357bfa8e82 100644
> --- a/arch/sparc/lib/M7memcpy.S
> +++ b/arch/sparc/lib/M7memcpy.S
> @@ -696,16 +696,16 @@ FUNC_NAME:
> EX_LD_FP(LOAD(ldd, %o4+40, %f26), memcpy_retl_o2_plus_o5_plus_40)
> faligndata %f24, %f26, %f10
> EX_ST_FP(STORE(std, %f6, %o0+24), memcpy_retl_o2_plus_o5_plus_40)
> - EX_LD_FP(LOAD(ldd, %o4+48, %f28), memcpy_retl_o2_plus_o5_plus_40)
> + EX_LD_FP(LOAD(ldd, %o4+48, %f28), memcpy_retl_o2_plus_o5_plus_32)
> faligndata %f26, %f28, %f12
> - EX_ST_FP(STORE(std, %f8, %o0+32), memcpy_retl_o2_plus_o5_plus_40)
> + EX_ST_FP(STORE(std, %f8, %o0+32), memcpy_retl_o2_plus_o5_plus_32)
> add %o4, 64, %o4
> - EX_LD_FP(LOAD(ldd, %o4-8, %f30), memcpy_retl_o2_plus_o5_plus_40)
> + EX_LD_FP(LOAD(ldd, %o4-8, %f30), memcpy_retl_o2_plus_o5_plus_24)
> faligndata %f28, %f30, %f14
> - EX_ST_FP(STORE(std, %f10, %o0+40), memcpy_retl_o2_plus_o5_plus_40)
> - EX_ST_FP(STORE(std, %f12, %o0+48), memcpy_retl_o2_plus_o5_plus_40)
> + EX_ST_FP(STORE(std, %f10, %o0+40), memcpy_retl_o2_plus_o5_plus_24)
> + EX_ST_FP(STORE(std, %f12, %o0+48), memcpy_retl_o2_plus_o5_plus_16)
> add %o0, 64, %o0
> - EX_ST_FP(STORE(std, %f14, %o0-8), memcpy_retl_o2_plus_o5_plus_40)
> + EX_ST_FP(STORE(std, %f14, %o0-8), memcpy_retl_o2_plus_o5_plus_8)
> fsrc2 %f30, %f14
> bgu,pt %xcc, .Lunalign_sloop
> prefetch [%o4 + (8 * BLOCK_SIZE)], 20
> @@ -728,7 +728,7 @@ FUNC_NAME:
> add %o4, 8, %o4
> faligndata %f0, %f2, %f16
> subcc %o5, 8, %o5
> - EX_ST_FP(STORE(std, %f16, %o0), memcpy_retl_o2_plus_o5)
> + EX_ST_FP(STORE(std, %f16, %o0), memcpy_retl_o2_plus_o5_plus_8)
> fsrc2 %f2, %f0
> bgu,pt %xcc, .Lunalign_by8
> add %o0, 8, %o0
> @@ -772,7 +772,7 @@ FUNC_NAME:
> subcc %o5, 0x20, %o5
> EX_ST(STORE(stx, %o3, %o0 + 0x00), memcpy_retl_o2_plus_o5_plus_32)
> EX_ST(STORE(stx, %g2, %o0 + 0x08), memcpy_retl_o2_plus_o5_plus_24)
> - EX_ST(STORE(stx, %g7, %o0 + 0x10), memcpy_retl_o2_plus_o5_plus_24)
> + EX_ST(STORE(stx, %g7, %o0 + 0x10), memcpy_retl_o2_plus_o5_plus_16)
> EX_ST(STORE(stx, %o4, %o0 + 0x18), memcpy_retl_o2_plus_o5_plus_8)
> bne,pt %xcc, 1b
> add %o0, 0x20, %o0
> @@ -804,12 +804,12 @@ FUNC_NAME:
> brz,pt %o3, 2f
> sub %o2, %o3, %o2
>
> -1: EX_LD(LOAD(ldub, %o1 + 0x00, %g2), memcpy_retl_o2_plus_g1)
> +1: EX_LD(LOAD(ldub, %o1 + 0x00, %g2), memcpy_retl_o2_plus_o3)
> add %o1, 1, %o1
> subcc %o3, 1, %o3
> add %o0, 1, %o0
> bne,pt %xcc, 1b
> - EX_ST(STORE(stb, %g2, %o0 - 0x01), memcpy_retl_o2_plus_g1_plus_1)
> + EX_ST(STORE(stb, %g2, %o0 - 0x01), memcpy_retl_o2_plus_o3_plus_1)
> 2:
> and %o1, 0x7, %o3
> brz,pn %o3, .Lmedium_noprefetch_cp
> diff --git a/arch/sparc/lib/Memcpy_utils.S b/arch/sparc/lib/Memcpy_utils.S
> index 64fbac28b3db..207343367bb2 100644
> --- a/arch/sparc/lib/Memcpy_utils.S
> +++ b/arch/sparc/lib/Memcpy_utils.S
> @@ -137,6 +137,15 @@ ENTRY(memcpy_retl_o2_plus_63_8)
> ba,pt %xcc, __restore_asi
> add %o2, 8, %o0
> ENDPROC(memcpy_retl_o2_plus_63_8)
> +ENTRY(memcpy_retl_o2_plus_o3)
> + ba,pt %xcc, __restore_asi
> + add %o2, %o3, %o0
> +ENDPROC(memcpy_retl_o2_plus_o3)
> +ENTRY(memcpy_retl_o2_plus_o3_plus_1)
> + add %o3, 1, %o3
> + ba,pt %xcc, __restore_asi
> + add %o2, %o3, %o0
> +ENDPROC(memcpy_retl_o2_plus_o3_plus_1)
> ENTRY(memcpy_retl_o2_plus_o5)
> ba,pt %xcc, __restore_asi
> add %o2, %o5, %o0
in the past, you reported stability issues with the Linux kernel when running
inside an LDOM on SPARC M7/M8. Could you verify whether the patch above fixes
these problems or whether at least they don't introduce regressions?
Thanks,
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
next prev parent reply other threads:[~2025-08-31 23:43 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-28 12:18 sparc: Another fix for accurate exception reporting in copy_{from,to}_user Michael Karcher
2025-08-28 12:18 ` [PATCH 1/1] sparc: fix accurate exception reporting in copy_{from_to}_user for M7 Michael Karcher
2025-08-28 12:36 ` John Paul Adrian Glaubitz
2025-08-28 13:04 ` [PATCH v2 1/1] sparc: fix accurate exception reporting in copy_{from,to}_user " Michael Karcher
2025-08-31 23:43 ` John Paul Adrian Glaubitz [this message]
2025-09-01 7:00 ` Rainer Orth
2025-09-01 7:05 ` John Paul Adrian Glaubitz
2025-09-01 14:18 ` Rainer Orth
2025-09-01 19:15 ` John Paul Adrian Glaubitz
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=240f0f51687dcb146656a47932ec075b0821b605.camel@physik.fu-berlin.de \
--to=glaubitz@physik.fu-berlin.de \
--cc=andreas@gaisler.com \
--cc=anthony.yznaga@oracle.com \
--cc=kernel@mkarcher.dialup.fu-berlin.de \
--cc=linux-kernel@vger.kernel.org \
--cc=ro@CeBiTec.Uni-Bielefeld.DE \
--cc=sparclinux@vger.kernel.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).