diff options
author | kib <kib@FreeBSD.org> | 2015-06-28 05:04:08 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2015-06-28 05:04:08 +0000 |
commit | 6279b7c930802b0ec654cf9d6c051c6a919d7bd0 (patch) | |
tree | 2e41a3d37eee6a7b024d2845a13f9a891c21c2f7 /share/misc/committers-src.dot | |
parent | 9c6d6e9137dfbc13f2677060c04dad121320aaaf (diff) | |
download | FreeBSD-src-6279b7c930802b0ec654cf9d6c051c6a919d7bd0.zip FreeBSD-src-6279b7c930802b0ec654cf9d6c051c6a919d7bd0.tar.gz |
Remove unneeded data dependency, currently imposed by
atomic_load_acq(9), on it source, for x86.
Right now, atomic_load_acq() on x86 is sequentially consistent with
other atomics, code ensures this by doing store/load barrier by
performing locked nop on the source. Provide separate primitive
__storeload_barrier(), which is implemented as the locked nop done on
a cpu-private variable, and put __storeload_barrier() before load, to
keep seq_cst semantic but avoid introducing false dependency on the
no-modification of the source for its later use.
Note that seq_cst property of x86 atomic_load_acq() is not documented
and not carried by atomics implementations on other architectures,
although some kernel code relies on the behaviour. This commit does
not intend to change this.
Reviewed by: alc
Discussed with: bde
Tested by: pho
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Diffstat (limited to 'share/misc/committers-src.dot')
0 files changed, 0 insertions, 0 deletions