From: Mathieu Desnoyers Date: Sun, 4 Dec 2011 15:40:01 +0000 (-0500) Subject: rculfhash: default mm type X-Git-Tag: v0.7.0~43^2~23 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=c1888f3a47cf8f7c213269888ce42d191de7e34a;hp=c1888f3a47cf8f7c213269888ce42d191de7e34a;p=urcu.git rculfhash: default mm type In the original patch from Lai Jiangshan : When I test backend with the following commands. (my box is x86_64 with 4 cores/logic cpus) **(test with Load factor = 100% only)** ./tests/test_urcu_hash 4 0 10 -B mmap -h $((1<<19)) -p $((1<<19)) ./tests/test_urcu_hash 4 0 10 -B mmap -h $((1<<18)) -p $((1<<18)) ./tests/test_urcu_hash 4 0 10 -B mmap -h $((1<<17)) -p $((1<<17)) ./tests/test_urcu_hash 4 0 10 -B mmap -h $((1<<16)) -p $((1<<16)) 4readers/no writer It shows that mmap backend is about 6% better over order backend. (It also shows that chunk backend is (worse than)/(the same as) order backend for small/large min_nr_alloc_buckets. (use -m when test)). Note: "6%" and the google-perftools told us the bucket_at() is not the critical bottleneck. new strategy: * infinite buckets size --> order mm * otherwise if 64bits, with number of buckets <= (1 << 32) --> mmap mm * otherwise --> order mm Signed-off-by: Mathieu Desnoyers ---