Onload-9.1.1
============

 This is an update release of Onload that includes a new version
 of the sfc net driver and various fixes.

 This release adds full support for X3 alongside X2 and X4 adapters.

 Please see the ChangeLog for a full list of changes.


Linux distribution support
--------------------------

 This package can be installed on:
 - Red Hat Enterprise Linux 8.10
 - Red Hat Enterprise Linux 9.4 - 9.7
 - Red Hat Enterprise Linux 10.0 - 10.1
 - Canonical Ubuntu Server LTS 22.04 and 24.04
 - Debian 12 "Bookworm"
 - Debian 13 "Trixie"
 - kernel.org Linux kernels 5.11 - 6.15(*)

(*) To build for Linux kernel version 6.15, see section below.


Workaround for Linux-6.15: no_shrub build profile
-------------------------------------------------

The current support in Onload for sharing X4 Express datapath queues
is incompatible with Linux version 6.15. This will be addressed in a future
release, which will no longer require this workaround. This version of
Onload must be built with the 'no_shrub' build profile on such kernels.

The 'no_shrub' build profile prevents Onloaded applications from sharing
X4 Express datapath queues but does not affect the ability of ef_vi and
TCPDirect applications to use them.

To use this build profile, build as follows:

 - with debuild, --build-profiles=pkg.onload.profile-no_shrub
 - with rpmbuild, --define "build_profile no_shrub"
 - with onload_install, --build-profile no_shrub


SHRUB controller lifecycle tunable
----------------------------------

A new option, EF_SHRUB_AUTO_CLOSE_DELAY tunes the behaviour of the new
automatic closing of the shrub controller after all clients have disconnected.


AMD Alveo(TM) X3 Series Low Latency Ethernet Adapter
----------------------------------------------------

The minimum compatible X3522 driver version to use with this version of
Onload is v1.6.9.0.


Known issues
------------

When an ef_vi application using X3 or X4 Express explicitly issues a flush
a warning message will be emitted to the kernel log of the form:
efch_vi_rm_rsops: still waiting for flush to complete
This can safely be ignored.


Onload-9.1.0.24
===============

 This is a feature release of Onload adding support for the
 AMD Solarflare(TM) X4 Series Ethernet Adapter. The release
 includes a new version of the sfc net driver and various
 features and fixes.

 This release fully supports X2 and X4 adapters. Onload support
 for X3 is 'beta' in this software release. It is recommended
 that X3 users target migration to the next Onload update.

 It is recommended to read the X4 Migration Guide.

 Please see the ChangeLog for a full list of changes.


Linux distribution support
--------------------------

 This package can be installed on:
 - Red Hat Enterprise Linux 8.10
 - Red Hat Enterprise Linux 9.4 - 9.7(*)
 - Red Hat Enterprise Linux 10.0 - 10.1(*)
 - Canonical Ubuntu Server LTS 22.04 and 24.04
 - Debian 12 "Bookworm"
 - Debian 13 "Trixie"
 - Linux kernels 5.11 - 6.14

(*) At the time of writing, RHEL 9.7 and RHEL 10.1 were in a pre-release state
    but expected to be compatible with this Onload version.


AMD Solarflare(TM) X4 Series Ethernet Adapter
---------------------------------------------

This release adds support for the X4 adapter.

X4 Datapath Selection
---------------------

- The Wire Order API (WODA) is only available for the Enterprise RX path
  (EF_RX_DATAPATH=enterprise)
- Application clustering (SO_REUSEPORT/EF_CLUSTER_SIZE) is only supported with
  EF_RX_DATAPATH=enterprise
- Sharing an event queue between multiple VIs is not supported when using the
  express datapath. This applies to X3 and X4 network cards.

X4 Shrub Diagnostics
--------------------

The onload_shrubdump tool provides diagnostic information from shared
reusable buffer controllers. Its output format and debug logging may change
in future releases.

X4 Known Issues
---------------

- A future release will improve configurability and the performance of
  shrub in interrupt driven mode.
- This release supports use cases with a single shrub controller. Support
  for multiple shrub controllers is planned for a future release.
- Some newly-introduced statistics for the Express path are placeholders
  that have not yet been activated.


New ef_receive_poll() API call
------------------------------

In recent releases, the ef_vi API gained a facility to poll for receives
separately from transmissions, for potential latency improvements in some
situations. API usage of ef_receive_poll() is identical to that of
ef_eventq_poll() although usage should be gated by a check for support by
the capabilities API (EF_VI_CAP_RX_POLL), for example:

    rc = ef_vi_capabilities_get(driver_handle, ifindex, EF_VI_CAP_RX_POLL,
                                &can_rx_poll);

    if( rc == 0 && can_rx_poll )
      num_events = ef_receive_poll(vi, events, max_events);
    else
      num_events = ef_eventq_poll(vi, events, max_events);

    for( i = 0; i < num_events; i++ ) {
      switch( EF_EVENT_TYPE(events[i]) ) {
        /* handle rx events */
      }
    }

See also the source code for eflatency which uses this feature.


Smart Data Cache Injection
--------------------------

Smart Data Cache Injection (SDCI) support has been added to allow steering of
network packets directly to a core's L2 cache. Currently, SDCI is supported on
X2/X4 NICs and must be configured as documented in the X4 Migration Guide.


X2 Rx Timestamping with v7.1 firmware or older
----------------------------------------------

Using firmware version v7.1 or older with this release will lead to
inaccurate timestamps. Updating to a recent firmware version addresses this.


Indirect Branch Tracking (IBT) Incompatibility
----------------------------------------------

Onload is not compatible with IBT. To use Onload with kernels which include IBT
support (e.g. RHEL10), ibt=off should be appended to the kernel commandline.
Attempting to load the onload drivers when IBT is still enabled will result in
failure to insert the sfc_resource kernel module. Onload will also output a
message to the kernel log suggesting ibt=off is appended to the kernel
commandline.


New package for example applications
------------------------------------

Source code examples showcasing how to build applications to use certain
features of Onload and ef_vi are now included in a new optional subpackage
called 'onload-examples'. The examples were previously available in Onload
tarball source release packages and could be extracted from RPM and Debian
source packages.


DKMS RPM no longer includes userspace and is built from SRPM bundle
-------------------------------------------------------------------

To use DKMS, build and install the DKMS RPM and userspace RPM sub-packages
together from the Source RPM.


Deprecation of tarball installation method (removal under consideration)
------------------------------------------------------------------------

A future feature release might drop the provision of an OS-independent
'tarball' release package. Source RPM and source DEB packages are recommended
for the best installation experience. Docker images are also available via the
Onload Operator v3.0 for Kubernetes.


Change in reporting of CRC and truncation RX discards
-----------------------------------------------------

Ef_vi and Onload now report both CRC and truncated Rx discard events together
as EF_EVENT_RX_DISCARD_CRC_BAD through ef_vi, and in the rx_discard_crc_bad
onload_stackdump statistic, except with X3, when behaviour is unchanged. This
is only relevant when MTU exceeds 1500.


(c) Copyright 2025,2026 Advanced Micro Devices, Inc.
