In-Tree vs. Out-of-Tree

Introduction

Intel QuickAssist Technology (QAT) is instrumental in enhancing system performance by offloading cryptographic and compression tasks to dedicated hardware.
Integrating QAT with the Linux kernel can be achieved through two primary methods: in-tree and out-of-tree.
In-tree QAT drivers are part of the mainline Linux kernel source tree, ensuring compatibility and stability with the kernel’s versioning and update process.
They are rigorously tested and reviewed by the community with each kernel release, providing long-term support.
Out-of-tree QAT drivers are developed and maintained separately from the mainline kernel.
They offer the possibility of quicker iterations and the introduction of new features.
However, they require manual installation and may encounter compatibility issues with kernel updates, necessitating regular maintenance.

Migration Plans

With the introduction of QAT Generation 4, the in-tree drivers are available within the mainline Linux kernel. This integration provides
users with the latest QAT advancements alongside the stability and support of the kernel.
Out-of-tree (OOT) drivers for QAT Gen 4 are currently in sustaining mode, meaning they will only receive maintenance updates without new feature development.
This is an important consideration for users planning for future system capabilities.
Future generations of QAT will be supported with in-tree drivers exclusively. This decision highlights the commitment to the
robustness and reliability of in-tree drivers as the primary avenue for development and support.
A 2-year transition period has been established to educate and prepare customers for the move to in-tree drivers. This time-frame is essential to
ensure that users understand the benefits of in-tree integration and can smoothly transition their systems.
During this transition, new designs are being encouraged to adopt the in-tree drivers, which will streamline support and take full advantage of the benefits of
kernel integration. This strategic emphasis is set to facilitate a seamless migration to QAT Gen 4’s in-tree implementation.

For additional details on migrating OOT applications to in-tree refer to the Migrating Applications section of the QATlib User’s Guide for details on migrating OOT applications to in-tree.

In-Tree Benefits

Integrating Intel QuickAssist Technology (QAT) drivers directly into the mainline Linux kernel, known as in-tree, offers a multitude of benefits that streamline user experience and enhance system performance. Below are some of the key advantages:

  • Ease of Use In-tree drivers simplify the user experience by providing a straightforward integration process.

  • Seamless Integration They integrate seamlessly with other tools and components within the stack, ensuring a cohesive environment.

  • Security Patches In-tree drivers receive security patches promptly, maintaining high standards of system security.

  • Identification and Timely Turnarounds Issues are identified and resolved quickly due to the active kernel development cycle.

  • Community “Approved” The Linux community vets in-tree drivers, adding a layer of trust and reliability.

  • Community Support A robust community presence offers support, contributing to the stability and functionality of the drivers.

  • Community Tested In-tree drivers are extensively tested by the community, ensuring they meet rigorous quality standards.

  • Operating System Vendor (OSV) Aligned, Shrink Wrapped Drivers are aligned with OSV standards and come pre-packaged with the operating system, offering a better out-of-box experience.

  • Linux Distribution Integration In-tree drivers are integrated into Linux distributions, providing a smoother setup process.

  • Cloud/Network Functions Virtualization (NFV) Deployable OSV solutions provide standardized deployments, making in-tree drivers ideal for cloud and NFV environments.

  • No Separate Downloads or Installs In-tree drivers come “in-box,” eliminating the need for separate downloads or installations.

  • Customer Build Automation Users benefit from automated build processes, including “get” and “pull” operations from the source.

  • Better Quality With more eyes on the code, in-tree drivers typically exhibit higher quality due to increased scrutiny and transparency.

  • Transparency Users can see what is going on with the development and maintenance of in-tree drivers. This transparency is also available for out-of-tree (OOT) drivers.

  • What You See Is What You Get (WYSIWYG) In-tree drivers provide a clear and predictable implementation.

  • Flexibility Being vendor-free, in-tree drivers offer flexibility to users across different hardware and software configurations.

  • Scalability/Extensibility In-tree drivers are scalable and extensible, thanks to their open, community-based development model that allows for the extension of capabilities.