summaryrefslogtreecommitdiffstats
path: root/contrib/gcc
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2012-12-28 17:41:36 +0000
committerattilio <attilio@FreeBSD.org>2012-12-28 17:41:36 +0000
commit5da31a993660c9f95f598228167307ae36fc3177 (patch)
tree1d166478174f2b155e17ede7894444b8a895a7d6 /contrib/gcc
parent1bd72ff3fbdfa47a3afaec309975829ddf71fc25 (diff)
downloadFreeBSD-src-5da31a993660c9f95f598228167307ae36fc3177.zip
FreeBSD-src-5da31a993660c9f95f598228167307ae36fc3177.tar.gz
Improve bufring impl:
- Remove unused br_prod_bufs member - Fixup r241037: buf_ring pads br_prod_* and br_cons_* members at 128 bytes, assuming a fixed cache line size for all the architectures. However, the above mentioned revision broke the padding. Use explicit padding to the CACHE_LINE_SIZE on the members that mark the initial new padded sections. Of course, the padding is not important for performance reasons in the DEBUG_BUFRING case, leaving br_cons members to share the cache line with br_lock. - Fixup r244732: by removing incorrectly added membar in buf_ring_dequeue_sc() where surrounding locking shoud be enough. - Drastically reduce the number of membar used (pratically reverting r244732) by switching rmb() in buf_ring_dequeue_mc() and wmb() in buf_ring_enqueue() to be complete barriers. This, along with br_prod_bufs departure, should fix ordering issues as explained in the provided comments. This patch is not targeted for MFC. Sponsored by: EMC / Isilon storage division Reviewed by: glebius
Diffstat (limited to 'contrib/gcc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud