| From | Sent On | Attachments |
|---|---|---|
| Vadim Goncharov | Aug 17, 2011 4:09 pm | |
| Baptiste Daroussin | Aug 18, 2011 12:49 am | |
| Robert Watson | Aug 18, 2011 8:41 am | |
| Maxim Ignatenko | Aug 18, 2011 11:09 am | |
| Lev Serebryakov | Aug 18, 2011 12:49 pm | |
| Lev Serebryakov | Aug 18, 2011 2:23 pm | |
| Vadim Goncharov | Aug 18, 2011 2:45 pm | |
| Hans Petter Selasky | Aug 18, 2011 2:45 pm | |
| Vadim Goncharov | Aug 18, 2011 2:59 pm | |
| Vadim Goncharov | Aug 18, 2011 3:17 pm | |
| Julian Elischer | Aug 18, 2011 7:53 pm | |
| Michael V. Buzuverov | Aug 18, 2011 8:48 pm | |
| Lars Engels | Aug 18, 2011 10:55 pm | |
| Lars Engels | Aug 19, 2011 12:37 am | |
| Robert Watson | Aug 19, 2011 1:23 am | |
| Lev Serebryakov | Aug 19, 2011 1:36 am | |
| Robert Watson | Aug 19, 2011 1:41 am | |
| Lev Serebryakov | Aug 19, 2011 1:49 am | |
| Robert Watson | Aug 19, 2011 1:55 am | |
| Slawa Olhovchenkov | Aug 19, 2011 2:05 am | |
| Lev Serebryakov | Aug 19, 2011 2:05 am | |
| Adrian Chadd | Aug 19, 2011 2:05 am | |
| Slawa Olhovchenkov | Aug 19, 2011 2:22 am | |
| Lev Serebryakov | Aug 19, 2011 2:25 am | |
| Lev Serebryakov | Aug 19, 2011 2:27 am | |
| Robert N. M. Watson | Aug 19, 2011 2:36 am | |
| Slawa Olhovchenkov | Aug 19, 2011 2:36 am | |
| Robert N. M. Watson | Aug 19, 2011 2:37 am | |
| Slawa Olhovchenkov | Aug 19, 2011 2:50 am | |
| Bob Bishop | Aug 19, 2011 2:51 am | |
| Pieter de Goeje | Aug 19, 2011 5:01 am | |
| Kris Moore | Aug 19, 2011 5:20 am | |
| Lev Serebryakov | Aug 19, 2011 6:52 am | |
| Adrian Chadd | Aug 19, 2011 8:26 am | |
| Gary Palmer | Aug 19, 2011 10:22 am | |
| Robert Watson | Aug 19, 2011 11:49 am | |
| Nathan Whitehorn | Aug 19, 2011 1:17 pm | |
| Pedro F. Giffuni | Aug 19, 2011 1:29 pm | |
| Gary Palmer | Aug 19, 2011 1:30 pm | |
| Kostik Belousov | Aug 19, 2011 2:26 pm | |
| Rick Macklem | Aug 19, 2011 3:38 pm | |
| Robert Watson | Aug 19, 2011 3:57 pm | |
| Pedro F. Giffuni | Aug 19, 2011 5:57 pm | |
| Lev Serebryakov | Aug 19, 2011 11:14 pm | |
| Robert Watson | Aug 20, 2011 4:37 am | |
| Luigi Rizzo | Aug 20, 2011 6:42 am | |
| Poul-Henning Kamp | Aug 20, 2011 7:10 am | |
| Robert N. M. Watson | Aug 20, 2011 7:21 am | |
| Lev Serebryakov | Aug 20, 2011 2:09 pm | |
| Luigi Rizzo | Aug 20, 2011 2:36 pm | |
| Peter Jeremy | Aug 21, 2011 4:04 am | |
| Slawa Olhovchenkov | Aug 21, 2011 6:51 am | |
| Marcin Wisnicki | Aug 22, 2011 10:04 am | |
| Marcin Wisnicki | Aug 22, 2011 11:33 am | |
| selven | Aug 22, 2011 11:06 pm | |
| Adrian Chadd | Aug 22, 2011 11:49 pm | |
| Garrett Cooper | Aug 22, 2011 11:54 pm | |
| Diane Bruce | Aug 23, 2011 7:01 pm | |
| Vadim Goncharov | Aug 24, 2011 3:08 pm | |
| Vadim Goncharov | Aug 24, 2011 3:15 pm | |
| Vadim Goncharov | Aug 24, 2011 3:20 pm | |
| Vadim Goncharov | Aug 24, 2011 3:29 pm | |
| Milo Hyson | Aug 24, 2011 7:42 pm | |
| gnuy...@gmail.com | Aug 24, 2011 8:33 pm | |
| Alex Goncharov | Aug 24, 2011 8:47 pm | |
| Milo Hyson | Aug 24, 2011 10:04 pm | |
| Adrian Chadd | Aug 24, 2011 10:24 pm | |
| Vadim Goncharov | Aug 25, 2011 8:20 am | |
| Vadim Goncharov | Aug 25, 2011 8:33 am | |
| Vadim Goncharov | Aug 25, 2011 8:41 am | |
| Garrett Cooper | Aug 25, 2011 11:15 am | |
| Xin LI | Aug 25, 2011 11:20 am | |
| Diane Bruce | Aug 25, 2011 1:12 pm | |
| Vadim Goncharov | Aug 25, 2011 1:29 pm | |
| Vadim Goncharov | Aug 25, 2011 1:52 pm | |
| md...@FreeBSD.org | Aug 25, 2011 1:58 pm | |
| Vadim Goncharov | Aug 25, 2011 3:08 pm | |
| Brandon Gooch | Aug 25, 2011 5:12 pm | |
| Robert Watson | Aug 26, 2011 1:58 am | |
| Robert Watson | Aug 26, 2011 2:05 am | |
| Adrian Chadd | Aug 26, 2011 2:16 am | |
| Slawa Olhovchenkov | Aug 26, 2011 2:37 am | |
| Jonathan Anderson | Aug 26, 2011 3:04 am | |
| Adrian Chadd | Aug 26, 2011 3:34 am | |
| Robert Watson | Aug 26, 2011 4:23 am | |
| Jonathan Anderson | Aug 26, 2011 4:43 am | |
| Jonathan Anderson | Aug 26, 2011 5:11 am | |
| Gleb Kurtsou | Aug 26, 2011 11:31 am | |
| Doug Barton | Aug 26, 2011 5:43 pm | |
| Artem Belevich | Aug 26, 2011 6:25 pm | |
| Adrian Chadd | Aug 26, 2011 6:59 pm | |
| Adrian Chadd | Aug 26, 2011 7:00 pm | |
| Robert N. M. Watson | Aug 27, 2011 2:56 am | |
| Ulrich Spörlein | Aug 27, 2011 8:59 am | |
| Pedro F. Giffuni | Aug 27, 2011 11:08 am | |
| Garrett Cooper | Aug 27, 2011 11:11 am | |
| Julien Laffaye | Aug 27, 2011 11:36 am | |
| Eitan Adler | Aug 27, 2011 11:59 am | |
| Pedro F. Giffuni | Aug 27, 2011 12:13 pm | |
| Eitan Adler | Aug 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
_______________________________________________ free...@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-arch To unsubscribe, send any mail to "free...@freebsd.org"





