lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Thu, 5 Jan 2012 16:07:33 +0200
From:	Mihai Maruseac <mihai.maruseac@...il.com>
To:	Stephen Hemminger <shemminger@...tta.com>
Cc:	davem@...emloft.net, eric.dumazet@...il.com, kuznet@....inr.ac.ru,
	jmorris@...ei.org, yoshfuji@...ux-ipv6.org, kaber@...sh.net,
	netdev@...r.kernel.org, Mihai Maruseac <mmaruseac@...acom.com>,
	Daniel Baluta <dbaluta@...acom.com>
Subject: Re: [PATCH] ipv6/addrconf: speedup /proc/net/if_inet6 filling

On Wed, Jan 4, 2012 at 7:03 PM, Mihai Maruseac <mihai.maruseac@...il.com> wrote:
> On Wed, Jan 4, 2012 at 6:22 PM, Stephen Hemminger <shemminger@...tta.com> wrote:
>> On Wed,  4 Jan 2012 11:31:35 +0200
>> Mihai Maruseac <mihai.maruseac@...il.com> wrote:
>>
>>> This ensures a linear behaviour when filling /proc/net/if_inet6 thus making
>>> ifconfig run really fast on IPv6 only addresses. In fact, with this patch and
>>> the IPv4 one sent a while ago, ifconfig will run in linear time regardless of
>>> address type.
>>>
>>> IPv4 related patch: f04565ddf52e401880f8ba51de0dff8ba51c99fd
>>>        dev: use name hash for dev_seq_ops
>>>        ...
>>>
>>> Some statistics (running ifconfig > /dev/null on a different setup):
>>>
>>> iface count / IPv6 no-patch time / IPv6 patched time / IPv4 time
>>> ----------------------------------------------------------------
>>>       6250  |       0.23 s       |      0.13 s       |  0.11 s
>>>      12500  |       0.62 s       |      0.28 s       |  0.22 s
>>>      25000  |       2.91 s       |      0.57 s       |  0.46 s
>>>      50000  |      11.37 s       |      1.21 s       |  0.94 s
>>>     128000  |      86.78 s       |      3.05 s       |  2.54 s
>>>
>>> Signed-off-by: Mihai Maruseac <mmaruseac@...acom.com>
>>> Cc: Daniel Baluta <dbaluta@...acom.com>
>>> ---
>>>  net/ipv6/addrconf.c |   43 ++++++++++++++++++++++++++++---------------
>>>  1 files changed, 28 insertions(+), 15 deletions(-)
>>>
>>
>>
>> What about netlink? Also ifconfig is really considered deprecated,
>> especially for ipv6 usage.
>
> Yes, ifconfig is deprecated but the /proc/net/if_inet6 file can be
> used in a lot of bash scripts and this was what we wanted to optimize.
>
> We tried to look at the netlink sockets used in iproute2 but there
> seems to be no way to improve the performance there. We used 3 pair of
> eyes for this before giving up.
>
> I'll come back with statistics from ip a s in at most 24 hours, I
> cannot test right now.


Here are the statistics comparing ip a s with ifconfig, as promised:

* for IPv6:

iface count / ifconfig /   ip a s
----------------------------------------------
       6250  |  0.13 s  |     1.23 s
     12500  |  0.28 s  |     5.03 s
     25000  |  0.57 s  |   20.17 s
     50000  |  1.21 s  |   87.25 s
   128000  |  3.05 s  |  968.12 s

* for IPv4:

iface count / ifconfig /   ip a s
----------------------------------------------
       6250  |  0.11 s  |     0.61 s
     12500  |  0.22 s  |     2.49 s
     25000  |  0.46 s  |   10.12 s
     50000  |  0.94 s  |   40.36 s
   128000  |  2.54 s  |  293.14 s

It seems that an optimisation for the ip case is required. We have a
quadratic behaviour here too.

Thanks,
Mihai
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ