Re: [PATCH v1 01/25] net: core: device_rename: Use rwsem instead of a seqcount
From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2020-05-20 04:36:44
Also in:
lkml
On Tue, 19 May 2020 20:18:19 -0700 Eric Dumazet [off-list ref] wrote:
On 5/19/20 7:57 PM, David Miller wrote:quoted
From: Thomas Gleixner <redacted> Date: Wed, 20 May 2020 01:42:30 +0200quoted
Stephen Hemminger [off-list ref] writes:quoted
On Wed, 20 May 2020 00:23:48 +0200 Thomas Gleixner [off-list ref] wrote:quoted
No. We did not. -ENOTESTCASEPlease try, it isn't that hard.. # time for ((i=0;i<1000;i++)); do ip li add dev dummy$i type dummy; done real 0m17.002s user 0m1.064s sys 0m0.375sAnd that solves the incorrectness of the current code in which way?You mentioned that there wasn't a test case, he gave you one to try.I do not think this would ever use device rename, nor netdev_get_name() None of this stuff is fast path really. # time for ((i=1;i<1000;i++)); do ip li add dev dummy$i type dummy; done real 0m1.127s user 0m0.270s sys 0m1.039s
Your right it is a weak test, and most of the overhead is in the syscall and all netlink events that happen. It does end up looking up the new name, so would exercise that. Better test is to use %d syntax or create 1000 dummy's then rename every one. This is more of a stress test # for ((i=0;i<1000;i++)); do echo link add dev dummy%d type dummy; done | time ip -batch - 0.00user 0.29system 0:02.11elapsed 13%CPU (0avgtext+0avgdata 2544maxresident)k 0inputs+0outputs (0major+148minor)pagefaults 0swaps # for ((i=999;i>=0;i--)); do echo link set dummy$i name dummy$((i+1)); done | time ip -batch - 0.00user 0.26system 0:54.98elapsed 0%CPU (0avgtext+0avgdata 2508maxresident)k 0inputs+0outputs (0major+145minor)pagefaults 0swaps