openonload-20100923 Release Notes ================================= These release notes describe the major new features, and known limitations and bugs. ---------------------------------------- 802.1Q VLANs ------------ Traffic passed over a VLAN interface over a Solarflare port is accelerated. Traffic passed over a VLAN interface over a bonded interface is accelerated if the bond is accelerated. IMPORTANT: At time of writing we've just encountered a corner-case bug when using VLANs over bonds. Debug is in progress. We recommend you do not use VLANs over bonds in production in this release. We will make an update release in the near future. ---------------------------------------- Bonding / Teaming ----------------- Traffic passed over certain types of bonded interfaces is accelerated. What is accelerated? - Bonds containing only SFC interfaces. - Modes: 1 (active_backup), 2 (balance_xor), 4 (802.3ad). - xmit_hash_policy: layer2, layer2+3, layer3+4. Caveats: - Bonding module v3.0.0 and later only. - Kernel must have sysfs support. Notes: - Bonds that are accelerated are accompanied by a message in the system log: [onload] Accelerating bond0 using OpenOnload - If a bond cannot be accelerated, there will be a message like this: [onload] Not accelerating bond0 using OpenOnload - An Onload application will not be able to use an interface that is added to a bond after the application has started. ---------------------------------------- Epoll ----- The epoll interfaces are now accelerated at user-level. This is particularly valuable in applications that enable spinning (EF_POLL_USEC), since a user-level implementation is necessary to avoid interrupts and jitter, and minimise latency. poll() is still likely to give superior performance in many cases, because the epoll interface requires locking in order to protect its internal state, which imposes extra overhead. Known limitations: - Files are removed from the epoll set when the file descriptor is closed, rather than when the last reference to the file goes away. - Scalability when there are large numbers of sockets is relatively poor. - Deadlock is possible if a process fork()s concurrently with invoking epoll calls. Notes: - We are likely to do further work on epoll in future releases to address the limitations outlined above. - Acceleration can be disabled at runtime with EF_UL_EPOLL=0. In that case epoll continues to work, but is handled in the kernel.