Intel® Ethernet 800 Series Application Device Queues (ADQ)

Software Developer's Guide

ID Date Version Classification
626536 04/03/2023 Public
Document Table of Contents

Comparison of Polling Methods

The application dependent polling method is supported in both ADQ1.0 and ADQ2.0, whereas the application independent polling method is supported only in ADQ2.0.

The following table compares the ADQ1.0 and 2.0 polling methods.

Application Dependent, ADQ1.0 and 2.0 Application Independent, ADQ2.0 only
  • Not feasible in all environments, requires application changes
  • Less configurable - global busy poll timeout
  • May have higher performance in certain cases
  • Kernel requirement:

    Epoll Busy Poll enhancement in 4.12+

  • Feasible in all environments without application changes
  • Resource/CPU utilization more tunable with per queue group poller timeout and number of polling threads
  • Kernel requirement:

    Kthread-based independent poller: 5.12+

    Ksoftirqd-based independent poller: 5.6

In ADQ1.0, busy polling is initiated by system calls made by the application and requires an application change. It operates in the context of an application.

In ADQ2.0, busy polling is initiated through interrupts and eliminates application changes. It runs in the NAPI kernel thread context.

The following figure depicts the difference between application dependent and independent polling methods in terms of busy polling.