From: Zacco <zacco@fw.hu>
To: Eric Dumazet <dada1@cosmosbay.com>
Cc: David Miller <davem@davemloft.net>,
baruch@ev-en.org, netdev@vger.kernel.org
Subject: Re: many sockets, slow sendto
Date: Thu, 29 Mar 2007 21:24:31 +0200 [thread overview]
Message-ID: <460C126F.7050303@fw.hu> (raw)
In-Reply-To: <4601ADD8.8040500@cosmosbay.com>
Hi,
Thanks for the patch. I almost dare not confess that I don't know which
version to apply to. I tried 3 different ones (2.6.19-r5-gentoo,
2.6.20.1 and 2.6.21-rc4), but in the best case at least two hunks
failed. Nevertheless, I applied the patches manually. In each case, UDP
stopped working. I guess, you checked the patch and worked. I don't
think I made a mistake in the manual copy, and it seems unlikely that
your patch interfered with other parallel changes in the kernel - but,
I'm just guessing ...
I think, I'd better send you the spec and code, as you suggested that
first we have a common understanding of the issue. I must have failed in
passing the point. I'm removing irrelevant stuff, and I send it to you
as soon as I can (sorry for my long delays).
thx a lot,
Zacco
Eric Dumazet wrote:
> Eric Dumazet a écrit :
>> Currently, udp_hash[UDP_HTABLE_SIZE] is using a hash function based
>> on dport number only.
>>
>> In your case, as you use a single port value, all sockets are in a
>> single slot of this hash table :
>> To find the good socket, __udp4_lib_lookup() has to search in a list
>> with thousands of elements. Not that good, isnt it ? :(
>
> In case you want to try, here is a patch that could help you :)
>
> [PATCH] INET : IPV4 UDP lookups converted to a 2 pass algo
>
> Some people want to have many UDP sockets, binded to a single port but
> many different addresses. We currently hash all those sockets into a
> single chain. Processing of incoming packets is very expensive,
> because the whole chain must be examined to find the best match.
>
> I chose in this patch to hash UDP sockets with a hash function that
> take into account both their port number and address : This has a
> drawback because we need two lookups : one with a given address, one
> with a wildcard (null) address.
>
> Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
>
next prev parent reply other threads:[~2007-03-29 19:24 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-06 15:08 many sockets, slow sendto Zaccomer Lajos
2007-03-06 18:20 ` Baruch Even
2007-03-19 23:10 ` Zacco
2007-03-19 23:16 ` David Miller
2007-03-20 21:59 ` Zacco
2007-03-20 22:48 ` Eric Dumazet
2007-03-21 21:53 ` Zacco
2007-03-21 22:24 ` Eric Dumazet
2007-03-21 23:26 ` Eric Dumazet
2007-03-22 1:14 ` David Miller
2007-03-21 22:12 ` Eric Dumazet
2007-03-22 1:15 ` David Miller
2007-03-22 6:43 ` Eric Dumazet
2007-03-29 19:24 ` Zacco [this message]
2007-03-30 13:10 ` Eric Dumazet
2007-04-22 12:34 ` Zacco
2007-04-30 7:26 ` David Miller
2007-04-30 10:56 ` YOSHIFUJI Hideaki / 吉藤英明
2007-04-30 12:47 ` Eric Dumazet
2007-04-30 19:43 ` YOSHIFUJI Hideaki / 吉藤英明
2007-04-30 19:59 ` Eric Dumazet
2007-03-06 19:23 ` Andi Kleen
2007-03-06 21:28 ` Zacco
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=460C126F.7050303@fw.hu \
--to=zacco@fw.hu \
--cc=baruch@ev-en.org \
--cc=dada1@cosmosbay.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.