svn commit: r234652 - head/sys/powerpc/aim
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Tue Apr 24 13:36:42 UTC 2012
Author: nwhitehorn
Date: Tue Apr 24 13:36:41 2012
New Revision: 234652
URL: http://svn.freebsd.org/changeset/base/234652
Log:
Revert r234581 for this file. The lockless SLB tree code does in fact need
a heavyweight sync instead of a lightweight sync to function properly.
Thanks to mdf for the clarification.
Modified:
head/sys/powerpc/aim/slb.c
Modified: head/sys/powerpc/aim/slb.c
==============================================================================
--- head/sys/powerpc/aim/slb.c Tue Apr 24 13:13:42 2012 (r234651)
+++ head/sys/powerpc/aim/slb.c Tue Apr 24 13:36:41 2012 (r234652)
@@ -139,7 +139,7 @@ make_new_leaf(uint64_t esid, uint64_t sl
* that a lockless searcher always sees a valid path through
* the tree.
*/
- mb();
+ powerpc_sync();
idx = esid2idx(esid, parent->ua_level);
parent->u.ua_child[idx] = child;
@@ -187,7 +187,7 @@ make_intermediate(uint64_t esid, struct
idx = esid2idx(child->ua_base, inter->ua_level);
inter->u.ua_child[idx] = child;
setbit(&inter->ua_alloc, idx);
- mb();
+ powerpc_sync();
/* Set up parent to point to intermediate node ... */
idx = esid2idx(inter->ua_base, parent->ua_level);
More information about the svn-src-head
mailing list