drm/amdgpu/userq: rework driver parameter

Replace disable_kq parameter with user_queue parameter.
The parameter has the following logic:
 -1 = auto (ASIC specific default)
  0 = user queues disabled
  1 = user queues enabled and kernel queues enabled (if supported)
  2 = user queues enabled and kernel queues disabled

The default behavior (-1) is currently the same as 0 for current
ASICs.  To enable user queues (in addition to kernel queues) set
user_queue=1. To enable user queues and disable kernel queues
(to make all resources available to user queues), set user_queue=2.

Reviewed-by: Sunil Khatri <sunil.khatri@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Alex Deucher
2025-04-14 14:18:03 -04:00
parent 172494c4e9
commit fb20954c97
8 changed files with 77 additions and 16 deletions

View File

@@ -242,7 +242,7 @@ int amdgpu_wbrf = -1;
int amdgpu_damage_clips = -1; /* auto */
int amdgpu_umsch_mm_fwlog;
int amdgpu_rebar = -1; /* auto */
int amdgpu_disable_kq = -1;
int amdgpu_user_queue = -1;
DECLARE_DYNDBG_CLASSMAP(drm_debug_classes, DD_CLASS_TYPE_DISJOINT_BITS, 0,
"DRM_UT_CORE",
@@ -1114,12 +1114,15 @@ MODULE_PARM_DESC(rebar, "Resizable BAR (-1 = auto (default), 0 = disable, 1 = en
module_param_named(rebar, amdgpu_rebar, int, 0444);
/**
* DOC: disable_kq (int)
* Disable kernel queues on systems that support user queues.
* (0 = kernel queues enabled, 1 = kernel queues disabled, -1 = auto (default setting))
* DOC: user_queue (int)
* Enable user queues on systems that support user queues.
* -1 = auto (ASIC specific default)
* 0 = user queues disabled
* 1 = user queues enabled and kernel queues enabled (if supported)
* 2 = user queues enabled and kernel queues disabled
*/
MODULE_PARM_DESC(disable_kq, "Disable kernel queues (-1 = auto (default), 0 = enable KQ, 1 = disable KQ)");
module_param_named(disable_kq, amdgpu_disable_kq, int, 0444);
MODULE_PARM_DESC(user_queue, "Enable user queues (-1 = auto (default), 0 = disable, 1 = enable, 2 = enable UQs and disable KQs)");
module_param_named(user_queue, amdgpu_user_queue, int, 0444);
/* These devices are not supported by amdgpu.
* They are supported by the mach64, r128, radeon drivers