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