All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Jinjie Ruan" <ruanjinjie@huawei.com>
Cc: "Marc Kleine-Budde" <mkl@pengutronix.de>,
	linux-can@vger.kernel.org, tytso@mit.edu,
	linux-ext4@vger.kernel.org,
	"Oliver Hartkopp" <socketcan@hartkopp.net>,
	"Vincent Mailhol" <mailhol@kernel.org>,
	"Oleksij Rempel" <o.rempel@pengutronix.de>
Subject: Re: [PATCH 01/11] user_namespace: Use acquire/release for nr_extents synchronization
Date: Wed, 26 Aug 2026 09:54:21 +0000	[thread overview]
Message-ID: <20260826095421.73E0A1F00A3E@smtp.kernel.org> (raw)
In-Reply-To: <20260825095422.3166067-2-ruanjinjie@huawei.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The patch missed replacing `READ_ONCE()` and `smp_rmb()` with `smp_load_acquire()` in `copy_mnt_idmap()` within `fs/mnt_idmapping.c`.
--

--- Patch [1]: [PATCH 01/11] user_namespace: Use acquire/release for nr_extents synchronization ---
commit 1bcd6fdf3ca65990e2c5f3f0896df9c586813872
Author: Jinjie Ruan <ruanjinjie@huawei.com>

user_namespace: Use acquire/release for nr_extents synchronization

This commit replaces smp_wmb() and smp_rmb() with smp_store_release() and
smp_load_acquire() for nr_extents in user namespaces. This aims to improve
performance on architectures with native acquire/release instructions.

> diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
> index 0bed462e9b2a2..576b667a88136 100644
> --- a/kernel/user_namespace.c
> +++ b/kernel/user_namespace.c

[ ... ]

> @@ -1098,8 +1100,8 @@ static ssize_t map_write(struct file *file, const char __user *buf,
>  		map->forward = new_map.forward;
>  		map->reverse = new_map.reverse;
>  	}
> -	smp_wmb();
> -	map->nr_extents = new_map.nr_extents;
> +	/* Pairs with smp_load_acquire() in map_id_range_{up,down}() and m_start(). */
> +	smp_store_release(&map->nr_extents, new_map.nr_extents);

[Severity: Medium]
Does this code miss updating copy_mnt_idmap() in fs/mnt_idmapping.c?

Since map_write() now uses smp_store_release() to update nr_extents, should
the reader in copy_mnt_idmap() also be migrated to use smp_load_acquire()?

Currently it still uses the old barrier pattern and contains a stale comment:

fs/mnt_idmapping.c:copy_mnt_idmap() {
    ...
	u32 nr_extents = READ_ONCE(map_from->nr_extents);
	/* Pairs with smp_wmb() when writing the idmapping. */
	smp_rmb();
    ...
}

While the release-store correctly pairs with the existing smp_rmb() under the
Linux Kernel Memory Model, leaving the old barrier in place defeats the stated
goal of avoiding the cost of full one-way barriers on architectures like arm64
for this specific code path.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260825095422.3166067-1-ruanjinjie@huawei.com?part=1

  reply	other threads:[~2026-08-26  9:54 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-25  9:54 [PATCH 00/11] Convert barrier pairs to acquire/release for better performance Jinjie Ruan
2026-08-25  9:54 ` [PATCH 01/11] user_namespace: Use acquire/release for nr_extents synchronization Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot [this message]
2026-09-01  1:42     ` Jinjie Ruan
2026-08-25  9:54 ` [PATCH 02/11] lib/vsprintf: Use acquire/release for ptr_key publication Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-25  9:54 ` [PATCH 03/11] fs: aio: Use acquire/release for ring->tail publication Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-31 12:13   ` Jan Kara
2026-09-01  1:44     ` Jinjie Ruan
2026-08-25  9:54 ` [PATCH 04/11] fs: Use acquire/release for fdtable resize synchronization Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-31 12:22   ` Jan Kara
2026-08-25  9:54 ` [PATCH 05/11] pidfs: Use test_bit_acquire() for attr flag tests Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-25  9:54 ` [PATCH 06/11] super: Use acquire for SB_BORN check in super_cache_count() Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-31 12:29   ` Jan Kara
2026-08-31 12:46     ` Jinjie Ruan
2026-08-25  9:54 ` [PATCH 07/11] ext4: Convert group-count barrier protocol to acquire/release Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-31 11:53   ` Jan Kara
2026-08-31 12:18   ` Zhang Yi
2026-08-25  9:54 ` [PATCH 08/11] soreuseport: publish num_socks with acquire/release Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-25  9:54 ` [PATCH 09/11] net: sched: act_gact: use acquire/release for tcfg_ptype Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-25  9:54 ` [PATCH 10/11] 8021q: publish vlan_devices_arrays entries with acquire/release Jinjie Ruan
2026-08-26  9:54   ` sashiko-bot
2026-08-25  9:54 ` [PATCH 11/11] can: isotp: publish tx.state with smp_store_release() Jinjie Ruan
2026-08-25 11:46   ` Oliver Hartkopp
2026-08-26  3:33     ` Jinjie Ruan
2026-08-26  8:04       ` Oliver Hartkopp
2026-08-26  9:54   ` sashiko-bot

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=20260826095421.73E0A1F00A3E@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=linux-can@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=mailhol@kernel.org \
    --cc=mkl@pengutronix.de \
    --cc=o.rempel@pengutronix.de \
    --cc=ruanjinjie@huawei.com \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=socketcan@hartkopp.net \
    --cc=tytso@mit.edu \
    /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.