The queue size calculation is currently based on "max_tokens" rather than
"max_work_queues_size". This is resulting in the queue size being
incorrectly configured when using the script to configure devices bound to
the IDXD kernel driver.
This patch fixes this miscalculation so devices are configured with
appropriate queue size.

Fixes: 01863b9d2354 ("raw/ioat: include example configuration script")
Cc: [email protected]

Reported-by: Konstantin Ananyev <[email protected]>
Signed-off-by: Kevin Laatz <[email protected]>
---
 drivers/raw/ioat/dpdk_idxd_cfg.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/raw/ioat/dpdk_idxd_cfg.py 
b/drivers/raw/ioat/dpdk_idxd_cfg.py
index 83ef4817db..fcc27822ef 100755
--- a/drivers/raw/ioat/dpdk_idxd_cfg.py
+++ b/drivers/raw/ioat/dpdk_idxd_cfg.py
@@ -63,7 +63,7 @@ def configure_dsa(dsa_id, queues, prefix):
     max_groups = dsa_dir.read_int("max_groups")
     max_engines = dsa_dir.read_int("max_engines")
     max_queues = dsa_dir.read_int("max_work_queues")
-    max_tokens = dsa_dir.read_int("max_tokens")
+    max_work_queues_size = dsa_dir.read_int("max_work_queues_size")
 
     nb_queues = min(queues, max_queues)
     if queues > nb_queues:
@@ -82,7 +82,7 @@ def configure_dsa(dsa_id, queues, prefix):
                              "mode": "dedicated",
                              "name": f"{prefix}_wq{dsa_id}.{q}",
                              "priority": 1,
-                             "size": int(max_tokens / nb_queues)})
+                             "size": int(max_work_queues_size / nb_queues)})
 
     # enable device and then queues
     drv_dir.write_values({"bind": f"dsa{dsa_id}"})
-- 
2.25.1

Reply via email to