atom feed192 messages in org.freebsd.freebsd-archRe: 10gbps scalability (was: Re: Free...
FromSent OnAttachments
Vadim GoncharovAug 17, 2011 4:09 pm 
Baptiste DaroussinAug 18, 2011 12:49 am 
Robert WatsonAug 18, 2011 8:41 am 
Maxim IgnatenkoAug 18, 2011 11:09 am 
Lev SerebryakovAug 18, 2011 12:49 pm 
Lev SerebryakovAug 18, 2011 2:23 pm 
Vadim GoncharovAug 18, 2011 2:45 pm 
Hans Petter SelaskyAug 18, 2011 2:45 pm 
Vadim GoncharovAug 18, 2011 2:59 pm 
Vadim GoncharovAug 18, 2011 3:17 pm 
Julian ElischerAug 18, 2011 7:53 pm 
Michael V. BuzuverovAug 18, 2011 8:48 pm 
Lars EngelsAug 18, 2011 10:55 pm 
Lars EngelsAug 19, 2011 12:37 am 
Robert WatsonAug 19, 2011 1:23 am 
Lev SerebryakovAug 19, 2011 1:36 am 
Robert WatsonAug 19, 2011 1:41 am 
Lev SerebryakovAug 19, 2011 1:49 am 
Robert WatsonAug 19, 2011 1:55 am 
Slawa OlhovchenkovAug 19, 2011 2:05 am 
Lev SerebryakovAug 19, 2011 2:05 am 
Adrian ChaddAug 19, 2011 2:05 am 
Slawa OlhovchenkovAug 19, 2011 2:22 am 
Lev SerebryakovAug 19, 2011 2:25 am 
Lev SerebryakovAug 19, 2011 2:27 am 
Robert N. M. WatsonAug 19, 2011 2:36 am 
Slawa OlhovchenkovAug 19, 2011 2:36 am 
Robert N. M. WatsonAug 19, 2011 2:37 am 
Slawa OlhovchenkovAug 19, 2011 2:50 am 
Bob BishopAug 19, 2011 2:51 am 
Pieter de GoejeAug 19, 2011 5:01 am 
Kris MooreAug 19, 2011 5:20 am 
Lev SerebryakovAug 19, 2011 6:52 am 
Adrian ChaddAug 19, 2011 8:26 am 
Gary PalmerAug 19, 2011 10:22 am 
Robert WatsonAug 19, 2011 11:49 am 
Nathan WhitehornAug 19, 2011 1:17 pm 
Pedro F. GiffuniAug 19, 2011 1:29 pm 
Gary PalmerAug 19, 2011 1:30 pm 
Kostik BelousovAug 19, 2011 2:26 pm 
Rick MacklemAug 19, 2011 3:38 pm 
Robert WatsonAug 19, 2011 3:57 pm 
Pedro F. GiffuniAug 19, 2011 5:57 pm 
Lev SerebryakovAug 19, 2011 11:14 pm 
Robert WatsonAug 20, 2011 4:37 am 
Luigi RizzoAug 20, 2011 6:42 am 
Poul-Henning KampAug 20, 2011 7:10 am 
Robert N. M. WatsonAug 20, 2011 7:21 am 
Lev SerebryakovAug 20, 2011 2:09 pm 
Luigi RizzoAug 20, 2011 2:36 pm 
Peter JeremyAug 21, 2011 4:04 am 
Slawa OlhovchenkovAug 21, 2011 6:51 am 
Marcin WisnickiAug 22, 2011 10:04 am 
Marcin WisnickiAug 22, 2011 11:33 am 
selvenAug 22, 2011 11:06 pm 
Adrian ChaddAug 22, 2011 11:49 pm 
Garrett CooperAug 22, 2011 11:54 pm 
Diane BruceAug 23, 2011 7:01 pm 
Vadim GoncharovAug 24, 2011 3:08 pm 
Vadim GoncharovAug 24, 2011 3:15 pm 
Vadim GoncharovAug 24, 2011 3:20 pm 
Vadim GoncharovAug 24, 2011 3:29 pm 
Milo HysonAug 24, 2011 7:42 pm 
gnuy...@gmail.comAug 24, 2011 8:33 pm 
Alex GoncharovAug 24, 2011 8:47 pm 
Milo HysonAug 24, 2011 10:04 pm 
Adrian ChaddAug 24, 2011 10:24 pm 
Vadim GoncharovAug 25, 2011 8:20 am 
Vadim GoncharovAug 25, 2011 8:33 am 
Vadim GoncharovAug 25, 2011 8:41 am 
Garrett CooperAug 25, 2011 11:15 am 
Xin LIAug 25, 2011 11:20 am 
Diane BruceAug 25, 2011 1:12 pm 
Vadim GoncharovAug 25, 2011 1:29 pm 
Vadim GoncharovAug 25, 2011 1:52 pm 
md...@FreeBSD.orgAug 25, 2011 1:58 pm 
Vadim GoncharovAug 25, 2011 3:08 pm 
Brandon GoochAug 25, 2011 5:12 pm 
Robert WatsonAug 26, 2011 1:58 am 
Robert WatsonAug 26, 2011 2:05 am 
Adrian ChaddAug 26, 2011 2:16 am 
Slawa OlhovchenkovAug 26, 2011 2:37 am 
Jonathan AndersonAug 26, 2011 3:04 am 
Adrian ChaddAug 26, 2011 3:34 am 
Robert WatsonAug 26, 2011 4:23 am 
Jonathan AndersonAug 26, 2011 4:43 am 
Jonathan AndersonAug 26, 2011 5:11 am 
Gleb KurtsouAug 26, 2011 11:31 am 
Doug BartonAug 26, 2011 5:43 pm 
Artem BelevichAug 26, 2011 6:25 pm 
Adrian ChaddAug 26, 2011 6:59 pm 
Adrian ChaddAug 26, 2011 7:00 pm 
Robert N. M. WatsonAug 27, 2011 2:56 am 
Ulrich SpörleinAug 27, 2011 8:59 am 
Pedro F. GiffuniAug 27, 2011 11:08 am 
Garrett CooperAug 27, 2011 11:11 am 
Julien LaffayeAug 27, 2011 11:36 am 
Eitan AdlerAug 27, 2011 11:59 am 
Pedro F. GiffuniAug 27, 2011 12:13 pm 
Eitan AdlerAug 27, 2011 12:20 pm 
92 later messages
Subject:Re: 10gbps scalability (was: Re: FreeBSD problems and preliminary ways to solve)
From:Luigi Rizzo (riz@iet.unipi.it)
Date:Aug 20, 2011 2:36:34 pm
List:org.freebsd.freebsd-arch

On Sun, Aug 21, 2011 at 01:10:05AM +0400, Lev Serebryakov wrote:

Hello, Luigi. You wrote 20 ??????? 2011 ?., 17:45:30:

- the Click modular router now runs (in userspace) at up to 4Mpps per core, which is faster than in-kernel linux; A userspace version of ipfw should be available in a short time, and i have some work in progress to bring the forwarding tables in userspace (but of course you can do the same with Click). I also see people start using it, which is a good thing because i am getting useful feedback on features and bugs and patches for more device drivers. [SKIPPED] On the general issue of improving performance of the network stack, I feel that to achieve significant speed improvements we should really reconsider the way things are done in the network stack. And that comes before support for special HW features.

Could you please explain (I don't mean, that you are wrong, I really don't understand), how netmap and other user-level processing could help for ROUTING (with firewalling, different routes, etc) and software switching? I understand very well, why this help user-level

i am working on the following now: - routing daemons and the like still work as usual, adding and modifying routes with the standard mechanisms (routing sockets etc.) - the kernel updates its own forwarding tables (FIB) as usual

But: - a netmap client (userspace) listens for FIB updates on a routing socket, and builds its own copy of the FIB in userspace (call it uFIB) - the same process sets interfaces in netmap mode, and uses the uFIB to do forwarding, injecting back into the kernel those packets that have a local destination.

applications, which need to process huge PPS rates. Less memcpy, less allocations, less context switches (and TLB/cache flushes) -- all these things is very clear to me. But why user-level software swithcing is faster than in-kernel one, hwcih should wotk without memory context switches AT ALL?!

essentially, the driver in netmap mode is way more efficient and this offsets the cost of the few syscalls. As an example, currently with netmap one core can forward packets between interfaces at a rate between 3 and 10 Mpps depending on the amount of processing on the packet, and there are significant optimizations that are still possible especially at the lower speeds (if 3 Mpps can be called so)

Or netmap is used for prototyping code, which will be moved into kernel later?

Nothing prevents, of course, that kernel subsystems use the interface directly in netmap mode. But i think that now that we have the option, it makes sense to spend some time to experiment with newer solutions (FIB data structures, firewalls, memory aligment, possibly even tcp buffer management) in userspace and then move stuff back into the kernel once we have a good solution.

i am using it for prototyping and testing subsystems in userspace, whether it makes sense to move them depends on the performance we manage to get.

cheers luigi