Hi Richard, Hi Jeff, hi list, On behalf of Cisco systems, I am authorized to make a offer a set bug fixes as well as contribute several additional features and performance improvements to UML. All of these have been used internally for a couple of years and will ship as parts of product(s) in the near future. Some of these improve performance by up to 8 times on use cases which are of interest to us and are likely to be of interest to the community.
As the full patchset is now in the 100k+ zone, so I am going to do only the announcement now and submit the patches one by one after that over the next 1-2 weeks. We will submit separately bug fixes for: 1. Critical memory corruption on startup observed on heavily loaded machines (especially when multiple UMLs run simultaneously). 2. Fix(es) for incorrect handling of error conditions when UML is run under expect and conX=fd: is used to communicate with another process. The same error may be observed on internal UML IPCs too leading to immediate crash. I will also file bugs for both vs Debian UML package so that patches for both can go in ASAP. In addition to the bug fixes, the new features include: 1. Several transports. All can do up to multi-gigabit throughput on some scenarios. We are contributing their counterparts to qemu/kvm as well. 1.1. Direct connection of UML to overlay networks/L2 VPNs using L2TPv3. This has a number of advantages compared to the existing UML "multicast" and qemu "socket" transports. * Standard compliant - RFC 3931 updated recently by RFC 5641 * Supported on most network equipment * Allowing to move virtual switching off-host to an NPU or high performance physical switch * Allowing to mix virtual and physical switching (well supported on modern Linuxes and other OSes) * Well researched security profile as well as established interactions with IPSEC allowing to extend virtual networks outside the datacenter to remote physical devices and/or VMs. 1.2. Raw transport which allows both bi-directional communication with any network device which looks like Ethernet as well as in-span listening at speeds in the multi-gigabit range. 1.3. We intend to contribute other key overlay transports like GRE, etc as well. The ones we are contributing at this point are the ones which we have used most extensively and have had the most testing (~ 1.5-2 years). 2. New high res timer subsystem Adding these new network transports to UML revealed a key issue - it cannot meter or shape any traffic correctly as its internal timer system is way off. Personally, I consider it a bug, however there is no "easy" fix here. The only way to fix it is a new timer driver. Unfortunately, it does not fix uml userspace - timers there remain off. It does fix all kernel timer functionality - traffic shaping (both qdisc and iptables traffic limits). As a side effect, this provides performance improvements for tcp and other protocols which rely on kernel high res timers for their state machines. We have further scalability contributions lined up which improve network and IO performance between 1.5 and 8 times (depending on use case), allow hundreds of virtual interfaces per UML without performance penalties, allow to run several hundreds (if not thousands) of UMLs per machine, etc. All in all, it can no go where no virtualization and no virtual networking has gone before. However, I would prefer to take it one step at a time and get through these first (even these are quite a lot for one "sitting"). Best Regards, Anton. ------------------------------------------------------------------------------ Flow-based real-time traffic analytics software. Cisco certified tool. Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer Customize your own dashboards, set traffic alerts and generate reports. Network behavioral analysis & security monitoring. All-in-one tool. http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel