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

Reply via email to