[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <241CE5A1B2AFFA4987A663380D74C0BB3FFD15887B@MBX73.ad2.softcom.biz>
Date: Fri, 7 Nov 2008 01:57:34 -0500
From: Yavor Goulishev <yavor@...plifymedia.com>
To: David Miller <davem@...emloft.net>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: [Patch] Establishing more than 64K outgoing TCP connections
I'm suggesting a solution different from my original patch.
To overcome the limit and preserver the current properties you can
just change the hash function and the the table size.
This is just an idea.
The current hash is only the port number.
Not sure why you want linear access in a hash table though:
> I'm asking for O(num_ports_bound / hash_table_size) access.
What is this? Searching for unused port number?
It would stay the same if you use "(port + ip) % size".
--Yavor
________________________________________
From: David Miller [davem@...emloft.net]
Sent: Thursday, November 06, 2008 10:23 PM
To: Yavor Goulishev
Cc: netdev@...r.kernel.org
Subject: Re: [Patch] Establishing more than 64K outgoing TCP connections
From: Yavor Goulishev <yavor@...plifymedia.com>
Date: Fri, 7 Nov 2008 01:12:36 -0500
> I see that you want to access the hash table in O(1) and
> you try to get a port number at empty bucket. This is clever.
> However having hash table size 65536 and hash function just the port number can
> work only for 64K binds, right? If I need more they need to go in the chains.
>
> So may be having a better hash function and configurable table size (/proc/sys/net/...)
> can work without limitation and with good performance.
> For example:
> hash_fn = (port + local_ip) % size
All you have to preserve is that the hash distribution is evenly
spread. That is what your patch violated. I'm not asking for O(1)
access, I'm asking for O(num_ports_bound / hash_table_size) access.
Trying to solve all other kinds of issues just distracts from the
core issue.
--
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