ACCEL-CONFIG-CONFIG-WQ(1)

πŸ’… ACCEL-CONFIG-CONFIG-WQ(1) β€” the glow-up guide πŸ’…

okay bestie, welcome to the accel-config config-wq page β€” this is the one from the accfg manual, and it's literally all about ✨configuring individual attributes of a work queue✨. yes, individually, one attribute at a time, like a skincare routine but for hardware. πŸ§–β€β™€οΈ


🌸 NAME 🌸

accel-config-config-wq β€” configure individual attributes of a work queue. that's the whole job. no cap. πŸ’–


✨ SYNOPSIS ✨

accel-config config-wq <device name>/<wq name> [<options>]

πŸ¦‹ EXAMPLE πŸ¦‹

like, here's what it actually looks like in the wild:

accel-config config-wq dsa0/wq0.0 --wq-size=16

see? device name, slash, wq name, then whatever options your heart desires. iconic. πŸ’«


πŸ‘‘ OPTIONS πŸ‘‘

you get so many options, bestie. every single one. no skipping. we're doing all of them. 🫢

  • -g, --group-id= β€” tells the work queue which group id it's rolling with. the group id should be between 0 and the maximum number of groups per device. and plot twist πŸŽ€ β€” a group id of -1 disassociates the work queue from a group. it said what it said.
  • -s, --wq-size= β€” sets the work queue size used by a work queue. this value should be between 0 and the maximum workqueue size exposed by the device in the max_work_queue_size attribute under device. check the device, not me. πŸ’…
  • -p, --priority β€” sets the priority of this work queue relative to the other work queues chillin' in the same group. this field ranges from 1 to 15, and the larger value means higher priority. so, like, if wq1 has a priority of 6 and wq2 has priority of 2, then wq1 will issue 3 times as many descriptors to the engine compared to wq2. math is math. πŸ”₯
  • -b, --block-on-fault β€” toggles block on fault enable for the work queue. block-on-fault should be either 0 or 1. and here's the tea β˜• β€” if block on fault is disabled, and a page fault occurs on a source or destination memory access, the operation stops and the page fault is reported to the software. periodt.
  • -t, --threshold β€” configures the threshold for the wq. the set up threshold value should be larger than 0 and only for "shared" wq, and heads up πŸ‘€ β€” the configured threshold value should be at least 1 less than the configured wq-size value. the reason? threshold is set for unprivileged users, so you need to reserve at least 1 space for the privileged user for commands. it's giving "share the snack, leave a crumb for the admin." πŸ“
  • -y, --type β€” configures the type for the wq. the wq type can be "kernel" for the kernel user case to request wq, or "user" for the regular character device driver use case to wq. pick your fighter. ⭐
  • -n, --name β€” configures the name for the wq. this can be any string defined by the user. typically it's used for identifying the wq in some unique way, and a possible suggestion would be using a uuid string. name your baby. πŸ‘‘βœ¨
  • -d, --driver-name β€” specifies the name of the driver to bind. this should be one of the valid wq drivers found in /sys/bus/dsa/drivers. go look, they're right there. 🌈
  • -o, --op-config β€” specifies the op config bitmask. the bitmask is of size 256 bits and is entered as 32 bit hex words separated by comma or space. like, for example:
00000000,00000000,00000000,00000000,00000000,00000000,00fc00ff,003f03ff

yes it's a lot of zeros. it ate. πŸ’€

  • -m, --mode β€” configures the mode for the wq. the wq mode can be set as "dedicated" or "shared". choose wisely, bestie. πŸ¦‹
  • -c, --max-batch-size β€” specifies the max batch size used by a work queue. the value should be between 1 and the device maximum batch size found in the max_batch_size attribute under device. and here's the cute part πŸŽ€ β€” if the value is not a power of 2, it will be rounded up to the next power of 2. glow-up math.
  • -x, --max-transfer-size β€” specifies the max transfer size used by a work queue. the value should be between 1 and the device maximum transfer size found in the max_transfer_size attribute under device. and same vibes as above ✨ β€” if the value is not a power of 2, it will be rounded up to the next power of 2.
  • -a, --ats-disable β€” toggles whether ATS disable is turned on for the work queue. the value should be either 0 or 1. 0 indicates ATS is on, and 1 indicates ATS is off for the work queue. (yes, 1 means off. it's giving "the flag is the disable flag, bestie." 😭)
  • -r, --prs-disable β€” toggles whether PRS disable is turned on for the work queue. the value should be either 0 or 1. 0 indicates PRS is on, and 1 indicates PRS is off for the work queue. same energy, different acronym. πŸ’œ
lowkey reminder: those last two are disable flags, so the 0/1 situation is flipped from what your brain wants it to be. read twice, configure once. πŸ™ˆ

Copyright (c) 2023 - 2026, Intel Corporation. License GPLv2: GNU GPL version 2 http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


and that's the whole page, bestie!! 🫢 this little masterpiece comes to you from accfg 4.1.8+, dated 07/23/2026 β€” go configure a work queue, you absolute main character. πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from