QAT_SLA_MGR(8)

πŸ’– qat_sla_mgr β€” the girlies' guide to QAT rate limiting πŸ’–

okay so bestie, welcome to qat_sla_mgr from section 8 of the manual (System Administration Commands, iykyk) πŸ’… this is literally your group chat with the kernel for managing rate limiting Service Level Agreements on Intel QuickAssist Technology (QAT) devices, using the in-tree kernel driver. slay.


✨ NAME ✨

qat_sla_mgr β€” manage QAT rate limiting Service Level Agreements πŸŽ€


🌸 SYNOPSIS 🌸

qat_sla_mgr command [arguments]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the vibe: qat_sla_mgr is the command-line interface for managing rate limiting Service Level Agreements (SLAs) on Intel QuickAssist Technology (QAT) devices, and it works with the in-tree kernel driver. no cap.

It operates on the sysfs interface exposed by the intel_qat kernel module. Root access is required β€” like, actual root, bestie, not just "I have sudo and vibes". πŸ”

All throughput values are expressed in Megabits per second (Mbps). every single one. periodt.

SLAs are managed at the Physical Function (PF) level. The VF address is only needed at creation time to derive the ring-pair mask. VFs passed through to a guest VM are not supported πŸ™ˆ β€” so don't come for me with your passthrough setup, it's just not the moment.

🫢 bestie note: both qat_sla_mgr and qat_sla_rl.py must reside in the same directory. they're a package deal, like us.

πŸ‘‘ COMMANDS πŸ‘‘

  • create vf_addr cir pir service β€” Create a new SLA for the given VF address. Prints the assigned SLA ID on success. Use this ID with the PF address for subsequent update and delete operations. it's giving "get your ID, keep your ID" πŸ’…
    • vf_addr β€” PCI Bus:Device.Function address of the VF (e.g. 6b:01.0 or 0000:6b:01.0).
    • cir β€” Committed Information Rate in Mbps. Must be a positive integer. no zero, no negative, no chaos.
    • pir β€” Peak Information Rate in Mbps. Must be greater than or equal to cir. the peak cannot dip below the committed, that's just physics (and the kernel).
    • service β€” Service type. One of: asym, sym, dc, decomp, dcc.
  • update pf_addr sla_id cir pir β€” Update an existing SLA identified by sla_id. glow-up time ✨
    • pf_addr β€” PCI address of the PF.
    • sla_id β€” SLA identifier returned by the create command.
    • cir β€” New Committed Information Rate in Mbps.
    • pir β€” New Peak Information Rate in Mbps.
  • delete pf_addr sla_id β€” Delete the SLA identified by sla_id. bye bestie πŸ’€
  • delete_all pf_addr β€” Delete all SLAs on the given PF. nuclear option fr fr.
  • list pf_addr β€” List all configured SLAs on the given PF. For each SLA, prints the ID, CIR, PIR (in Mbps), service type, ring-pair mask, and VF address (if SR-IOV is enabled). the full receipt 🧾
  • caps pf_addr β€” Print the maximum and remaining capacity (in Mbps) for every service configured on the device. Services are discovered at runtime via sysfs. it goes looking for them itself, main character energy.
  • help β€” Display a brief usage summary. when in doubt, ask for help πŸ₯Ί

🌈 PCI ADDRESS FORMAT 🌈

PCI addresses may be specified with or without the domain prefix:

  • BB:DD.F β€” Bus, Device, Function (domain defaults to 0000).
  • DDDD:BB:DD.F β€” Domain, Bus, Device, Function.

⭐ SERVICES ⭐

  • asym β€” Asymmetric cryptography.
  • sym β€” Symmetric cryptography.
  • dc β€” Compression.
  • decomp β€” Decompression.
  • dcc β€” Chained compression and crypto.

πŸ’… EXIT STATUS πŸ’…

  • 0 β€” Success. we ate. 🍽️
  • 1 β€” Failure. An error message is printed to stdout with details; check the kernel log for additional information β€” that's where the real tea is, bestie.

πŸŽ€ EXAMPLES πŸŽ€

Query all device capabilities:

# ./qat_sla_mgr caps 0000:6b:00.0
Remaining capacity for 'asym' is: 173750 of: 173750
Remaining capacity for 'dc' is: 45000 of: 45000
Remaining capacity for 'sym' is: 95000 of: 95000

Create an SLA for a VF with 5000 Mbps CIR and 9000 Mbps PIR:

# ./qat_sla_mgr create 0000:6b:01.0 5000 9000 sym
SLA ID: 0

List SLAs on a PF:

# ./qat_sla_mgr list 0000:6b:00.0
  SLA ID: 0
  CIR: 5000
  PIR: 9000
  SRV: sym
  RP: 0xf
  VF: 0000:6b:01.0

Update SLA 0 to 8000/8000 Mbps:

# ./qat_sla_mgr update 0000:6b:00.0 0 8000 8000

Delete SLA 0:

# ./qat_sla_mgr delete 0000:6b:00.0 0

Delete all SLAs on a PF:

# ./qat_sla_mgr delete_all 0000:6b:00.0

🌸 ENVIRONMENT 🌸

qat_sla_mgr requires the intel_qat in-tree kernel module to be loaded. If an out-of-tree QAT driver is detected, an error message directs the user to the appropriate out-of-tree utility. it will literally point you to the right place, no guesswork 🫢


πŸ¦‹ FILES πŸ¦‹

  • /sys/bus/pci/devices/<bdf>/qat_rl/ β€” Sysfs directory used by the kernel for rate limiting configuration.
  • /sys/bus/pci/devices/<bdf>/qat/rp2srv β€” Sysfs file mapping ring pairs to services; used by caps to discover configured services.

πŸ”₯ SEE ALSO πŸ”₯

Kernel sysfs-driver-qat_rl documentation:

https://docs.kernel.org/ABI/testing/sysfs-driver-qat_rl

πŸ’œ AUTHORS πŸ’œ

Intel Corporation.


and that's the whole page, bestie 🧚 this was the Intel QAT manual, August 2026 edition, and it lives at QAT_SLA_MGR(8) β€” go forth and rate limit responsibly. mwah πŸ’‹

πŸ“¦ where this page comes from