lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211011064233-mutt-send-email-mst@kernel.org>
Date:   Mon, 11 Oct 2021 07:07:08 -0400
From:   "Michael S. Tsirkin" <mst@...hat.com>
To:     linux-kernel@...r.kernel.org
Cc:     "Paul E. McKenney" <paulmck@...ux.ibm.com>
Subject: data dependency naming inconsistency

Hello Paul, all!
I've been reading with interest Paul's posts about Rust interactions with LKMM
https://paulmck.livejournal.com/63316.html
and in particular it states:
		A data dependency involves a load whose return value directly or
	indirectly determine the value stored by a later store, which results in
	the load being ordered before the store.

This matches the perf book:
	A data dependency occurs when the value returned by
	a load instruction is used to compute the data stored by
	a later store instruction.

however, memory-barriers.txt states:

     A data dependency barrier is a partial ordering on interdependent loads
     only; it is not required to have any effect on stores, independent loads
     or overlapping loads.

It also says:
	A data-dependency barrier is not required to order dependent writes
	because the CPUs that the Linux kernel supports don't do writes
	until they are certain (1) that the write will actually happen, (2)
	of the location of the write, and (3) of the value to be written.

so the result it the same: writes are ordered without a barrier,
reads are ordered by a barrier.

However, it would seem that a bit more consistency in naming won't
hurt.

Thanks,

-- 
MST

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ