Page MenuHomeFreeBSD

ena: Support max large LLQ depth from the device
Needs ReviewPublic

Authored by osamaabb_amazon.com on Aug 20 2024, 8:47 AM.
Tags
None
Referenced Files
F142094751: D46371.id142230.diff
Fri, Jan 16, 12:16 AM
Unknown Object (File)
Thu, Jan 8, 12:12 PM
Unknown Object (File)
Fri, Dec 19, 6:15 AM
Unknown Object (File)
Nov 28 2025, 10:18 AM
Unknown Object (File)
Nov 28 2025, 4:06 AM
Unknown Object (File)
Oct 30 2025, 10:35 AM
Unknown Object (File)
Oct 21 2025, 10:36 AM
Unknown Object (File)
Oct 20 2025, 2:57 AM
Subscribers

Details

Reviewers
cperciva
Summary

Large LLQ depth size is currently calculated by dividing the maximum
possible size of LLQ by 2.
In newer paltforms, starting from r8g the size of BAR2,
which contains LLQ, will be increased, and the maximum depth of
wide LLQ will be set according to a value set by the device, instead of
hardcoded division by 2.

The new value will be stored by the device in max_wide_llq_depth field
for drivers that expose ENA_ADMIN_LLQ_FEATURE_VERSION_1 or higher to
the device.

There is an assumption that max_llq_depth >= max_wide_llq_depth, since
they both use the same bar, and if it is possible to have a wide LLQ
of size max_wide_llq_depth, it is possible to have a normal LLQ of the
same size, since it will occupy half of the space.

Also moved the large LLQ case calculation of max_tx_queue_size
before its rounddown.

Approved by: cperciva
MFC after: 2 weeks
Sponsored by: Amazon, Inc.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 59100
Build 55987: arc lint + arc unit