Patch dependencies:

[PATCH v3 01/10] Epoll based interrupt controller

Full redesign of the existing UML poll based controller. The old
poll controller incurs huge penalties for IRQ sharing and many devices
setup due to the device list being walked twice.

Additionally, the current controller has no notion of true Edge, 
Level and Write completion IRQs. 

This patch fixes the list walking bottleneck and adds all of 
the above alowing for UML to be scaled to 100s of devices 
(tested with 512+ network devices).

[PATCH v3 02/10] Remove unnecessary 'reactivate' statements

As a result of adding true Edge/Level semantics in the epoll 
controller there is no need to do the "reactivate fd" any more.

This one is an enhancement of 1 and depends on it.

[PATCH v3 03/10] High performance networking subsystem

This patchset adds vector IO ops for xmit and receive. Xmit
is optional (as it depends on a 3.0+ host), receive is always on.

The result is that UML can now hit 1G+ rates for transports
which have been enabled to use these. Presently this patchset
is kept as "legacy" as possible without leveraging the possibility
to do a true write completion poll from the new IRQ controller. 
This further performance improvement will be submitted separately.

This patch has been tested extensively only with patchsets 1 and 2.

[PATCH v3 04/10] L2TPv3 Transport Driver for UML

This is an implementation of the Ethernet over L2TPv3 protocol
leveraging both the epoll controller and the high perf vector IO.
It has been extensively tested to interop versus a set of
other implementations including Linux kernel, our port of the
same concept to QEMU/KVM, routers, etc.

Depends on 3.

[PATCH v3 05/10] GRE transport for UML

Same as L2TPv3 for GRE. Depends on 3

[PATCH v3 06/10] RAW Ethernet transport for UML

True raw driver (note - all TSO/GSO options in the NIC must
be turned off). Breaks through the 1G barrier with a vengeance
and CPU to spare. Depends on 3.

[PATCH v3 07/10] Performance and NUMA improvements for ubd

This is a well known issue/fix, qemu has the same one. If you 
do not use pwrite you can kill a machine on cache sync with 
ease. This patch is independent of the others.

[PATCH v3 08/10] Minor performance optimization for ubd

Obvious minor optimization, independent of the others.

[PATCH v3 09/10] Better IPC for UBD

Obvious optimization, independent of the others. Pipe has a 
very short queue which has 4k granularity. It is a bad IPC
for passing a lot of small chunks one at a time as used in UBD.

[PATCH v3 10/10] High Resolution Timer subsystem for UML

This version of the patch applies only to the epoll controller. 
Otherwise, the patch with minimal modifications can be applied to
stock UML. It fixes UML as far as its use for network appliance 
on all counts - TCP performance, QoS, traffic shaping, etc.

The patch is not pretty (I would have preferred to kill itimer
completely). It however does what it says on the tin and has been
doing it in testing for 2 years or so now.

Enjoy

--

A.R. Ivanov

anton.iva...@kot-begemot.co.uk
antiv...@cisco.com


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to