Thread (32 messages) 32 messages, 2 authors, 2020-05-26

Re: iproute2: tc deletion freezes whole server

From: Cong Wang <hidden>
Date: 2020-05-07 18:52:55

On Tue, May 5, 2020 at 1:46 AM Václav Zindulka
[off-list ref] wrote:
On Mon, May 4, 2020 at 7:46 PM Cong Wang [off-list ref] wrote:
quoted
Sorry for the delay. I lost connection to my dev machine, I am trying
to setup this on my own laptop.
Sorry to hear that. I will gladly give you access to my testing
machine where all this nasty stuff happens every time so you can test
it in place. You can try everything there and have online results. I
can give you access even to the IPMI console so you can switch the
kernel during boot easily. I didn't notice this problem until the time
of deployment. My prior testing machines were with metallic ethernet
ports only so I didn't know about those problems earlier.
Thanks for the offer! No worries, I setup a testing VM on my laptop.
quoted
On Mon, May 4, 2020 at 10:36 PM Cong Wang [off-list ref] wrote:
quoted
Regarding to your test result above, I think I saw some difference
on my side, I have no idea why you didn't see any difference. Please
let me collect the data once I setup the test environment shortly today.
I saw some improvement too. It was more than 1.5s faster. Yet it was
still over 21s. I measured it with perf trace, not with time. I'll try
it the same way as you did.
quoted
I tried to emulate your test case in my VM, here is the script I use:

====
ip li set dev dummy0 up
tc qd add dev dummy0 root handle 1: htb default 1
for i in `seq 1 1000`
do
  tc class add dev dummy0 parent 1:0 classid 1:$i htb rate 1mbit ceil 1.5mbit
  tc qd add dev dummy0 parent 1:$i fq_codel
done

time tc qd del dev dummy0 root
====

And this is the result:

    Before my patch:
     real   0m0.488s
     user   0m0.000s
     sys    0m0.325s

    After my patch:
     real   0m0.180s
     user   0m0.000s
     sys    0m0.132s
My results with your test script.

before patch:
/usr/bin/time -p tc qdisc del dev enp1s0f0 root
real 1.63
user 0.00
sys 1.63

after patch:
/usr/bin/time -p tc qdisc del dev enp1s0f0 root
real 1.55
user 0.00
sys 1.54
quoted
This is an obvious improvement, so I have no idea why you didn't
catch any difference.
We use hfsc instead of htb. I don't know whether it may cause any
difference. I can provide you with my test scripts if necessary.
Yeah, you can try to replace the htb with hfsc in my script,
I didn't spend time to figure out hfsc parameters.

My point here is, if I can see the difference with merely 1000
tc classes, you should see a bigger difference with hundreds
of thousands classes in your setup. So, I don't know why you
saw a relatively smaller difference.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help