RDS Improvements
Reliable Datagram Sockets (RDS) is a high-performance transport protocol that offers low overhead and low latency to deliver datagrams over a variety of transports, such as InfiniBand, loopback or TCP sockets. The following notable changes and features are included in this update:
-
RDS IPv6 support
Support for the use of IPv6 addresses has been added to the kernel RDS and related modules. Existing RDS applications using IPv4 addresses are able to continue to run normally, but applications that require IPv6 addresses can do so by passing the address in struct
sockaddr_in6 to bind()
,connect()
orsendmsg()
.Additional updates have been made to user space packages, such as
rds-tools
andlibibacl
to ensure that support is enabled in tools that can make use of this feature. -
Improvements to RDS large fragment size implementation
A patch was applied to improve the RDS large fragment size implementation by taking advantage of multiple scatter-gather entries and to match the allocation of the scatter-gather entries to the PAGE_SIZE. This improves the performance and resolves issues in congestion handling.
-
Fix for NULL pointer dereference when using RDS with a debug kernel
A debug statement in the RDS code could cause a NULL pointer dereference resulting in a stack trace when running RDS on a debug version of the kernel. The fix moves the debug statement to avoid the NULL pointer dereference.