]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
tools/memory-model: Define applicable tags on operation in tools/...
authorJonas Oberhauser <jonas.oberhauser@huaweicloud.com>
Mon, 30 Sep 2024 10:57:07 +0000 (12:57 +0200)
committerPaul E. McKenney <paulmck@kernel.org>
Thu, 20 Feb 2025 15:40:23 +0000 (07:40 -0800)
commit723177d712241238101b672b97b35734f86481f3
treed6b34d117cefa27589320b2bed7140c94e4918e2
parentde6f99723392f1c3a7bc103cba81bd9ba1d1708f
tools/memory-model: Define applicable tags on operation in tools/...

Herd7 transforms reads, writes, and read-modify-writes by eliminating
'acquire tags from writes, 'release tags from reads, and 'acquire,
'release, and 'mb tags from failed read-modify-writes. We emulate this
behavior by redefining Acquire, Release, and Mb sets in linux-kernel.bell
to explicitly exclude those combinations.

Herd7 furthermore adds 'noreturn tag to certain reads. Currently herd7
does not allow specifying the 'noreturn tag manually, but such manual
declaration (e.g., through a syntax __atomic_op{noreturn}) would add
invalid 'noreturn tags to writes; in preparation, we already also exclude
this combination.

Signed-off-by: Jonas Oberhauser <jonas.oberhauser@huaweicloud.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Tested-by: Boqun Feng <boqun.feng@gmail.com>
tools/memory-model/linux-kernel.bell