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
| ||
|
Date: Mon, 19 Apr 2010 08:38:18 -0700 From: Tom Herbert <therbert@...gle.com> To: Eric Dumazet <eric.dumazet@...il.com> Cc: davem@...emloft.net, netdev@...r.kernel.org Subject: Re: [PATCH RFC]: soreuseport: Bind multiple sockets to same port > High perf DNS server on such machine would have 16 threads, and probably > 64 threads in two years. > > I understand you want 16 UDP sockets to avoid lock contention, but > __udp4_lib_lookup() becomes a nightmare (It may already be ...) > Calling it a nightmare be be a little strong. It is true that this could create long chains that need to be walked, but this might be done with good cache locality of the structures. In any case, the lock contention seems to overshadow the cost of this; we were able to increase max number of DNS queries/sec by about 60% (I will try to publish some numbers this week). > My idea was to add a cpu lookup key. > > thread0 would use a new setsockopt() option to bind a socket to a > virtual cpu0. Then do its normal bind( port=53) > I agree that CPU awareness is desirable, but I'm really hesitant to resort to pinning; this can become pretty tangled on a shared server running a bunch of different applications-- would be nice if the kernel can just figure out the right thing to do :-) > ... > > threadN would use a new setsockopt() option to bind a socket to a > virtual cpuN. Then do its normal bind( port=53) > > Each thread then do its normal worker loop. > > Then, when receiving a frame on cpuN, we would automatically select the > right socket because its score is higher than others. > > > Another possibility would be to extend socket structure to be able to > have a dynamically sized queues/locks. > > > > -- 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