--- - branch: MAIN date: Thu Dec 5 18:50:41 UTC 2019 files: - new: '1.19' old: '1.18' path: src/common/lib/libc/gen/radixtree.c pathrev: src/common/lib/libc/gen/radixtree.c@1.19 type: modified id: 20191205T185041Z.192310a1d048691eedd8915e6c5eaa199ab13297 log: | Delete the counter from "struct radix_tree_node", and in the one place we need a non-zero check, substitute with a deterministic bitwise OR of all values in the node. The structure then becomes cache line aligned. For each node we now need only touch 2 cache lines instead of 3, which makes all the operations faster (measured), amortises the cost of not having a counter, and will avoid intra-pool-page false sharing on MP. module: src subject: 'CVS commit: src/common/lib/libc/gen' unixtime: '1575571841' user: ad