openonload-201502-u3 -------------------- Update net driver (v4.5.1.1020) task55114: add compatibility for RHEL 6.7 openonload-201502-u2 -------------------- Update net driver (v4.5.1.1010) Add support for Debian 8, Ubuntu 15.04 task52607: Add support for SO_PROTOCOL task52813: Linux-4.0 compatibility task43979: Add support for Debian packaging. SF-114423-KI/bug49906: Fix packet corruption with templated sends and ef_vi PIO. SF-114381-KI/bug43434: Fix EF_NAME accepting longer names than onload_set_stackname() SF-114425-KI/bug52613: Avoid system lockup when using delegated sends API and SACK packets bug53545: fix onload not distributing traffic over lacp bond with vlan bug53600: bug53558: intercept __poll_chk on libc >=2.19 (Debian 8, Ubuntu 14.10) bug53527: Fix stack overrun in efdelegated_server example app bug53453: Correctly handle an epoll ctl on OS fd when postpone limit has been reached bug53101: Fix reset of non-accepted loopback connection when stack is destroyed bug53101: Fix packet leak in tcpdump bug50399: Update eftap to send pkts with multicast loopback RX support bug53052: Fixes for CI_CFG_DETAILED_CHECKS=1 debug code bug50399: Fix support for transmit hardware loopback in ef_vi (NB: API change) bug53011: Purge CI_CFG_REQUIRE_SOCKADDR_FAM build time option bug42886: Enable tcpdump logging of packets where hardware marked them as to discard bug51175: Avoid fd leak when closing listening sockets with socket caching. bug51547: Reduce size and reorder fields in ci_tcp_state for better packing. bug52409: Fix cluster+TCP loopback combination incapacitating network interface. bug52750: Fix panic when white/blacklist module parameter has no value. bug52750: Fix overriding of white/blacklist parameters from modprobe config. bug52882: Show the correct index of a VI in onload_stackdump. bug51749: Fix kernel panic when SO_REUSEPORT socket bound to non-SF interface bug52804: Updated onload_stackdump to display correct output for nics= bug49906: Enforce PIO packets must be 64-byte-aligned. bug52799: delegated send: use ipcache under the stack lock only bug52613: bug48435: improve TX wakeup to wake blocked sender appropriately bug52613: Fix delegated send ACK handling to avoid adding to retrans queue when already acked bug52613: Fix retransmission of invalid packet with delegated sends. bug52613: Fix ordering of packets when mixing normal and delegated sends. bug52613: Cope with window having shrunk behind in flight right edge in delegated send bug52699: Fix race condition (kernel panic) between vf_callback and vf_callback_kill bug45182: Remove unused ef_vi flag: EF_FILTER_FLAG_REPLACE and co. bug48384: Match Onload behaviour to Linux when TCP_QUICKACK set to 0 bug52611: Add stats for free/used aux buffers bug52611,bug52655: Fix leak of aux buffers (syn-receive state) bug51756: Fix TCP_DEFER_ACCEPT socket option implementation bug50648: bug52474: Fix fop_(read|write)_passthrough file operation bug50648: Handle listen blocking mode when using CITP_PASSTHROUGH_FD bug50648: Fix fdtable lock/unlock on some handover paths bug52497: bug50648: Enable trampoline for alien and handover fd bug52109: Fix EPOLLONESHOT epoll_wait() followed by select() giving wrong return code bug37690: Build fix for CI_CFG_PKTS_AS_HUGE_PAGES=0 bug50968: Remove correct row from control plane table when slave removed from bond bug43453: Support cluster and hw multicast loopback combination openonload-201502-u1 -------------------- Update net driver (v4.4.1.1021) bug44482: Add 'provides' statements for sfc-kmod-symvers to onload spec file. bug46981: Make onload build tolerate missing libjansson dependencies bug47081: add vport switching example for efpingpong sample bug51961: Fix error preserving file ownership when extracting Onload tarball as root bug51827: fix onload_delegated_send_prepare when called on a non-onload-fd bug50793: Don't inline citp_waitable_wake_not_in_poll bug51175: Avoid panic when closing listening sockets with socket caching bug51530: do not update initramfs in onload_install when just asked to list files bug51463: fix solarclusterd build error when creating RPM as non-root bug51465: fix date in RPM spec file to avoid rpmbuild complaints bug51360: warn user about unsupported combination of spin+epoll0 bug51479: correctly handle epoll_wait with timeout=-1 and EF_UL_EPOLL=3 bug51442: fix bashism in onload_tool and other scripts bug51301: add onload_remote_monitor dependencies to spec file bug50655: fix simultaneous listen() and recv(), was causing assertion bug51242: fix EF_UL_EPOLL=3 behaviour when epoll set changes during epoll_wait() bug51242: fix handling of return code when enabling EF_UL_EPOLL=3 bug51324: do not report SA_SIGINFO when it is unset bug52045: fix epoll_ordered_wait to restart if repoll returns 0 bug50746: initialise hash to correctly distribute traffic over LACP bond openonload-201502 ----------------- Update net driver (v4.4.1.1017) Add support for recent Linux kernels (up to 3.19) Add official support for Ubuntu (12.04, 14.04, 14.10) and Debian (6, 7) Add initial preview of Onload Filter Engine Add VF and multi-PF capabilities to Onload on EF10 hardware Add support for Docker containers Add passive-open endpoint caching to increase achievable connection rate Add onload --profile=safe to make Onload replicate Linux behaviour as closely as possible Add white and black lists to allow user to select which interfaces are accelerated Improve scalability of accelerated epoll modes Support switching packets in the NIC between VIs Add experimental service to export stackdump-like statistics in JSON format over network Add new TCP "delegated sends" API Add ef_vi API to programatically query drop/error counters for each VI Update some ef_vi samples to use ef_pd_alloc_by_name so they can use clustering Fix minor bug in calculation of UDP socket q_max statistic. task8595: Added ef_vi_receive_set_buffer_len() task41722: Change onload_stackdump -z to output to stdout instead of syslog task44092: improve TCP loopback to handle out of window data task41989: choose IRQ on current core by default task46656: Add sample packed stream ef_vi apps efsink_packed, efforward_packed task47559: convert pipes to use packet buffers instead of socket buffers for data task48269: Add and use ef_vi_transmit_copy_pio() to reduce PIO send latency bug37972: replace tasklets and internal workqueues with Linux workqueues bug42023: increase CI_CFG_NETIF_MAX_ENDPOINTS_MAX to 2^21 bug43337: handle case when EF_UL_EPOLL=1 spinning on set with no Onload fds bug41922: support >4GB ef_memreg allocations bug44568: update msg_name and msg_namelen in recvfrom() even if length was 0 bug44568: fix UDP recvmsg() via OS: copy msg_name with correct length bug44665: Support IPC namespaces and explicit huge page allocations working together bug40412: add onload_stack_opt_get_int() API call bug44732: add spinning statistics to stackdump bug44257: fix page size handling in ef_memreg_alloc() on PPC64 to avoid corruption bug41975: add basic SO_BUSY_POLL support bug1684: correctly handle handover sockets in dup, fork, epoll bug41166: fix stack save and restore for ONLOAD_DONT_ACCELERATE bug45917: Avoid potential crash after a closed fd is removed from the epoll set. bug45910: add EF_TCP_SEND_NONBLOCK_NO_PACKETS_MODE to control onload blocking on non-blocking send bug45802: fix setsockopt(SO_REUSEPORT) to return -1 and set errno correctly bug46245: prevent use of packet state after packet has been sent bug46022: Segfault during send() of UDP datagram when HW RX timestamps are enabled bug46334: handle adding fd to two epoll sets followed by handover bug46654: Fix possible ef_vi misreport of CRC_BAD as CSUM_BAD on EF10 adapters bug43885: onload_stackdump reports PIDs attached to stacks bug45091: handle buffer table set failures during reset. bug45162: postpone NIC reset processing to avoid scheduling in atomic bug46447: do not expect ef10_mcdi_rpc to work under reset: avoids assertion bug46493: fix error path causing hung kernel task if NIC reset during stack creation bug45166: remove assert which fires due to race at NIC reset bug45163: improve packet mapping to NIC under reset bug46130: allow Onload /dev files to be accessed after chroot bug46282: Avoid TCP retransmit timeout falling below specified minimum bug46783: fix incorrect assert in citp_sock_fcntl_os_sock() bug46821: fix accept() errno when interrupted by sighandler with shutdown() bug46212: Fix software-filter handling when connecting UDP multicast sockets bug34462: fix TCP RTO calculations in some corner cases bug46934: protect against syn flood: ci_tcp_synrecv_send() always gets non-NULL pkt bug47011: increase listening fd timer frequency to make syn-ack retrans less bursty bug46973: Handle failure to allocate new citp_sock_fdi on accept() bug47059: allow sendfile to make progress when small send buffer used bug47064: fix TCP behaviour with small window close to mss bug47112: give Onload same behaviour as Linux for negative backlog, ie. listen(sock, -1) bug47177: EF_RETRANSMIT_THRESHOLD[_SYN] was being ignored. bug39052: admit other flags in ACK of SYNACK during syncookie processing bug47027: more detail in stackdump about PIO allocation bug47341: Add missing unlock on UDP socket create failure with EF_FDTABLE_STRICT bug47372: ensure stack is unlocked after sending a message that is too big bug56776: expose onload workqueues via /sys/devices/virtual/workqueue/ bug20561: interrupt accept if the fd is closed under feet by signal bug30185: use new Linux 3.4 poll API bug45935: intercept __sendmmsg system call to cope with libc calling it directly bug44192: improve behaviour when accept() fails due to lack of endpoint buffers bug47267: calculate TCP window scale factor based on the real SO_RCVBUF value bug47199: timeout TCP connection stuck in FIN_WAIT1 due to close() with zero window bug47249: fix software filter table to allow >64K endpoints bug39799: import local routes with non-32 bit net masks bug47007: implement EF_TCP_RCVBUF_STRICT=1 mode. bug47197: set EF_TCP_SNDBUF_MODE=1 by default bug34581: add EF_SELECT_FAST_USEC, EF_SELECT_NONBLOCK_FAST_USEC to mirror poll equivalents bug46535: count packets from timestamp queue in SO_SNDBUF to avoid using all buffers bug41453: install headers and library needed for ef_vi app development bug47579: reap more buffers from receive queue when we can to reduce buffer use bug45243: Allow stack creation on setups where not all SFC NICs support Onload. bug47528: Add support for EF10 VFs to onload bug47614: use fstat64 instead of fstat to allow opening large file with 32-bit UL bug46651: do not TX timestamp TCP packets without data (SYN, FIN). bug45749: fail gracefully (no kernel panic) if active open from clustered socket bug47901: Fix potential crash when SO_REUSEPORT bind on OS that does not do SO_REUSEPORT bug47703: Fix panic when SO_REUSEPORT bind to multiple addresses/ports bug47704: return EADDRINUSE rather than EPERM when SO_REUSEPORT used between UIDs bug48002: set msg_controllen to zero if not returning cmsg or error from recvmsg() bug48073: improve recvmmsg performance by removing unnecessary check bug48103: fix packet length calculation for FIN with TX timestamp bug47569: Avoid kernel panic if EF_MAX_PACKETS set to negative value bug48274: initialize error_flags when sharing a stack bug48304: unlock fdtable when close() hangs because of SO_LINGER bug43800: prevent loop in ci_udp_sendmsg_send() if shared state corrupted bug48416: fix potential deadlock in sendfile() bug48179: update hash used in filter table to improve spreading with lots of connections bug32215: properly check for space in send queue when doing zc_send bug44858: return -1 (with errno=EINTR) from citp_epoll_ordered_wait() on signal bug38207: improve fairness of EF_FDS_MT_SAFE=0 locking mechanism between readers and writers bug48598: fix potential deadlock when bond is brought up bug48762: return errno=EAGAIN instead of EPERM when non-blocking UDP send fails bug48599: don't do full copy for templated send on VLAN interface bug47476: fix EF_FDTABLE_STRICT=1 mode for accelerated TCP loopback and epoll bug47426: do not ignore filter errors when EF_NO_FAIL=0 bug47491: fix filter error "laddr=XXX not local" causing no acceleration bug49289: fix source IP using SO_BINDTODEVICE on intf with multiple IP addresses bug49445: fix warning on enabling timestamping with single interface up bug49471: remove verbose log message from ef_vi software event processing bug49739: increase EF_MIN_FREE_PACKETS to 32 bits bug48701: fix interrupt allocation with EF_PD_VF (EF_PACKET_BUFFER_MODE=3) bug49547: set ACK flag when dropping TCP connection with RST and undelivered data bug49697: improve accuracy of timeout calculations in epoll_wait bug49722: fix signal handling to allowing killing onloaded process when run out of fds bug50027: correctly handle more than one profile specified to onload command bug38605: improve accuracy of epoll/poll/select spinning timeout duration bug50600: fix deadlock due to EF_*_FORCE_REUSEPORT=1 not releasing os_sock bug47359: fix loop in bonding work item on recent kernels - do not set SIGPENDING flag bug50539: reduce async packet count when unused zc_alloc buffers are released bug50827: roll back OS socket if IP_ADD_MEMBERSHIP failed to add filter bug43962: Ameliorate race causing "file exists" errors on onload_tool reload on RHEL7 Siena VFs bug50386: fix onload_tcpdump packet length when stripping VLAN tag bug51189: avoid segfault parsing invalid filter spec in ef_vi test apps bug45182: Fix behaviour when unicast-all/multicast-all filter installed multiple times SF-114094-KI/bug48294: fix error path in oo_bufpage_huge_alloc() to avoid put_page kernel panic SF-114095-KI/bug47204: fix kernel panic when using ef_memreg to allocate 2G region SF-114096-KI/bug48247: fix kernel panic with EF_CLUSTER_SIZE>=32 SF-113950-KI/bug49565: Fix PIO send corruption due to memory ordering issue openonload-201405-u2 -------------------- Updated net driver to build on recent kernels (v4.1.2.1003b) SF-113792-KI/Bug49194: ef_vi avoid registering wrong pages when ef_memreg_alloc() page sizes vary SF-113764-KI/Bug48491: do not leak memory when querying status of LACP bond openonload-201405-u1 -------------------- Updated net driver (v4.1.2.1003) Add support for SIOCOUTQ/SIOCOUTQNSD Add support for transmit port sniff filters Add EF_CLUSTER_IGNORE option to ignore SO_REUSEPORT and disable clusters Add ef_vi API to allow user to block (e.g. poll()) on a file descriptor: ef_vi_prime() Add ef_vi API to retrieve interface name: ef_pd_interface_name() Add support for packed stream firmware mode Add SO_REUSEADDR support for TCP clients sharing a stack bug42276: improve building and installing on Debian and Ubuntu systems bug43406: fix ef_eventq_wait() returning prematurely bug42034: fix compile issue when CONFIG_SFC_RESOURCE_VF is not defined bug44302: fix cross compiling for RT kernel failing due to kernel-devel pkg bug44092: improve TCP window handling for accelerated loopback path bug44412: fix tx timestamp kernel backtrace on packets handled in kernel bug43337: allow blocking in epoll_wait() on set with no accelerated fds bug44257: ensure type of CI_PAGE_MASK can mask a pointer on PPC64 bug44257: fix ef_memreg_alloc() to work on PPC bug44473: require CAP_NET_ADMIN capability to install MISMATCH MULTICAST VLAN filter bug44401: fix interrupt-driven throughput performance regression bug44467: build fix for linux-3.14-rt bug44518: improve handling of small TCP windows with window scaling bug42193: handle TCP state changes on zero-window probe, avoids sockets stuck in CLOSING bug43972: fix kernel panic during aggresive stack creation bug44360: prevent ef_vi app from removing sniff filter it does not own bug43269: fix "solar_clusterd -u" - was failing silently bug44693: fix concurrent callers of ef_pd_alloc_by_name() resulting in seg fault bug44719: set solar_clusterd process name so it can be killed using pkill bug44612: fix debug build kernel panic due to modifying flags without lock bug44888: ensure Onload sends data immediately following window update bug44543: fix bind() fails with EEXIST instead of EADDRINUSE when SO_REUSEPORT is enabled bug41722: change onload_stackdump -z to output to stdout instead of syslog bug42058: prevent small memory leak in onload_stackname_restore bug44852,bug44491: fix MCDI timeouts when allocating buffers under heavy interrupt load bug44852: set EF_FREE_PACKETS_LOW_WATERMARK=rxq_size/2 by default bug44943: fix bind() to bogus IP address with SO_REUSEPORT would return ENOSYS bug44269: fix filter leak and kernel panic when using SO_REUSEPORT and app restarts bug44548: fix SO_REUSEPORT panic when bound socket closes without calling listen or connect bug42819: fix too many PIDs sharing stack causing "onload_stackdump lots" to seg fault bug42350: fix ef_eventq_poll() to return SW events generated by ef_eventq_put() bug44494: fix EF_PREFAULT_PACKET option not working when SO_REUSEPORT is used bug43824: do not spin for sub-millisecond timeouts to poll(), select(), etc bug45001: remove all:vid filter support from ef_vi. bug45127: return correct errno when out of sockets for SOCK_DGRAM socket() call bug44280: fix error path for pipe() when out of endpoints, avoids seg fault bug44717: fix seg fault when "onload_stackdump get_opt" called with no options bug45273: improve errno returned when PTP license is missing bug45390: return zero timestamp on error in ef_vi_receive_get_timestamp*() bug41166: fix onload_stackname_restore() when stackname set to ONLOAD_DONT_ACCELERATE bug45389: fix debug build assertion on Falcon hardware after EVQ counter wraps bug45208: fix solar_clusterd may not always exit when signaled openonload-201405 ----------------- Update net driver and firmware (4.1.0.6734) Add AOE driver Add support for SFN7142 (40G) NICs Add support for recent Linux kernels (up to Linux 3.14) Add support for recent enterprise distributions (RHEL7) Add support for recent compiler versions (gcc-4.8) Add SO_REUSEPORT application clustering Add support for transmit timestamping (SO_TIMESTAMPING, TCP and UDP) Add wire-order delivery extension API Add onload_move_fd() extension API Add support for multicast hardware loopback Add coded examples for extension API in src/tests/onload/ Add SYN cookie implementation to Onload TCP stack bug39598: fix 32-bit app on 64 bit kernel Power PC assertion failure bug37972: fix initialization for static work_structs to only happen once bug40081: use new Linux MSG_SENDPAGE_NOTLAST flag to speed up TCP sendfile bug40027: don't leak time-wait and fin-wait-2 sockets when killing orphan stack bug40957: correctly handle timestamp events when event processing is delayed bug34927: don't report erroneous bad stack message when using stackdump -z bug41686: don't dereference NULL pointer in TCP recv for non-TCP/unknown fd bug41688: don't leak memory in onload_fd_check_msg_warm() bug41687: don't check tcp header fields in the case recipient is known bad bug42281: remove sfc_tune module; use "intel_idle.max_cstate=0 idle=poll" instead bug42246: fix debug build assertions in UDP checksum validation bug42246: properly check all lengths (eth,ip,udp) of bad incoming packets bug42011: improve handling of SO_BINDTODEVICE multiple interfaces on same subnet bug42489: free resources in ef_memreg_free() that ef_memreg_alloc() allocates bug42634: fix abort event handling: invalid descriptor ids could be seen in ef_vi bug41907: show stack name in onload_stackdump output even if no PIDs to display bug42668: remove spurious fallback warning when allocating RSS set of size 1. bug42777: fix issue causing timestamps to possibly lose sync. bug42276: improve build and installation on Debian and Ubuntu bug42745: avoid system hang on realtime kernels caused by softirq MCDI deadlock bug41129: improve chances of stacks choosing different IP ID ranges bug42907: correctly report EF_LOG default in onload_stackdump lots output bug24806: add netstat-style output to onload_stackdump bug43392: don't increment tcp_out_segs onload_stackdump counter for MSG_WARM bug43521: make onload_msg_template_update() respect O_NONBLOCK flag bug39578: reinforce ARP entry when new data is ACKed, even if not pure ACK. bug43754: fix bonding intf not accelerated on 3.13 kernels, restart sysfs read. bug43884: fix bonding filename buffer length calculation. bug43900: fix theoretical data reordering when repriming EF_INT_DRIVEN=1 stack bug43896: disable PIO on 32 bit systems bug35506: improve warning when running stackdump prior to loading drivers bug43451: count all reasons unlock_slow is happening in onload_stackdump output bug43753: fix lockup closing endpoints in wrong context on real-time kernels openonload-201310-u2 -------------------- Updated net driver and firmware (v4_0_2_6645) task39845: add solar_clusterd for SolarCapturePro application clustering task41317: introduce separate block kernel unicast and multicast filters task37488: add ability to control Onload log verbosity using EF_LOG task41567: add phys_mod_gid module option to sfc_char task41905: allow use of VFs in ef_vi even when not root task8595: Improve onload_stackdump TCP socket stats (add tx_defer and rx_isn) bug39578: Improve ARP confirmation where virtual MAC addresses are in use bug41219: Fix unmapping incorrect memory in ef_vi_free() bug41165: squash log for EOPNOTSUPP in efch_resource_alloc bug41304: fix netif_tcp_helper_mmap error path to undo PIO mapping when failure bug39592: use ci_sys_read to avoid inline failure during build with gcc 4.7 bug41391: raise default TX push threshold to improve latency when firmware batches bug41193: keep VF state per nic to allow mix of new and old NICs using VFs to work bug41351: do not allow allocating extra VIs when non-power-of-2 VI set requested bug41627: fix compilation error in JNI wrapper bug40844: sync control plane state with kernel when stack is first created bug41152: forbid socket move for tcp loopback and handover when in epoll set bug41751: fix problems with application of fcntl() to OS socket bug41830: RHEL7 beta kernel compatibility build fixes bug41542: Avoid bogus unused function build warning on non-smp kernels bug39111: protect against bad values for EF_TCP_INITIAL_CWND (when cwnd < mss) openonload-201310-u1 -------------------- Updated net driver (v4_0_2_6628) and firmware (v4_0_1_6624) Add support for RHEL6 update 5 task33976: Support overlapping PIO sends (both templated and not). task17899: Support empty stackname to onload_set_stackname() task39134: Add ef_filter_spec_set_{unicast,multicast}_mismatch() task40066: Implement UDP sendfile (via OS) task33976: Improvements to templated sends task36587: onload iptables support for VLANs on EF10 task39338: support additional filter types needed for SolarCapture Pro task40139: support license challenge needed for SolarCapture Pro task40573: allow use of variable size RSS sets on EF10 task40019: Add onload_fd_check_feature() to extensions API task39340: Initial support for allocating VIs from a set to get load spreading task39156: add ef_filter_spec_set_block_kernel() at ef_vi layer bug40764: Fix packet length in onload_tcpdump when VLAN header is removed bug40884: Use 64 bits timeout value in select() bug40951: Fix leak of pd when allocate_pio() returns an error bug39156: Restore correct operation of multicast/unicast-all filters on EF10 bug40825: Fix kernel panic when efab_add_mm_ref() fails with ENOMEM bug40749: Fix theoretical issue pushing improper descriptor with doorbell bug40571: Improve time conversion in getsockopt(TCP_DEFER_ACCEPT) bug40199: Return >1k of data when accessing onload iptables /proc files bug39052: Forbid TCP MSS < 64 to avoid problems with hostile stacks bug39549: Fix JNI wrapper's use of onload_fd_stat() to cope with fd_stat failure bug40526: Fix assertion firing when tmpl_alloc() fails to allocate pio cleanup: Improve performance of sfcaffinity_config and sfcirqaffinity bug40452: Fix efrm_vi_q_alloc() failing causing kernel panic bug40357: Fix kernel panic when ef_vi_alloc_from_set() fails cleanup: Fix error code returned by ef_vi_transmit_pio() when not supported. cleanup: Fix memory leak when NIC compatibility check failed in ef_vi bug40277: Report correct errno even if OO_EPOLL1_IOC_ADD_STACK ioctl called bug40215: Fix 32bit UL on 64bit kernel cmsg issue on Linux >= 3.10 bug40169: Fix corruption of TX DMA overflow queue by ONLOAD_MSG_WARM bug39858: prime all stacks before going to sleep in epoll to avoid long delays bug40077: Don't try and remove filters with spinlock held on ef_vi app exit bug40081: cope with Linux >= 3.3 internal API change for f_op->sendpage bug39531: request event merging on EF10 to improve throughput at high pkt rates bug39531: Allow control of threshold for tx push (EF_TX_PUSH_THRESHOLD) cleanup: Build fixes for C++ compilers. bug39536: Use 32 bit dma_id on EF10 to allow EF_MAX_PACKETS > 64K bug39834: Avoid pipe getting stuck in read when trying to send big buffer bug39990: Don't enable event queue DOS protection on NIC reset bug37217: Avoid outstanding flush events on real-time kernels bug37217: Fix memory leak when dealing with outstanding flush events bug39897: Fix 3.4.6 kernel panic using MAP_HUGETLB and ef_memreg_alloc bug39874: Fix header contamination in memreg.h (don't include ci/efhw/common.h) bug39821: Fix state corruption when MSG_WARM is used together with PIO. openonload-201310 ----------------- Updated sfc net driver and firmware to v4_0_0_6585. Add support for SFN7122F (Torino). Add support for recent Linux kernels (up to 3.11). Add support for recent enterprise distributions. Include efpio test application for measuring latency of ef_vi layer with PIO. Add MSG_WARM TCP send feature. Add JNI wrapper for onload extensions API. Add support for SO_TIMESTAMP on TCP sockets. task35946: Accept rx_usr_buf_size that is not larger than expected. task24106: Added extension API to set onload stack options at runtime. task31321: Added extension API to save and restore current stack name. task19643: Added dup3() support. task32188: Added option EF_TCP_SNDBUF_MODE to limit pkt bufs used on transmit. task35980: Added ef_vi_receive_prefix_len() and ef_vi_receive_buffer_len(). task33560: Improved onload_stackdump 'processes', 'threads' and 'env' output. task32790: Add EF_VFORK_MODE option to solve vfork()/java problems. task38715: Improved the efrm_filter_insert() interface. task38715: Add option to allocate any VI from an efrm_vi_set or ef_vi_set. bug39673: Use netdev notifier to update iptables when interface name is changed bug39681: fix zero-copy receive from OS to correctly set iov_len bug39569: fix compilation warnings and problems with gcc-4.8 bug38389: increase range of values that EF_TCP_BACKLOG_MAX can be set to bug38304: implement EF_RETRANSMIT_THRESHOLD_SYNACK bug38900: Fix Onload RPM build on Oracle Server distro. task8595: Fix return code from some invalid uses of dup2() and dup3(). task8595: Fix bug in oo_trusted_lock_drop(). bug38422: Fix interaction between shutdown() and MSG_CORK bug38425: Fix leak of socket buffer when out of fds in accept(). bug38142: Avoid double-lock of fd table bug37962: Fix EF_TCP_BACKLOG_MAX usage bug37995: Fix sfcaffinity_config when bonded interfaces present bug38053: Use #!/bin/bash for libc_compat.sh bug34768: Kill bogus warnings about unexpected flush events. bug36102: Return proper errno when ioctl(FIOASYNC) fails bug36693: Silence spurious warning about smp_processor_id() in sfc_affinity bug37998: Fix vi_set (RSS) in ef_vi using filters bug34708: Make efrss filtering capability more flexible bug37899, bug23309: Fix EPOLLET and EPOLLONESHOT issues bug37946: Use Linux workqueue as per-stack workqueue bug37908: Detect sendmmsg presence via standard "nm $libc_path" bug36102: Make FASYNC code work with OS socket properly bug37608: bug36582: fix SA_ONESHOT support to use in-kernel copy bug36095: F_SETFL should be propogated to OS bug37611: Ensure consistent ordering of event and interrupt delivery by hardware bug37637: Detach iommu domain when unbinding from PCI VF bug37722: Destroy huge page packet set from workqueue bug36095: Check ci_sys_fcntl(F_SETFL) return code bug37232: Remove init and python scripts when uninstalling bug36582: Keep in-kernel copy of signal states bug35341: Move all per-stack postponed jobs into per-stack workqueue bug34301: Fix race condition in efab_vi_rm_eventq_wait() cleanup: SLES11 uses obsolete F_OWNER_GID instead of F_OWNER_PGRP, cope with that bug37380: Do not complain about RTAX_REORDERING bug37336, bug36181: fix UDP FIONREAD calculation bug37412, bug36181: fix UDP receive queue accounting bug37300: Downgrade MSS limit message if we've also logged a statistic count for it bug36402: Avoid probing sockets before they're fully initialised bug36402: Don't set fdtable entry to unknown until after we've closed fd. bug36683: Fix assertion failures in onload_zc_send, onload_zc_alloc_buf bug36181: Improve tcpdump for loopback packets: set zero mac addresses bug37210: Prevent shmem access problems when stack is shared bug37208: Fix onload_tcpdump detach from wedged stack bug36181: Pass bad packets to onload_tcpdump bug36228: Drop postponed file references from workqueue bug34790: Properly retransmit SYN-ACK if it was lost bug36641: Use new iommu API for linux >=3.3 bug34383: improve UDP PMTU discovery on kernels >= 3.6 bug34617: Fix delayed free of sockets stuck in the non-atomic queue bug34383: fix crash in pmtu when net interface goes down bug38750: build fix with CI_CFG_MMAP_EACH_PKTSET=0 bug38750: build fix with CI_CFG_PKTS_AS_HUGE_PAGES=0 bug37217: avoid long task duration of "flush complete" event handling bug38511: Fixes spurious unlock on fd table bug38649: avoid double-free of packets race when dropping UDP receive queue bug37471: Fix stack receiving multiple copies of single packet for multicast on VLANs bug36712: Fix multicast acceleration/replication bug34448: Fix possible race condition between epoll and handover. bug37090: Increase max number of stacks handled in process termination code. bug36558: Shut down ep->fasync_queue at handover. bug36139: gcc 4.7 build fix. cleanup: Suppress unwanted IFA_CACHEINFO messages. cleanup: Fix installation of sfcaffinity.py for Debian based distros. bug35662: Fix connection getting stuck when SO_RCVBUF is very small. bug35926: Add support for F_SETOWN_EX/F_GETOWN_EX. bug35907, bug35662: don't decrease receive buffer if already less than MSS. bug35662: Get rid of lower limit on SO_RCVBUF. bug30266: Fix dropped O_NONBLOCK when socket in epoll set handed to kernel. bug30266: Ignore local cached routes to fix loopback acceleration. bug34222: Fix kernel warning provoked when stack fails to initialise. bug33004: Fix bug handling IP_MTU_DISCOVER socket option. bug34124: Fix bug using EF_PACKET_BUFFER_MODE=1 with IOMMU and multiple NICs. bug30031: Respect EF_SHARE_WITH when accelerating TCP loopback. bug27621: Fix error returned by unknown ioctl() on recent kernel versions. bug33820: Fix kernel memory leak in Onload control plane. bug33817: Fix IP length field in ICMP packets sent by Onload. bug33654: Do not postpone SIGPROF signal by default. bug33494: Fix race between stack creation and NIC reset. bug32168: Fix TCP recv() blocking behaviour when reading to buffer of length 0. bug33198: Update TCP_DEFER_ACCEPT to match recent Linux behaviour. bug21474: Added option EF_FORCE_TCP_NODELAY to force TCP_NODELAY option on. bug32488: Keep calling oo_timesync_update till cpu_khz is stablized. bug32281: Added option EF_FREE_PACKETS_LOW_WATERMARK. bug31766: Improve handling of siginfo_t when postponing signals. openonload-201210-u2 -------------------- Updated sfc net driver to v3_3_0_6309 Add ptp to modprobe'd modules when loading net driver. Add support for recent Linux kernels (up to 3.9) bug37783: fix counting error in async packets counter for onload_stackdump bug34571: Handle EF_DONT_ACCELERATE + EF_NO_FAIL=0 in pipe(). bug37610: EF_EPOLL_CTL_FAST=1: check if fd was reused before postponing epoll_ctl. task8595: Reorder code to avoid having to defer drop of file reference. bug36423: fix compatibility issues with sigaction on linux-3.9 kernels. bug36423: Remove re-definition of sigaction32. bug37129: Initialise epoll blocking flag on create. bug37129: allow EEXIST when handing over fd to OS epoll set. bug37187: Fix ef_vi_alloc* not returning q_ids. bug36665: Fix 32-bit app on 64-bit kernel due to citp_opts misalignment. bug36697: Reduce open fds in Onload tools by calling closedir. bug36423: Fix linux-3.9 kernel compilation. bug35968: Store memory mapping sizes as unsigned values to double usuable sizes. task28435: Fixes to get working in-tree build again. bug36170: Fix double lock_kernel use. bug35910: Fix EF_UL_EPOLL=1 when EF_EPOLL_CTL_FAST=1 and no accelerated fds. bug34910: Only use tx push if exactly one descriptor. bug35028: Remove __devinit usage from Onload drivers (linux-3.8 compatibility). task17899: Repond sensibly if a bad interface is passed to efsink. task8595: Fix caller of oo_os_sock_get_from_ep() not checking return value bug35232: Avoid leaking fds in linux-3.7 kernels. bug33759: Fix sock_map_fd/sock_alloc_file implementation for linux-3.7. bug34730: Replaced deprecated file check operator in onload_tool for Ubuntu. bug35119: Fix ef_vi receive of jumbo frames. bug34467: Add missing read barrier when waiting for dup2 newfd to close. bug34466: Fix bug in dup() in case that the syscall fails. Fix "sfcaffinity_config auto" when sfc_ib driver is loaded. Ignore copyright header when making ef_vi api hash. openonload-201210-u1 -------------------- Updated sfc net driver to v3_3_0_6246. task32441: stackdump: Add count of TCP sends via kernel due to no mac. task33571: Added EF_SIGNALS_NOPOSTPONE option to control signals intercepted. task32571: Support for AOE (FPGA NICs). task20738: Added support for IP_ADD_SOURCE_MEMBERSHIP etc. bug32440: Fix handling of firewall MAC rules. bug31498: Fix return value from sendmmsg() in error case. bug32839: Fix leak of epoll file descriptor. bug33072: Fix leak of pipe file descriptor. bug32957: bug32960: Fix handling of bad parameters to pipe() and pipe2(). bug33042: Fix EF_PREFAULT_PACKETS on some versions of gcc. bug33144: Allocate more random initial sequence numbers for TCP. bug33133: Fix bug causing RTT estimates to not be updated. bug32511: Handle iommu_attach_device failure in efrm_pci_vf_probe. bug30511: Do not remove HW filters when SW filter table fills. bug33311: Fix handling of SA_RESETHAND (SA_ONESHOT). bug33405: Check for pending signals when spinning in write(pipefd). bug33237, bug33192: Fixes to Onload recovery following NIC reset. bug33571, bug33654: Do not defer signals: SIGBUS, SIGSEGV, SIGPROF. bug32061: Reset affinity hint before freeing VF interrupt. bug33459: Fix buffer leak after close with EF_TCP_SERVER_LOOPBACK=2. bug32280: stackdump: Fix error accessing files under /proc. bug33565: stackdump: Fixup printing of cmdline to account for null byte. bug33632: Fix once-per-stack memory leak. bug33647: Fix memory leak when using huge pages. bug33639: Fix warning due to creating proc entries in atomic context. bug32467: Fix bug when TCP bind() call results in handover to kernel. bug32325: Fix problem installing init scripts on Fedora 17 with lsb package. bug32602: Fix leak of packet buffers in TCP receive path corner cases. bug32670: Fix bug allocating packet buffers when memory is fragmented. bug32494: Fix truncation of "onload_stackdump filters" output when large. bug32721: Fix kernel panic provoked by low system memory. bug32462: Fix onload_iptables on older python versions (2.4). bug32659: Fix hang in fork() (exhibited by Java processes). bug33759: Compile fixes for Linux kernel 3.7. openonload-201210 ----------------- - Updated sfc net driver to v3_3_0_6222B. - task26187: Firewall interface to limit traffic that can bypass kernel stack. - task26187: Iptables integration supports subset of iptables rules. - task28045: Default onload_stackdump output improved to identify process info. - task28045: New onload_stackdump commands: env, processes, affinities - task19306: Acceleration of pselect(), ppoll() and epoll_pwait(). - task31567: Improve epoll_wait() and poll() performance when heavily loaded. - task30177: Add physical addressing mode EF_PACKET_BUFFER_MODE=2 or 3. - task30177: Add onload module option phys_mode_gid. - task8595: Removed module option unsafe_sriov_without_iommu. - task26188: Support packet buffers in huge pages (EF_USE_HUGE_PAGES). - task31354: New mode EF_TCP_CLIENT_LOOPBACK=4 to put loopback in new stack - task29363: Keep non-blocking free pool replenished in loopback cases. - task8595: Fix frequency with which we call schedule() with EF_UL_EPOLL=2. - task30187: Added support for sendmmsg() on accelerated UDP sockets. - task8595: Set IRQ affinity hint for EF_IRQ_CORE with VFs. - task8595: New stackdump stats relating to sock_wakes and unlock_slow. - bug30208: Return error if zero-copy buffers are used with wrong stack. - bug31176: drop lock if returning error from ci_udp_zc_recv_from_os - bug30890: Fix bug with EF_UL_EPOLL=2 when sockets are handed over to kernel. - bug22388, bug25644: Fix cleanup when fail to insert h/w filter for multicast. - bug24199: Fix bug relating to multicast joins on multiple vlan interfaces. - bug31262: Fix kernel buffer overrun provoked by "onload_stackdump filters" - bug31333: Fix acceleration with SOCK_NONBLOCK or SOCK_CLOEXEC. - bug31130: Fix bug on second call to connect() on TCP socket. - bug30731, bug31368: Prevent infinite loop due to post-poll-list corruption. - bug30731, bug31368: Prevent infinite loop due to loopback-list corruption. - bug31449: Fix timeout bug in accept() when spinning. - bug31464: Fix bug in onload_zc_recv() when multiple multicast recipients. - bug31494: Do not accept net packets for loopback sockets. - bug31494: Properly reorder loopback packets when sending. - bug31497: Increase default number of stacks EF_UL_EPOLL=2 can handle. - bug31497: Add module option epoll2_max_stacks. - bug31515: Fix kernel panic with EF_UL_EPOLL=2. - bug30825: Don't allow packets to be received from ports that are down. - bug31548: Fix case that could leave onload stack persisting after app exit. - bug31565: Fix bug in combination of EPOLLPRI and EPOLLET in userlevel epoll. - bug31573: Userlevel epoll ignored EPOLLWRNORM and EPOLLWRBAND. - bug31574: Determine kernel pkg name without being confused by other pkgs. - bug31565: Fix combination of EPOLLWRBAND and EPOLLET in userlevel epoll. - bug31600: Fix build for linux kernels >= 3.5.2 - bug31619: Fix bug in accelerated pipe causing data corruption. - bug28514: Fix double-release of packet on out-of-order TCP receive. - bug31638: Fix TCP_DEFER_ACCEPT with TCP loopback acceleration. - bug29449: Fix bug relating to FIOASYNC signal handling. - bug31310: Fix EF_NAME with setuid applications. - bug31410: Fix route via a gateway that is a local IP on an accelerated intf. - bug30140: Fix blocking read of length zero from pipe: it should not block. - bug31785: Enforce EF_RXQ_MIN and EF_MIN_FREE_PACKETS. - bug31278: Fix incorrect ACK field in RST-ACK packet. - bug25680: Avoid thundering herd problem when apps start with same EF_NAME. - bug32011: Enable faststart after idle sender when no timestamp option. - bug32011: Reduce default dynamic ACK threshold to 16 by default. - bug32028: Fix EPOLLONESHOT bug that could cause epoll_wait to not unblock. - bug32166: Further workarounds for IOMMU foibles. - bug32168: Do not block in read() with count=0. - bug32234: Add diagnostic to warn user about old unsupported iommu. - bug32284: Intercept __recv_chk and __recvfrom_chk. - bug31889: Fix crash with TCP loopback accept() and out of endpoint buffers. - bug31669: Drop TCP loopback connection if the other end is destroyed. - bug31974: Fix accept() from kernel on 2.6.18-308.11.1.el5. openonload-201205-u1 -------------------- - Various workarounds for IOMMU-related kernel bugs. - Compatibility with RHEL6.3 and linux-3.4.0. - Use IP ID of zero with TCP. - bug29724: Do not accept unsolicited ARPs that change MAC associated with IP. - bug29870: Share iommu domain between VFs in a single Onload stack. - Fix previously ignored option EF_TCP_ADV_WIN_SCALE_MAX. - bug29996: Do not send packets with IP TTL=0. - bug27919: Fix poll() after nonblocking connect on TCP socket. - bug27932: Fix RPM dependency bugs. - Improve error messages when out of socket buffers. - Reduce cost of waking other threads for loopback and pipes. - bug30140: Fix bugs in error handling in pipe read/write. - bug30140: Fix race with pipes between close() of write-fd and read(). - Various improvements and minor bug fixes to spin-loops. - bug30199: Fix python3 compatibility bug in affinity scripts. - bug30214: Return 0 rather than EAGAIN on onload_zc_recv() if called callback. - bug23968: Fix warnings from recent gcc versions. - bug30218: Fix getsockopt(TCP_INFO) on new socket. - bug30219: Do not print scary warning when tcgetpgrp() is called. - bug29929: Ensure we always drain OS path in UDP onload_zc_recv(). - Avoid syscall in ioctl(SIOCATMARK). - bug30260: Fix RTNL message length for RTM_GETLINK request. - bug30173: Do not wait forever for flush to complete -- it may fail. - bug30251: Don't return error with EF_NO_FAIL=0 if socket type not onloadable. - bug27042: Reduce delayed-ack time to avoid spurious retransmits. - bug26090: Fix send to host with no route and SO_BINDTODEVICE. - Fix minor memory leak in cicppl_arp_pkt_tx_queue. - bug26089: Fix packets sent via kernel w SO_BINDTODEVICE going to wrong intf. - Fix error return code from udp send interrupted by signal. - bug30359: Fix error code returned from sigaction and exit_group syscalls. - Avoid polling the stack when EF_POLL_ON_DEMAND=0. - Improve onload_stackdump's handling of zombie stacks. - Add "onload_stackdump -z kill" to terminate stacks lingering after exit. - bug30218: Reduce initial RTO to 1s from 3d to match Linux. - bug30516: Fix interrupts with scalable packet buffer mode. - bug30633: Fix kernel panic on driver reload. - License ef_vi samples as BSD so users can cut-and-paste. - bug27835: Added extern "C" to ef_vi headers to ease use from C++. - bug21349: Keep zwin timer running in FIN-WAIT-1. - bug30863: Fix for ARP confirmation when using a gateway. - bug30892: Fix inconsistency in locking operations. - sfc: Updated sfc net driver to v3_2_1_6099. - bug30711: ef_vi: Make SOP/CONT flags available in RX_DISCARD events. - bug31026: Fix seg-fault in epoll_ctl(DEL) with EF_UL_EPOLL=0|2. openonload-201205-p4 -------------------- - bug30511: Do not remove HW filters when SW filter table fills. - bug30519: Fix leak of OS socket reference, leaving UDP port in-use. - Update version of libciul to 2.0.0. (Should have been done in p2 release). openonload-201205-p3 -------------------- - bug30429: Fix assertion in kernel when >64K packet buffers used. openonload-201205-p2 -------------------- - bug30110: Fix sfcaffinity_config regression and support newer kernels. - bug29929: Return from onload_zc_recv on END_OF_BURST during recv via OS. - bug30108: Fix kernel panic caused by TCP loopback acceleration. - bug30429: Fix bug causing misbehaviour when >64K packet buffers used. - bug30429: Fix integer overflow when run out of buffer table space. - bug30417: Fix bug in TCP send() path leading to app seg-fault. - bug30445: Fix bug in TCP send() path leading to stack lock getting stuck. openonload-201205 ----------------- - bug28090: Fix close and destructor functions for epoll. - bug28268: Fix command line arg handling in onload_tcpdump. - bug27932: RPM spec file dependency fix for MRG rt kernels. - bug27700: Validate options in kernel to protect against bad values. - TCP loopback acceleration (see release notes). - Don't disable interrupts when lock contention detected. - Improvements to TCP/UDP select/poll/epoll handling in kernel. - Do not grab stack lock when EF_POLL_ON_DEMAND=0. - bug27186: Fix sys-calls and interrupts with select + TCP-listener. - bug27102: Fix bugs relating to signal handling at process termination. - bug27329: Fix scaling of timers on SFN6x22F adapters. - TCP striping feature reinstated. - bug27530: Allow non-root to set EF_IRQ_CORE with EF_PACKET_BUFFER_MODE=1. - Put useful info in /proc/$pid/fd to identify Onload sockets and stacks. - Reduce ACK rate when streaming to increase TCP efficiency. - Fix epoll bug failing to report data arriving via kernel. - bug2641: Fix problems relating to handling of ARP. - New tool onload_fuser to identify processes using Onload. - bug27997: Fix bug that caused bad error code to be returned by close(). - Added module options to set max size of control plane tables. - bug28096: Do not access user-space data under spinlock - bug28090: Fix close and dtor functions for epoll. - bug28228: getsockopt(udp_sock, IP_PKTOPTIONS) should return ENOPROTOOPT. - bug28268: Fix command line parsing bugs in onload_tcpdump. - bug28267: Use MAC and IP addresses to validate reinforcement requests. - Add end-of-batch flag ONLOAD_ZC_END_OF_BURST to onload_zc_callback. - New option EF_TCP_RST_DELAYED_CONN prevents delayed delivery. - bug28558: onload_zc_send() now respects O_NONBLOCK flag. - bug28556: Fix fstat() interception. - bug28691: Fix error path in pipe() call. - Include debug symbols in binaries by default. - bug28480: Fix process exit interception. - bug28598: Check untrusted values in ci_tcp_reset_untrusted() - bug27921: close synreq queue in linux way: no FIN or RST. - bug28622: Fix RPM build failure with version 3 kernels. - bug28923: Fix spinning in onload_zc_recv(). - bug28955: bug28960: fix getsockopt(IP_PKTOPTIONS). - bug28205: Fix error path in onload_tcpdump. - bug29009: Fix timeout extension bugs. - bug28936: Fix SO_LINGER behaviour when references to a socket. - bug29073: Handle IPPROTO_IP sockopts for ip6 sockets. - bug28123: Allow dup2() onto fd with concurrent accept() to complete. - bug28974: Check for socket errors and OS receive in onload_zc_recv() spin. - bug29222: Correctly handle iov_len==0 cases. - bug27413: Handle interrupts in threads when EF_PACKET_BUFFER_MODE=1. - bug29322: Fix pipe + EPOLLET. - Get MTU from Linux route when it is available. - Avoid onload_install error if service config fails. - Support ioctls FIOASYNC and SIOCSPGRP. - Add further detail to stackdump output for sockets. - Support fcntls F_SETSIG and F_GETSIG. - Avoid unnecessary sys-calls with O_ASYNC is set but F_SETOWN is not. - bug29458: Properly limit number of pipe buffers. - bug29420: Various problems managing VFs fixed and/or worked-around. - bug29107: Fix bonding acceleration on recent kernels (3.x). - Fix stackdump output for pipes, which had byte counts reversed. - Fix bug in connect() with SO_SNDTIMEO timeout. - bug29357: Only allow VFs to be used with kernels. - bug29357: Avoid IOAPIC memory range in VF iova linear allocator. - Do not support SR-IOV (VFs, EF_PACKET_BUFFER_MODE=1) on 32-bit kernels. - ef_vi: Relicensed under the LGPL to permit distribution of proprietary apps. - ef_vi: Support receive-side scaling (RSS). - ef_vi: Fix kernel panic on failure to allocate an ef_vi_set. - ef_vi: Added protection domains and registered memory. - ef_vi: Option to use VFs, allowing more registered memory and lower latency. - ef_vi: Option to use physical addressing. - ef_vi: bug27821: Don't indicate RX_DISCARD for IP fragments. - ef_vi: Update samples to use registered memory. - ef_vi: The network interface is now a required arg to efpingpong. - ef_vi: Fix bug in efsink and dump out packet contents. openonload-201109-u2 -------------------- - Fix build errors with RHEL5.7 updates. - Support for recent Linux kernels including 3.2. - Workaround bug in gnumake on Fedora installs. - bug22279: Fix latency spike provoked by lock contention. - bug27605: Fix resource leak when epoll fd is closed. - bug27605: Fix deadlock when epoll_wait() interrupted by signal. - bug27566: Fix seg-fault with EPOLL_CTL_DEL with NULL events param. - Improve epoll performance with concurrent epoll_ctl() and epoll_wait(). - bug27672: Fix for onload_zc_recv with fragmented-looped-back datagrams. - Added support for F_DUPFD_CLOEXEC. - bug27702: Tighten rules for stack sharing to prevent privilege escalation. - Added config option EF_SHARE_WITH to control sharing between users. - bug27763: Fix bug in ef_iobufset_remap() that broke ef_vi samples. - bug27834: Fix bug in onload_zc_recv() when receiving via kernel. - bug27788: Fix call stack corruption caused by receive filtering extension. - bug27905: Bug prevented incoming connections on unaccelerated bonded intf. - bug27742: Fix epoll bug preventing notification of receive via kernel. - bug27984: Fix pipe creation when pipe buffers are fragmented. - bug27986: Fix onload_tcpdump -i vlan_if. - bug27705: Fix kernel->user data leak. - bug27704: Fix security bug allowing user to write into kernel memory. - Remove bashism from onload_uninstall openonload-201109-u1 -------------------- - Prevent threads from exiting until they leave onload critical section. - Added support for SFN5322F and SFN6x22F adapters. - Improvements to onload_stackdump output. - Added option EF_DEFER_WORK_LIMIT to limit how much work can be deferred. - Support IOMMU pass-through mode with EF_PACKET_BUFFER_MODE=1. - Improve performance of epoll_wait() with unaccelerated file descriptors. - onload_tcpdump will no longer cause lock contention. - Replace EF_POLL_FAST_LOOPS with EF_POLL_FAST_USEC. - Replace EF_POLL_NONBLOCK_FAST_LOOPS with EF_POLL_NONBLOCK_FAST_USEC. - Added onload_thread_set_spin() extension for per-thread control of spinning. - Added pipe2() acceleration. - Improve implementation of EF_POLL_ON_DEMAND to reduce lock contention. - Reduce jitter in apps spin-blocking in select/poll/epoll. - Avoid unwanted interrupts when spinning. - Improve compatibility with kernel patch updates. - Return buffers of appropriate size in onload_zc_alloc_buffers() when known. - Expose all spin-related config options via "onload_stackdump opts". - ef_vi: Add version checking and reporting. - Reduce chances of lock contention jitter caused by timeout events. - sfc: Updated sfc net driver to v3_2_0_6040. - bug26154: Fix bug returning error from ioctl() call. - bug26245: Fix problem with SO_BINDTODEVICE when used to unbind. - bug26276: Handle same IP on multiple interfaces. - bug26338: Fix interrupt name when EF_PACKET_BUFFER_MODE=1 (linux 3.x). - bug26346: Fix panic when non-solarflare interface given to sfcaffinity_tool. - bug24690: Fix epoll_ctl(op=EPOLL_CTL_DEL, event=NULL). - bug22432: Support SOCK_CLOEXEC in socket() and accept4() calls. - bug26579: Handle IP fragments in zero-copy receive properly. - bug22432: Support SOCK_NONBLOCK in accept4() calls. - bug26620: Check and don't assert that socket is connected for zc_send(). - bug26704: fix return codes for onload_zc_send(). - bug26781: Fix data corruption with onload_zc_recv(). - bug26828: Return error rather than -1 from onload_zc_recv(). - bug26843: Correctly return status when ICMP error received in zc_recv(). - bug26798: Fix race condition in pipe close. - bug26695: Fix reference counting bug when probing unknown file descriptor. - bug26798: Fix race condition in pipe close. - bug26997: Fix regression in sending of TCP out-of-band data. - bug26899: Restore EF_FORK_NETIF behaviour for unnamed stacks. - bug27052: Fix bugs in shutdown() behaviour. - Fix regression in the latency profile. EF_TCP_FASTSTART_IDLE was not set. - bug27128: Set msg_namelen properly in UDP onload_zc_recv() via kernel. - bug22279: Fix wakeup race that could cause threads to block for too long. - bug27160: Re-accelerate bond after non-acceleratable port removed. - bug27181: ef_vi: Fix bugs when allocating ef_vi_set. - bug27186: Accelerated select treated TCP listener as kernel socket. - bug27180: Send SIGPIPE when return EPIPE from onload_zc_send. - bug27188: Fix bad warnings in sys-log with EF_UL_EPOLL=2. - bug22279: Fix bug causing multicast loopback delivery to fail to wake. - bug26541: Fix count-down timer interrupts on SFC9000 adapters. - Fixed bug that removed file on onload rpm upgrade. openonload-201109 ----------------- - Improved transmit latency for kernels pre-2.6.32 (includes RHEL5). - Scalable Packet Buffer Mode; increases max packet-buffers (see ReleaseNotes). - Zero-Copy API for TCP transmit and UDP receive (see ReleaseNotes). - New tool onload_tcpdump to capture accelerated packets. - Improved performance of epoll where the fd-set includes non accelerated fd's. - Improved performance for UDP and TCP listening sockets. - Improved resilience to termination via signal for apps sharing stacks. - Improved handling when short of packet buffers. - Added dynamic version of the Onload Extensions Library. - Option EF_IRQ_CORE and EF_IRQ_CHANNEL to affinitise Onload interrupts. - Spinning in TCP send now enabled with EF_POLL_USEC. - ef_filter_spec_set_unicast_all() and multicast_all() are now supported. - sfc: Updated to v3_1_0_4083 - bug25527: correctly handle finding bond info for VLAN over bond. - bug25372: check bonding hash for multicast. - bug25037: SO_TIMESTAMP copes with server time going backwards. - bug25148: do not reset incoming connection when backlog is full. - task21712: defer process termination if shared stacks are locked. - bug24872: handover sockets if listen() or connect() fail with ENOBUFS. - bug24874: fix fcntl(F_GETFL) for pipe. - bug24690: allow NULL epoll_event when deleting fd from epoll set. - bug24566: drop socket lock before running pending signals. - bug23093: do not enter_lib before sendfile() syscall. - bug22392: When spinning in UL, check for postponed signals. - bug23968: fix gcc-4.6 warnings openonload-201104-u2 -------------------- - Avoid jitter caused by periodic timer. - Improvements to onload_stackdump statistics and output for pipes. - Avoid grabbing lock in interrupt handler if not needed. - Prevent unnecessary polling when interrupt driven. - Reduce wakeup latency when interrupt driven. - Don't poll for network events when polling accelerated pipes. - Improve performance of epoll with UDP sockets. - Fix timeout extension in epoll_wait() with spinning. - Added option EF_EPOLL_NONBLOCK_FAST_LOOPS. - Improve accuracy of timestamps (SO_TIMESTAMP[NS] and SIOCGSTAMP[NS]). - Added option EF_TCP_LISTEN_HANDOVER and EF_TCP_CONNECT_HANDOVER. - Use /bin/sh instead of bash in scripts. - Improved sfcaffinity_config spreading of interrupts. - Improved flexibility and handling of onload tuning profiles. - Fix race that could cause jitter when blocking and EF_INT_DRIVEN=0. - Added option EF_TX_QOS_CLASS. - Try to exit "memory pressure" condition more promptly. - ef_vi: Fix delayed RX doorbell when write-combining enabled. - bug24965: Fix bug that caused UDP send hang on concurrent sends with no arp. openonload-201104-u1 -------------------- - bug22781: Fix problem setting EF_FDTABLE_SIZE when non-root. - Build fixes for RHEL6.1, MRG2, 2.6.39, gcc 4.6. - Add Onload Extensions library. - bug23578: Copying too much data in getsockopt() when buffer supplied is big. - Add counter for handover to kernel in socket() calls. - bug23749: Fix bug in SO_TIMESTAMP and SO_TIMESTAMPNS. - Support TCP_QUICKACK socket option. - bug23833: Don't attempt to accelerate bond that has vlan interface as slave. - Ensure onload_tool works when /sbin is not on the PATH. - bug23878: Fix to software driverlink filtering. - Include some missing options in "onload_stackdump doc". - ef_vi: Add env vars EF_VI_EVQ_SIZE, EF_VI_TXQ_SIZE, EF_VI_RXQ_SIZE. - ef_vi: Choose appropriate size of event queue by default (instead of min). - ef_vi: Add EF_EVENT_RX_DISCARD_MCAST_MISMATCH. - Avoid further synchronisation costs when EF_FDS_MT_SAFE enabled. - Avoid syscall in ioctls SIOCGSTAMP and SIOCGSTAMPNS. - Fix SIOCGSTAMP(NS) when last receive was via kernel. - Avoid syscall in ioctl FIONREAD when datagram available at userlevel. - Avoid syscall in ioctl FIONREAD when kernel receives disabled. - sfc_affinity: Fix bug preventing filters from being added. - Support "-f hosts" option to mpiexec. - Pass through profile options when invoking onload on remote hosts. - Add some new counters to onload_stackdump, "lots" output extended. - bug22230: SO_BINDTODEVICE to vlan interface didn't work. - Added option EF_MCAST_JOIN_BINDTODEVICE. - Improve EF_PREFAULT_PACKETS to prefault RX rings and enable by default. - Only use atomic memory alloc for packet buffers when needed. - EF_MULTICAST option removed. See new EF_MCAST_RECV option. - Added option EF_MCAST_JOIN_HANDOVER. - bug24121: Fix data corruption when receiving UDP datagram with large MTU. - bug24225: UDP receive queue did not respect SO_RCVBUF. - bug24227: Poor TX latency on second send with write-combining enabled. - Added EF_UDP_PORT_HANDOVER[23]_{MIN,MAX} options to add flexibility. openonload-201104 ----------------- - New epoll implementation with improved scalability (see ReleaseNotes). - New epoll also accelerates epoll_pwait(). - Acceleration of anonymous pipes. - Partial implementation of SO_BINDTODEVICE socket option. - New extended API for controlling mapping between stacks and sockets. - onload_stackdump now works for non-root users. - Epoll optimisation to improve performance of epoll_ctl() calls. - Send performance improved in certain bonded configurations. - Improve performance and accuracy of SIOCGSTAMP ioctl. - Add suport for SO_TIMESTAMP, SO_TIMESTAMPNS, SIOCGSTAMPNS. - Improved interrupt avoidance in blocking poll/select/poll. - bug22046: Return from accept() if socket is shutdown(). - bug22701: Fix kernel crash when Onload process killed by a signal. - bug22073: Always initialise revents for non-accelerated fds in poll(). - bug19843: Fix selection of mac when sending multicast packet to default route with gateway. - Improve performance when multiple threads call select(), poll(), epoll. - bug20328: Set cmsg msg_controllen to zero if not filling in any data. - bug22018: Fix race that could cause EAGAIN on TCP send after poll, select or epoll says socket is readable. - bug22263: Do not mask out EPOLLERR and EPOLLHUP after EPOLL_CTL_MOD. - Added option EF_EPOLL_MT_SAFE to disable internal locking in epoll. - Record max depth of UDP recv queue (available in onload_stackdump). - Support larger max number of packet buffers per stack (limit was 32K). - bug22431: Do not clear fdsets when select() returns error. - bug22428: Fixed bug in select() where fdsets not cleared when non-blocking. - bug22332: Handle case where socket is handed to kernel stack when in epoll. - bug22400: Fix handling of restarting of calls on signal. - bug22635: Fix timeout and signal handling when spinning. - bug22636: Update select() timeout properly. - bug21464: Handle siginterrupt() properly. - EF_TX_PUSH is now enabled by default. - Support for recvmmsg() call (even when not present in libc or kernel). - Reduce cases where extra TCP ACKs are generated. (Reduces TCP latency). - Add options EF_TCP_FASTSTART_{INIT,IDLE,LOSS} to prevent extra TCP ACKs. - Support SOCK_NONBLOCK flag. - Fix rpm spec bug that could confuse modprobe after upgrade. - Bugfix: Read EF_TCP_INITIAL_CWND and EF_TCP_LOSS_MIN_CWND options. - onload_tool script should now work with the ash shell. - onload_loaddrivers can now supply module parameters. - Several minor performance improvements in select(). - Small latency improvements on receive path on all systems. - Substantial latency improvement on send using write combining (requires kernel version >= 2.6.28). - Various improvements to onload_stackdump output. - EF_INT_DRIVEN=1 is enabled by default when spinning not enabled. - Intercept __read_chk() -- needed on recent glibc. - ef_vi: Add mac filtering. - ef_vi: Add receive-side scaling. - ef_vi: Add ef_iobufset_remap() to support forwarding. - ef_vi: New and improved sample apps. - bug23390: Fix infinite busy loop when run out of packet buffers. - Improve handling when few packet buffers available at startup. - Added options EF_RXQ_MIN and EF_MIN_FREE_PACKETS. - Added option EF_POLL_NONBLOCK_FAST_LOOPS to accelerate poll(..., timeout=0). - Added options EF_POLL_TCP_LISTEN_UL_ONLY and EF_POLL_UDP_UL_ONLY. - Install kernel module symbol info to well-known location. - sfc: Updated to v3_1_0_4041 - sfc: TX push and write combining reduce latency - sfc: RX n-tuple support (use 'ethtool -U' or 'sfctool -U') - sfc: Runtime logging control (use 'ethtool -s ethX msglvl ...') - Onload driver build now requires CONFIG_NETFILTER. openonload-20101111-u1 ---------------------- - More distributions supported by RPMs. - bug21384: Fixed bug in synchronisation with kernel control plane. - Performance improvement for UDP multicast sends. - bug21271: Fix handling of signals when waiting for memory. - bug21271: Fix handling of rare exception path in UDP send. - bug21309: Fix kernel driver livelock bug. - bug19843: Fixed case where gateway mac was used instead of m'cast mac. - bug21509: Sometimes IP_ADD_MEMBERSHIP would fail to accelerate when interface was chosen via route table. - bug18845: Improved handling when short of packet buffers. - Added canned configuration profiles. - New statistics added to "onload_stackdump stats". - EF_MAX_PACKETS is no longer rounded to a power of 2. - Use "onload_tool reload" to reload drivers. onload_loaddrivers is deprecated. - No longer disable CPU low power states by default. Use "onload_tool disable_cstates [persist]" to re-enable. - bug21634: Fix bug when multiple sockets subscribe to same multicast stream. - bug21643: Uncorking TCP socket would sometimes delay sending data. - Make ef_vi robust to certain errors in event notifications. - Minor change in ef_vi interface. - bug21103: Suppress constantly repeating error messages. - Support up to 6 accelerated network interfaces by default. - Fixed dimensioning of state when many accelerated interfaces supported. - Improve performance of send/recv etc. when file descriptor not accelerated. - Avoid unnecessary control plane sys-calls when ARP entries are static. - bug21575: Fix rare deadlock in kernel driver. - Update to v3_0_8_2221 sfc driver. openonload-20101111 ------------------- - Set EF_TX_PUSH=1 to knock 0.5us off TX latency. - Fixed bugs in handling of VLANs and bonds. - Fixed broken EPOLLET handling. - Improved epoll with TCP to more closely match Linux behaviour. - Fixed numerous bugs found in extended testing. - Fixed jumbo frame regression. - Added config file /etc/sysconfig/openonload to control access to Onload. openonload-20100923 ------------------- - See ReleaseNotes for details of new features and known problems. - Acceleration of 802.1Q VLAN interfaces. - Acceleration of bonded interfaces. - Acceleration of epoll system calls. - Small improvement in UDP send and receive latency. - Prevent high latency when doing non-blocking receive calls. - Many many minor enhancements and bug fixes. openonload-20100604-u3 ---------------------- - Fix bug that caused UDP packets to get wrong TTL value. - Send log messages to syslog if STDERR is not a TTY. - Fix incompatibility with apps that call fork() during _init. - Support 2.6.34 and 2.6.35 kernels. - Fixed zero-window probe bug. - Avoid dependency on /usr for driver load. - Ensure that onload driver gets loaded at boot time. - Fix select() timeout behaviour when spinning. - Update to v3_0_6_2199 sfc driver. openonload-20100604-u2 ---------------------- - Fix bugs in filter module that caused ports to be reused inappropriately. - "onload_install --newkernel" to install modules for a new kernel. - Allow "onload_install --listfiles" when Onload is already installed. - The rpm spec file (in src/onload_misc) should now work on RHEL5. - Adding and removing local IP addresses should now work properly. - Fix recursion bug in send path introduced in 20100604 properly. - Fix small per-stack memory leak. - Fix rare bug that could cause corruption of packet lists. openonload-20100604-u1 ---------------------- - Zero-initialise UDP socket receive packet and byte counters. - Fix DMA error on systems using IOMMU and multiple Onloaded interfaces. - Fix recursion bug in send path introduced in 20100604 release. - Fix bug that caused kernel panic when Onload stack destroyed. - Fix warning due to memory allocated with interrupts disabled. - Fix lock corruption caused by signal race. - Fix kernel panic caused by logging ioctl. openonload-20100604 ------------------- - Added option EF_MAX_RX_PACKETS to limit RX path buffer usage. - Improved handling of situations where DMA buffers become scarce. - Send reset on TCP connections when stack freed with internal lock stuck. - Fix incompatibility that prevented 32-bit apps working on 64-bit RHEL5. - Fix bug in control plane: Caused accelerated traffic to go to wrong port. - Fixed build for certain realtime kernels and fedora 11 kernels. - Work-around unwanted intercept of signal() in SLES10 ksh. - Support for Fedora 12. - Install preload libraries setuid/setgid by default. - Quieten kernel log messages about RTA_PRIORITY. - Fix bad performance of UDP send with large datagrams. - Respect spin timeout in UDP send. - Fixed state corruption bug in TCP TX exception path. - Config option documentation available from "onload_stackdump doc". - Fixed bug that could cause multicast filter to install on wrong interface. - Fixed UDP send jitter at certain message sizes and rates. - Added EF_SEND_POLL_THRESH and EF_SEND_POLL_MAX_EVS options. - Improvements to data exported by onload_stackdump. - Cope with early calls into libonload.so before it is initialised. - Added option EF_DELACK_THRESH to disable delayed acknowledgements. - EF_LOAD_ENV now true by default. - Disable EF_CONG_AVOID_SCALE_BACK by default. - Improvements to interrupt handling, reducing interrupts when spinning. - Improvements to onload_install. - Put sfc.ko in updates directory so it overrides in-tree driver. - "onload_stackdump spin_poll" command. - Acceleration of UDP sockets in userlevel select(). (NB. poll() remains best performing multiplexor). - onload_install --listfiles option. - Limit time spent "buzzing" a lock by default. - Make slow start less conservative by default. - Added options EF_TCP_INITIAL_CWND and EF_TCP_LOSS_MIN_CWND. - "onload_stackdump describe_stats" gives documentation for internal stats. - Option --kernelver for onload_build and onload_install. - Improved EF_UDP_RECV_UL_ONLY so less likely to break applications. - Added option EF_UDP_RECV_MCAST_UL_ONLY. - Hand UDP sockets connected over non-Onload interface to kernel by default. - Turn on reporting of certain errors in syslog by default. - sfcirqaffinity script to help setup interrupt affinity. - Update to v3_0_3_2141 sfc driver. openonload-20100308-u2 ---------------------- - Fixed build errors for various kernel versions, including SLES9, Ubuntu and Fedora 12 kernels. - Fixed build errors for certain Ubuntu kernel versions. - Fixed kernel panic when certain interface is down. - Option to spin when waiting for packet buffers. - Fix for high latency when multiple threads spinning in TCP recv(). - Update to v3_0_3_2123 sfc driver. openonload-20100308-u1 ---------------------- - Fixed incorrect default SO_SNDBUF and SO_RCVBUF for TCP sockets. - Fixed potential race in UDP receive path. openonload-20100308 ------------------- - Support for recent Linux kernels, inc. 2.6.33 - Unlocked UDP send path avoids lock contention. - Improved performance for UDP multicast sends. - Improved support for jumbo frames. - Improved UDP performance when traffic goes over non-accelerated interfaces. - Improved performance for UDP with poll(). - Fix to poll() timeout extension. - Option for apps to "share" an OpenOnload stack. - Option to loopback multicast to local receiver (when stack is shared). - Improved NUMA scaling: Onload DMA memory now allocated in local NUMA node. - Update to v3_0_2_2115 sfc driver. - Use appropriate temperature sensor limits. openonload-20091220 ------------------- - Update to v3_0_2_2064 sfc driver. - Support for SFC9000 controllers (SFN5122F). - bugfix: Failed connect() could cause connection to subsequently hang. - Fixes to signal handling. Some calls returned EINTR instead of restarting. - Reduce cpu overhead when blocking and locks are contended. - Introduce more fine-grained control of when spinning is used. - Do not spin in TCP accept() by default. - "stackdump filters" output no longer goes to kernel log - Fixed bug in filtering code relating to multiple sockets in one stack. - Do not attempt the close() intercept on kernels where it doesn't work. - Added option to "buzz" internal locks. - bugfix: Fix out-of-bounds table lookup. - Reduce cost of "deferred work" path and fix race. - Do not hold stack lock while spinning in TCP recv(). - Latency improvement when spinning and interrupts are also enabled. - Handover UDP sockets that are connected over the loopback interface. - Add option EF_UDP_CONNECT_HANDOVER. openonload-20091106 ------------------- - Update to v2_3_20_1086 sfc driver. - sfcaffinity_config: Fixed bug where irq affinity might not be set. - Increase the number of "kernel" sockets that user-level poll() will track. - sfcaffinity_config: Improve error messages. - Remove limitation in filter tables that limited us to 8 hops max. - Program hardware with minimum filter hops needed for current filters. - First steps towards spreading onload interrupts. - Improvements in install to support packaging up binaries, and making rpms. - Fix build and install problem on Debian systems. openonload-20090812 ------------------- - Support for using Onload with multiple NICs/ports. - The SFC affinity driver is now included with OpenOnload. - Various minor improvements to stackdump. - Performance improvement in TCP send and receive paths. - Scalability improvement in UDP recv() et al when spinning. - Export symbol "onload_version" from the preload library (can be used by applications if they want to know whether onload is present, and what version). - Various bug fixes. openonload-20090409.1 --------------------- - bug16011: Packet loss when IPG is very small. - Performance improvement for UDP recv() when spinning is enabled.