linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Michael Ellerman <mpe@ellerman.id.au>
To: Rohan McLure <rmclure@linux.ibm.com>, linuxppc-dev@lists.ozlabs.org
Cc: Rohan McLure <rmclure@linux.ibm.com>,
	gautam@linux.ibm.com, npiggin@gmail.com, arnd@arndb.de
Subject: Re: [PATCH v2 03/11] asm-generic/mmiowb: Mark accesses to fix KCSAN warnings
Date: Fri, 12 May 2023 12:20:26 +1000	[thread overview]
Message-ID: <878rdul28l.fsf@mail.lhotse> (raw)
In-Reply-To: <20230510033117.1395895-4-rmclure@linux.ibm.com>

Rohan McLure <rmclure@linux.ibm.com> writes:
> Prior to this patch, data races are detectable by KCSAN of the following
> forms:
>
> [1] Asynchronous calls to mmiowb_set_pending() from an interrupt context
>     or otherwise outside of a critical section
> [2] Interrupted critical sections, where the interrupt will itself
>     acquire a lock
>
> In case [1], calling context does not need an mmiowb() call to be
> issued, otherwise it would do so itself. Such calls to
> mmiowb_set_pending() are either idempotent or no-ops.
>
> In case [2], irrespective of when the interrupt occurs, the interrupt
> will acquire and release its locks prior to its return, nesting_count
> will continue balanced. In the worst case, the interrupted critical
> section during a mmiowb_spin_unlock() call observes an mmiowb to be
> pending and afterward is interrupted, leading to an extraneous call to
> mmiowb(). This data race is clearly innocuous.
>
> Mark all potentially asynchronous memory accesses with READ_ONCE or
> WRITE_ONCE, including increments and decrements to nesting_count. This
> has the effect of removing KCSAN warnings at consumer's callsites.
>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
> Reported-by: Michael Ellerman <mpe@ellerman.id.au>
> Reported-by: Gautam Menghani <gautam@linux.ibm.com>
> Tested-by: Gautam Menghani <gautam@linux.ibm.com>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> ---
> v2: Remove extraneous READ_ONCE in mmiowb_set_pending for nesting_count
> ---
>  include/asm-generic/mmiowb.h | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)

This will need wider review, it's used by a lot of other architectures.

Probably best to pull this one out of the series and post it separately.
Add at least linux-kernel and linux-arch to Cc, and probably Will as
he's the original author.

cheers

  reply	other threads:[~2023-05-12  2:21 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-10  3:31 [PATCH v2 00/11] powerpc: KCSAN fix warnings and mark accesses Rohan McLure
2023-05-10  3:31 ` [PATCH v2 01/11] powerpc: qspinlock: Mark accesses to qnode lock checks Rohan McLure
2023-05-10  3:31 ` [PATCH v2 02/11] powerpc: qspinlock: Enforce qnode writes prior to publishing to queue Rohan McLure
2023-05-15  5:46   ` Nicholas Piggin
2023-05-10  3:31 ` [PATCH v2 03/11] asm-generic/mmiowb: Mark accesses to fix KCSAN warnings Rohan McLure
2023-05-12  2:20   ` Michael Ellerman [this message]
2023-05-15  5:48   ` Nicholas Piggin
2023-05-23  0:28   ` Rohan McLure
2023-05-23  0:36     ` Rohan McLure
2023-05-10  3:31 ` [PATCH v2 04/11] powerpc: Mark [h]ssr_valid accesses in check_return_regs_valid Rohan McLure
2023-05-10  3:31 ` [PATCH v2 05/11] powerpc: Mark accesses to power_save callback in arch_cpu_idle Rohan McLure
2023-05-15  5:50   ` Nicholas Piggin
2023-05-16  2:27     ` Rohan McLure
2023-05-10  3:31 ` [PATCH v2 06/11] powerpc: powernv: Fix KCSAN datarace warnings on idle_state contention Rohan McLure
2023-05-15  5:50   ` Nicholas Piggin
2023-05-10  3:31 ` [PATCH v2 07/11] powerpc: Annotate accesses to ipi message flags Rohan McLure
2023-05-15  5:51   ` Nicholas Piggin
2023-05-10  3:31 ` [PATCH v2 08/11] powerpc: Mark writes registering ipi to host cpu through kvm and polling Rohan McLure
2023-05-15  5:53   ` Nicholas Piggin
2023-05-15 22:19     ` Rohan McLure
2023-05-10  3:31 ` [PATCH v2 09/11] powerpc: powernv: Annotate data races in opal events Rohan McLure
2023-05-10  3:31 ` [PATCH v2 10/11] powerpc: powernv: Annotate asynchronous access to opal tokens Rohan McLure
2023-05-10  3:31 ` [PATCH v2 11/11] powerpc: Mark asynchronous accesses to irq_data Rohan McLure
2023-07-03  5:26 ` (subset) [PATCH v2 00/11] powerpc: KCSAN fix warnings and mark accesses 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=878rdul28l.fsf@mail.lhotse \
    --to=mpe@ellerman.id.au \
    --cc=arnd@arndb.de \
    --cc=gautam@linux.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=npiggin@gmail.com \
    --cc=rmclure@linux.ibm.com \
    /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).