freebsd-skq/sys/i386
kib 6279b7c930 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
2015-06-28 05:04:08 +00:00
..
acpica If x86 CPU implementation of the MWAIT instruction reasonably 2015-05-09 12:28:48 +00:00
bios Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
conf Allow DTrace to be compiled-in to the kernel. 2015-06-10 15:53:39 +00:00
i386 Remove unneeded data dependency, currently imposed by 2015-06-28 05:04:08 +00:00
ibcs2 Replace struct filedesc argument in getvnode with struct thread 2015-06-16 13:09:18 +00:00
include Remove unneeded data dependency, currently imposed by 2015-06-28 05:04:08 +00:00
isa Remove support for Xen PV domU kernels. Support for HVM domU kernels 2015-04-30 15:48:48 +00:00
linux Implement lockless resource limits. 2015-06-10 10:48:12 +00:00
pci Remove support for Xen PV domU kernels. Support for HVM domU kernels 2015-04-30 15:48:48 +00:00
svr4 MFamd64: Move extern declaration of _ucodesel and _udatasel to 2014-11-02 21:40:32 +00:00
xbox After r261980, the local ptr variable in xbox_init() is no longer used, 2014-02-16 22:48:36 +00:00
Makefile