Hello, Breno! > Hello Vlad, > > On Wed, Apr 16, 2025 at 05:04:31PM +0200, Uladzislau Rezki wrote: > > On Wed, Apr 16, 2025 at 07:14:04AM -0700, Breno Leitao wrote: > > > Hi Boqun, > > > > > > On Sun, Apr 13, 2025 at 11:00:47PM -0700, Boqun Feng wrote: > > > > > > > Overall it looks promising to me, but I would like to see how it > > > > performs in the environment of Breno. Also as Paul always reminds me: > > > > buggy code usually run faster, so please take a look in case I'm missing > > > > something ;-) Thanks! > > > > > > Thanks for the patchset. I've confirmed that the wins are large on my > > > environment, but, at the same magnitute of synchronize_rcu_expedited(). > > > > > > Here are the numbers I got: > > > > > > 6.15-rc1 (upstream) > > > # time /usr/sbin/tc qdisc replace dev eth0 root handle 0x1234: > > > mq > > > real 0m3.986s > > > user 0m0.001s > > > sys 0m0.093s > > > > > > Your patchset on top of 6.15-rc1 > > > # time /usr/sbin/tc qdisc replace dev eth0 root handle 0x1234: > > > mq > > > real 0m0.072s > > > user 0m0.001s > > > sys 0m0.070s > > > > > > > > > My original proposal of using synchronize_rcu_expedited()[1] > > > # time /usr/sbin/tc qdisc replace dev eth0 root handle 0x1234: > > > mq > > > real 0m0.074s > > > user 0m0.001s > > > sys 0m0.061s > > > > > > Link: > > > https://lore.kernel.org/all/20250321-lockdep-v1-1-78b732d19...@debian.org/ > > > [1] > > > > > Could you please also do the test of fist scenario with a regular > > synchronize_rcu() but switch to its faster variant: > > > > echo 1 > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp > > > > and run the test. If you have a time. > > Of course, I am more than interesting in this topic. This is what I run: > > > # /usr/sbin/tc qdisc replace dev eth0 root handle 0x1: mq; time > /usr/sbin/tc qdisc replace dev eth0 root handle 0x1234: mq > real 0m4.150s > user 0m0.001s > sys 0m0.076s > > [root@host2 ~]# echo 1 > > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp > [root@host2 ~]# /usr/sbin/tc qdisc replace dev eth0 root handle 0x1: > mq; time /usr/sbin/tc qdisc replace dev eth0 root handle 0x1234: mq > real 0m4.225s > user 0m0.000s > sys 0m0.106s > > [root@host2 ~]# cat > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp > 1 > [root@host2 ~]# echo 0 > > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp > [root@host2 ~]# /usr/sbin/tc qdisc replace dev eth0 root handle 0x1: > mq; time /usr/sbin/tc qdisc replace dev eth0 root handle 0x1234: mq > real 0m4.152s > user 0m0.001s > sys 0m0.099s > > It seems it made very little difference? > Yep, no difference. In your case you just need to speed up a grace period completion. So an expedited version really improves your case.
So you do not have a lot of callbacks which may delay a normal GP. Thank you! -- Uladzislau Rezki