From: Lai Jiangshan Date: Mon, 6 May 2013 12:32:02 +0000 (-0400) Subject: urcu: make the code of urcu-qsbr as normal urcu X-Git-Tag: v0.8.0~91 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=15302e2854ad9f1377ec81e331c1bec7a54a5621;hp=15302e2854ad9f1377ec81e331c1bec7a54a5621;p=urcu.git urcu: make the code of urcu-qsbr as normal urcu urcu-qsbr's read site's quiescence is much longer than normal urcu ==> synchronize_rcu() is much slower ==> rcu_gp_ctr is updated much less ==> the whole urcu-qsbr will not be slowed down by false sharing of rcu_gp_ctr. But this patch makes sense to keep the code of urcu-qsbr like normal urcu, better readability and maintenance. Test: (4*6 CPUs) Before patch: [root@localhost userspace-rcu]# ./tests/test_urcu_qsbr 20 1 20 SUMMARY ./tests/test_urcu_qsbr testdur 20 nr_readers 20 rdur 0 wdur 0 nr_writers 1 wdelay 0 nr_reads 65498297587 nr_writes 2000665 nr_ops 65500298252 [root@localhost userspace-rcu]# ./tests/test_urcu_qsbr 20 1 20 SUMMARY ./tests/test_urcu_qsbr testdur 20 nr_readers 20 rdur 0 wdur 0 nr_writers 1 wdelay 0 nr_reads 67218079467 nr_writes 1981593 nr_ops 67220061060 After patch ./tests/test_urcu_qsbr 20 1 20 SUMMARY ./tests/test_urcu_qsbr testdur 20 nr_readers 20 rdur 0 wdur 0 nr_writers 1 wdelay 0 nr_reads 67473798999 nr_writes 1999151 nr_ops 67475798150 [root@localhost userspace-rcu]# ./tests/test_urcu_qsbr 20 1 20 SUMMARY ./tests/test_urcu_qsbr testdur 20 nr_readers 20 rdur 0 wdur 0 nr_writers 1 wdelay 0 nr_reads 67065521397 nr_writes 1993956 nr_ops 67067515353 Signed-off-by: Lai Jiangshan Signed-off-by: Mathieu Desnoyers ---