Re: [PATCH v2] iproute2: build nsid-name cache only for commands that need it

From
Vadim Kochan <hidden>
Date
2016-09-16 09:23:56
Reply to
Nicolas Dichtel, 2016-09-16
On Fri, Sep 16, 2016 at 12:13 PM, Nicolas Dichtel
[off-list ref] wrote:
Le 16/09/2016 à 09:22, Anton Aksola a écrit :
quoted
The calling of netns_map_init() before command parsing introduced
a performance issue with large number of namespaces.

As commands such as add, del and exec do not need to iterate through
/var/run/netns it would be good not no build the cache before executing
these commands.

Example:
unpatched:
time seq 1 1000 | xargs -n 1 ip netns add

real    0m16.832s
user    0m1.350s
sys    0m15.029s

patched:
time seq 1 1000 | xargs -n 1 ip netns add

real    0m3.859s
user    0m0.132s
sys    0m3.205s

Signed-off-by: Anton Aksola <redacted>
---
There is still some differences:
$ cat test.batch
netns add foo
netns set foo 1234
netns list-id

Before your patch:
$ ip -b test.batch
nsid 1234 (iproute2 netns name: foo)

After your patch:
$ ip -b test.batch
nsid 1234
Would it be useful to add test for this case into testsuite/ ?

Regards,
Vadim Kochan
Thread (6 messages) 6 messages, 3 authors, last reply 2016-09-16
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help