All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: "Aiqun(Maria) Yu" <quic_aiquny@quicinc.com>
Cc: <will@kernel.org>, <corbet@lwn.net>, <catalin.marinas@arm.com>,
	<quic_pkondeti@quicinc.com>, <quic_kaushalk@quicinc.com>,
	<quic_satyap@quicinc.com>, <quic_shashim@quicinc.com>,
	<quic_songxue@quicinc.com>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] arm64: Add the arm64.nolse_atomics command line option
Date: Mon, 10 Jul 2023 10:31:19 +0100	[thread overview]
Message-ID: <874jmc8654.wl-maz@kernel.org> (raw)
In-Reply-To: <32f442e3-3d5c-4cec-9791-0da039f88287@quicinc.com>

On Mon, 10 Jul 2023 09:19:54 +0100,
"Aiqun(Maria) Yu" <quic_aiquny@quicinc.com> wrote:
> 
> On 7/10/2023 3:27 PM, Marc Zyngier wrote:
> > On Mon, 10 Jul 2023 06:59:55 +0100,
> > Maria Yu <quic_aiquny@quicinc.com> wrote:
> >> 
> >> In order to be able to disable lse_atomic even if cpu
> >> support it, most likely because of memory controller
> >> cannot deal with the lse atomic instructions, use a
> >> new idreg override to deal with it.
> > 
> > In general, the idreg overrides are *not* there to paper over HW bugs.
> > They are there to force the kernel to use or disable a feature for
> > performance reason or to guide the *enabling* of a feature, but not
> > because the HW is broken.
> > 
> > The broken status of a HW platform must also be documented so that we
> > know what to expect when we look at, for example, a bad case of memory
> > corruption (something I'd expect to see on a system that only
> > partially implements atomic memory operations).
> > 
> 
> good idea. A noc error would be happened if the lse atomic instruction
> happened during a memory controller doesn't support lse atomic
> instructions.
> I can put the information in next patchset comment message. Pls feel
> free to let know if there is other place to have this kind of
> information with.

For a start, Documentation/arch/arm64/silicon-errata.rst should
contain an entry for the actual erratum, and a description of the
symptoms of the issue (you're mentioning a "noc error": how is that
reported to the CPU?).

The workaround should also be detected at runtime -- we cannot rely on
the user to provide a command-line argument to disable an essential
feature that anyone has taken for granted for most of a decade...

[...]

> >> @@ -185,6 +195,7 @@ static const struct {
> >>   	{ "arm64.nomops",		"id_aa64isar2.mops=0" },
> >>   	{ "arm64.nomte",		"id_aa64pfr1.mte=0" },
> >>   	{ "nokaslr",			"arm64_sw.nokaslr=1" },
> >> +	{ "arm64.nolse_atomic",         "id_aa64isar0.atomic=0" },
> > 
> > And what of 32bit?

This particular question still stands, as it is likely to affect VMs.

	M.

-- 
Without deviation from the norm, progress is not possible.

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: "Aiqun(Maria) Yu" <quic_aiquny@quicinc.com>
Cc: <will@kernel.org>, <corbet@lwn.net>, <catalin.marinas@arm.com>,
	<quic_pkondeti@quicinc.com>, <quic_kaushalk@quicinc.com>,
	<quic_satyap@quicinc.com>, <quic_shashim@quicinc.com>,
	<quic_songxue@quicinc.com>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH] arm64: Add the arm64.nolse_atomics command line option
Date: Mon, 10 Jul 2023 10:31:19 +0100	[thread overview]
Message-ID: <874jmc8654.wl-maz@kernel.org> (raw)
In-Reply-To: <32f442e3-3d5c-4cec-9791-0da039f88287@quicinc.com>

On Mon, 10 Jul 2023 09:19:54 +0100,
"Aiqun(Maria) Yu" <quic_aiquny@quicinc.com> wrote:
> 
> On 7/10/2023 3:27 PM, Marc Zyngier wrote:
> > On Mon, 10 Jul 2023 06:59:55 +0100,
> > Maria Yu <quic_aiquny@quicinc.com> wrote:
> >> 
> >> In order to be able to disable lse_atomic even if cpu
> >> support it, most likely because of memory controller
> >> cannot deal with the lse atomic instructions, use a
> >> new idreg override to deal with it.
> > 
> > In general, the idreg overrides are *not* there to paper over HW bugs.
> > They are there to force the kernel to use or disable a feature for
> > performance reason or to guide the *enabling* of a feature, but not
> > because the HW is broken.
> > 
> > The broken status of a HW platform must also be documented so that we
> > know what to expect when we look at, for example, a bad case of memory
> > corruption (something I'd expect to see on a system that only
> > partially implements atomic memory operations).
> > 
> 
> good idea. A noc error would be happened if the lse atomic instruction
> happened during a memory controller doesn't support lse atomic
> instructions.
> I can put the information in next patchset comment message. Pls feel
> free to let know if there is other place to have this kind of
> information with.

For a start, Documentation/arch/arm64/silicon-errata.rst should
contain an entry for the actual erratum, and a description of the
symptoms of the issue (you're mentioning a "noc error": how is that
reported to the CPU?).

The workaround should also be detected at runtime -- we cannot rely on
the user to provide a command-line argument to disable an essential
feature that anyone has taken for granted for most of a decade...

[...]

> >> @@ -185,6 +195,7 @@ static const struct {
> >>   	{ "arm64.nomops",		"id_aa64isar2.mops=0" },
> >>   	{ "arm64.nomte",		"id_aa64pfr1.mte=0" },
> >>   	{ "nokaslr",			"arm64_sw.nokaslr=1" },
> >> +	{ "arm64.nolse_atomic",         "id_aa64isar0.atomic=0" },
> > 
> > And what of 32bit?

This particular question still stands, as it is likely to affect VMs.

	M.

-- 
Without deviation from the norm, progress is not possible.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-07-10  9:33 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-10  5:59 [PATCH] arm64: Add the arm64.nolse_atomics command line option Maria Yu
2023-07-10  5:59 ` Maria Yu
2023-07-10  6:07 ` Randy Dunlap
2023-07-10  6:07   ` Randy Dunlap
2023-07-10  6:13   ` Aiqun(Maria) Yu
2023-07-10  6:13     ` Aiqun(Maria) Yu
2023-07-10  7:27 ` Marc Zyngier
2023-07-10  7:27   ` Marc Zyngier
2023-07-10  8:19   ` Aiqun(Maria) Yu
2023-07-10  8:19     ` Aiqun(Maria) Yu
2023-07-10  9:31     ` Marc Zyngier [this message]
2023-07-10  9:31       ` Marc Zyngier
2023-07-11  3:30       ` Aiqun(Maria) Yu
2023-07-11  3:30         ` Aiqun(Maria) Yu
2023-07-11  6:57         ` Marc Zyngier
2023-07-11  6:57           ` Marc Zyngier
2023-07-11 10:12           ` Aiqun(Maria) Yu
2023-07-11 10:12             ` Aiqun(Maria) Yu
2023-07-11 10:38             ` Marc Zyngier
2023-07-11 10:38               ` Marc Zyngier
2023-07-12  2:47               ` Aiqun(Maria) Yu
2023-07-12  2:47                 ` Aiqun(Maria) Yu
2023-07-12  7:29                 ` Marc Zyngier
2023-07-12  7:29                   ` Marc Zyngier
2023-07-12  8:03                   ` Aiqun(Maria) Yu
2023-07-12  8:03                     ` Aiqun(Maria) Yu
2023-07-10  9:37 ` Will Deacon
2023-07-10  9:37   ` Will Deacon
2023-07-11  4:02   ` Aiqun(Maria) Yu
2023-07-11  4:02     ` Aiqun(Maria) Yu
2023-07-11  8:22     ` Will Deacon
2023-07-11  8:22       ` Will Deacon
2023-07-11 10:15       ` Aiqun(Maria) Yu
2023-07-11 10:15         ` Aiqun(Maria) Yu
2023-07-11 10:25         ` Will Deacon
2023-07-11 10:25           ` Will Deacon
2023-07-12  3:09           ` Aiqun(Maria) Yu
2023-07-12  3:09             ` Aiqun(Maria) Yu
2023-07-12  7:36             ` Mark Rutland
2023-07-12  7:36               ` Mark Rutland
2023-07-13  2:24               ` Aiqun(Maria) Yu
2023-07-13  2:24                 ` Aiqun(Maria) Yu
2023-07-13 11:20                 ` Mark Rutland
2023-07-13 11:20                   ` Mark Rutland
2023-07-13 14:08                   ` Aiqun(Maria) Yu
2023-07-13 14:08                     ` Aiqun(Maria) Yu
2023-07-13 19:08                     ` Mark Rutland
2023-07-13 19:08                       ` Mark Rutland
2023-07-14  1:56                       ` Aiqun(Maria) Yu
2023-07-14  1:56                         ` Aiqun(Maria) Yu
2023-07-14  1:56                         ` Aiqun(Maria) Yu
2023-07-14  8:23                         ` Will Deacon
2023-07-14  8:23                           ` Will Deacon
2023-07-14 10:12                           ` Aiqun(Maria) Yu
2023-07-14 10:12                             ` Aiqun(Maria) Yu
2023-07-14 10:12                             ` Aiqun(Maria) Yu
2023-07-14 12:09                             ` Will Deacon
2023-07-14 12:09                               ` Will Deacon
2023-07-17  2:01                               ` Aiqun(Maria) Yu
2023-07-17  2:01                                 ` Aiqun(Maria) Yu
2023-07-11 10:34         ` Mark Rutland
2023-07-11 10:34           ` Mark Rutland

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=874jmc8654.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=quic_aiquny@quicinc.com \
    --cc=quic_kaushalk@quicinc.com \
    --cc=quic_pkondeti@quicinc.com \
    --cc=quic_satyap@quicinc.com \
    --cc=quic_shashim@quicinc.com \
    --cc=quic_songxue@quicinc.com \
    --cc=will@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 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.