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? Thanks --breno