Umesh Nerlige Ramappa
f0ed39830e
xe/oa: Fix query mode of operation for OAR/OAC
...
This is a set of squashed commits to facilitate smooth applying to
stable. Each commit message is retained for reference.
1) Allow a GGTT mapped batch to be submitted to user exec queue
For a OA use case, one of the HW registers needs to be modified by
submitting an MI_LOAD_REGISTER_IMM command to the users exec queue, so
that the register is modified in the user's hardware context. In order
to do this a batch that is mapped in GGTT, needs to be submitted to the
user exec queue. Since all user submissions use q->vm and hence PPGTT,
add some plumbing to enable submission of batches mapped in GGTT.
v2: ggtt is zero-initialized, so no need to set it false (Matt Brost)
2) xe/oa: Use MI_LOAD_REGISTER_IMMEDIATE to enable OAR/OAC
To enable OAR/OAC, a bit in RING_CONTEXT_CONTROL needs to be set.
Setting this bit cause the context image size to change and if not done
correct, can cause undesired hangs.
Current code uses a separate exec_queue to modify this bit and is
error-prone. As per HW recommendation, submit MI_LOAD_REGISTER_IMM to
the target hardware context to modify the relevant bit.
In v2 version, an attempt to submit everything to the user-queue was
made, but it failed the unprivileged-single-ctx-counters test. It
appears that the OACTXCONTROL must be modified from a remote context.
In v3 version, all context specific register configurations were moved
to use LOAD_REGISTER_IMMEDIATE and that seems to work well. This is a
cleaner way, since we can now submit all configuration to user
exec_queue and the fence handling is simplified.
v2:
(Matt)
- set job->ggtt to true if create job is successful
- unlock vm on job error
(Ashutosh)
- don't wait on job submission
- use kernel exec queue where possible
v3:
(Ashutosh)
- Fix checkpatch issues
- Remove extra spaces/new-lines
- Add Fixes: and Cc: tags
- Reset context control bit when OA stream is closed
- Submit all config via MI_LOAD_REGISTER_IMMEDIATE
(Umesh)
- Update commit message for v3 experiment
- Squash patches for easier port to stable
v4:
(Ashutosh)
- No need to pass q to xe_oa_submit_bb
- Do not support exec queues with width > 1
- Fix disabling of CTX_CTRL_OAC_CONTEXT_ENABLE
v5:
(Ashutosh)
- Drop reg_lri related comments
- Use XE_OA_SUBMIT_NO_DEPS in xe_oa_load_with_lri
Fixes: 8135f1c09d ("drm/xe/oa: Don't reset OAC_CONTEXT_ENABLE on OA stream close")
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com >
Reviewed-by: Matthew Brost <matthew.brost@intel.com > # commit 1
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com >
Cc: stable@vger.kernel.org
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com >
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20241220171919.571528-2-umesh.nerlige.ramappa@intel.com
(cherry picked from commit 55039832f9 )
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com >
2025-01-02 19:01:21 +01:00
..
2024-10-17 11:20:21 -07:00
2024-11-06 09:08:53 +10:00
2024-11-06 09:08:53 +10:00
2024-06-18 12:40:38 -07:00
2024-11-21 14:56:17 -08:00
2024-12-13 09:15:48 +10:00
2023-12-19 18:34:03 -05:00
2023-12-21 16:31:30 -05:00
2024-11-21 14:56:17 -08:00
2024-09-19 10:03:38 +02:00
2023-12-21 11:40:20 -05:00
2024-10-23 18:22:37 +03:00
2024-05-09 21:28:25 +02:00
2024-09-11 15:17:31 -07:00
2023-12-12 14:05:48 -05:00
2024-09-17 23:31:59 -05:00
2023-12-21 11:40:27 -05:00
2023-12-12 14:05:48 -05:00
2024-11-13 07:58:58 -08:00
2023-12-12 14:05:48 -05:00
2024-10-18 15:18:08 +10:00
2024-12-23 16:19:52 +01:00
2024-10-18 15:18:08 +10:00
2024-10-17 10:17:09 -04:00
2024-08-09 21:15:14 -07:00
2024-10-08 09:39:58 -07:00
2024-12-23 16:19:52 +01:00
2024-10-07 18:12:12 -07:00
2024-05-22 13:22:38 +01:00
2024-04-18 13:30:24 -07:00
2024-11-21 14:56:17 -08:00
2024-11-29 13:06:06 -08:00
2024-11-21 14:56:17 -08:00
2024-12-02 11:34:44 -08:00
2023-12-12 14:05:48 -05:00
2024-10-17 10:17:08 -04:00
2023-12-21 11:41:15 -05:00
2023-12-19 18:33:50 -05:00
2024-10-20 14:48:51 -07:00
2024-12-23 16:19:52 +01:00
2024-08-17 18:31:54 -07:00
2024-11-13 07:49:14 -08:00
2023-12-12 14:05:48 -05:00
2024-08-28 14:50:13 -04:00
2024-10-23 11:06:31 -07:00
2023-12-21 11:37:31 -05:00
2024-10-17 10:17:07 -04:00
2024-11-04 14:25:33 +10:00
2024-10-17 10:17:10 -04:00
2024-07-29 11:19:40 -07:00
2024-08-22 14:00:45 -04:00
2024-11-04 14:25:33 +10:00
2024-08-22 14:00:45 -04:00
2023-12-12 14:05:48 -05:00
2024-10-03 01:19:44 -05:00
2024-10-16 09:00:22 -05:00
2024-08-29 10:32:20 -07:00
2024-08-29 10:32:20 -07:00
2024-10-17 10:17:08 -04:00
2024-03-06 09:50:48 +02:00
2024-05-07 23:21:15 +02:00
2024-03-06 09:50:49 +02:00
2024-03-14 14:47:13 -07:00
2024-10-17 10:17:08 -04:00
2024-08-29 10:32:20 -07:00
2024-11-21 14:56:17 -08:00
2024-04-24 10:19:52 -05:00
2024-09-11 15:32:50 -07:00
2024-06-12 19:10:22 -07:00
2024-10-17 10:17:08 -04:00
2024-03-29 14:00:06 +01:00
2024-10-03 01:13:54 -05:00
2024-04-18 13:26:34 -07:00
2024-09-06 12:13:30 -04:00
2024-10-17 10:17:08 -04:00
2024-09-06 12:13:30 -04:00
2024-10-08 09:39:58 -07:00
2024-10-08 09:39:58 -07:00
2024-10-03 01:13:55 -05:00
2023-12-19 18:27:45 -05:00
2024-09-11 15:17:31 -07:00
2024-08-22 14:00:45 -04:00
2024-12-23 16:19:52 +01:00
2024-10-22 20:33:24 +02:00
2024-09-16 13:00:31 +02:00
2024-09-16 13:00:31 +02:00
2024-08-30 10:51:09 +02:00
2024-10-22 20:33:24 +02:00
2024-04-24 15:18:38 +02:00
2024-04-12 16:23:28 +02:00
2024-09-16 13:00:22 +02:00
2024-09-16 13:00:39 +02:00
2024-09-16 13:00:39 +02:00
2024-05-16 18:04:51 +02:00
2024-05-16 18:04:51 +02:00
2024-05-16 18:04:51 +02:00
2024-04-12 16:23:37 +02:00
2024-04-22 09:03:09 -04:00
2024-04-12 16:23:37 +02:00
2024-04-24 15:10:42 +02:00
2024-09-11 15:32:51 -07:00
2024-04-24 15:10:42 +02:00
2024-09-16 13:00:22 +02:00
2024-09-16 13:00:22 +02:00
2024-09-05 18:09:24 +02:00
2024-01-05 16:25:53 +01:00
2024-09-06 16:32:49 +03:00
2024-05-16 20:18:39 +02:00
2024-05-24 10:08:41 +02:00
2024-09-11 15:32:51 -07:00
2024-07-15 15:18:34 +02:00
2024-08-12 19:08:53 +02:00
2024-08-12 19:08:53 +02:00
2023-12-12 14:05:48 -05:00
2024-10-03 01:13:54 -05:00
2024-04-18 13:26:34 -07:00
2024-09-11 15:32:50 -07:00
2024-05-23 10:55:28 -07:00
2024-08-15 09:44:22 -04:00
2024-12-12 16:57:28 +01:00
2024-12-12 16:57:28 +01:00
2024-10-08 06:56:51 -07:00
2024-04-24 09:06:38 -07:00
2024-09-11 15:17:31 -07:00
2024-10-23 11:08:08 -07:00
2024-10-04 11:46:30 +02:00
2024-10-08 09:34:04 -07:00
2024-10-30 12:49:18 -07:00
2024-05-13 21:36:50 +02:00
2024-10-08 09:34:04 -07:00
2024-12-03 10:33:13 +01:00
2024-10-08 09:47:02 -07:00
2024-10-07 18:35:00 -07:00
2024-11-21 14:56:17 -08:00
2024-10-29 13:11:34 -07:00
2024-04-24 18:18:02 +02:00
2023-12-21 16:31:29 -05:00
2024-10-29 13:11:34 -07:00
2023-12-12 14:05:48 -05:00
2023-12-21 11:39:20 -05:00
2024-10-21 10:34:45 -07:00
2024-08-16 11:07:13 -07:00
2024-08-16 11:07:13 -07:00
2024-01-05 16:25:53 +01:00
2024-07-02 18:33:19 +02:00
2024-03-27 20:19:25 +01:00
2024-05-16 18:04:41 +02:00
2024-05-16 18:04:38 +02:00
2024-05-16 18:04:39 +02:00
2024-10-07 12:58:38 +02:00
2024-10-29 13:11:33 -07:00
2024-10-29 13:11:33 -07:00
2024-10-08 09:34:45 -07:00
2024-06-26 18:23:45 -04:00
2024-10-17 10:17:08 -04:00
2024-06-26 18:23:45 -04:00
2024-01-05 16:25:53 +01:00
2024-10-03 08:58:26 -04:00
2024-01-05 16:25:53 +01:00
2024-03-04 12:23:12 +01:00
2024-11-29 13:06:06 -08:00
2024-10-08 09:34:45 -07:00
2024-11-04 14:25:33 +10:00
2024-10-29 13:11:34 -07:00
2024-10-08 09:34:04 -07:00
2024-07-17 09:47:15 -07:00
2024-07-17 09:47:15 -07:00
2024-04-12 14:49:03 +02:00
2024-04-12 14:49:03 +02:00
2024-02-26 09:06:45 -05:00
2023-12-12 14:05:48 -05:00
2023-12-21 11:45:24 -05:00
2024-10-17 10:17:09 -04:00
2024-05-22 12:03:55 +02:00
2024-05-22 13:22:38 +01:00
2024-02-26 09:06:45 -05:00
2024-08-17 18:31:47 -07:00
2024-08-17 18:31:57 -07:00
2024-08-17 18:31:57 -07:00
2024-10-08 09:47:02 -07:00
2024-10-08 09:47:02 -07:00
2024-10-08 09:47:02 -07:00
2024-08-21 11:53:12 -04:00
2024-08-21 11:53:12 -04:00
2024-05-27 21:26:02 +02:00
2024-09-11 15:17:45 -07:00
2023-12-21 11:42:08 -05:00
2024-09-26 10:27:07 -07:00
2024-06-26 18:25:22 -04:00
2023-12-21 11:45:27 -05:00
2023-12-21 11:45:27 -05:00
2023-12-21 11:45:27 -05:00
2024-09-11 15:17:50 -07:00
2023-12-21 11:45:27 -05:00
2024-05-29 23:44:41 -07:00
2024-10-08 09:39:58 -07:00
2024-10-08 09:39:58 -07:00
2023-12-21 11:39:17 -05:00
2023-12-21 11:37:52 -05:00
2024-09-19 10:14:20 +02:00
2024-10-06 14:24:28 +02:00
2024-09-19 10:15:40 +02:00
2023-12-19 18:29:44 -05:00
2024-11-28 15:22:36 +01:00
2024-08-22 14:00:44 -04:00
2024-09-11 15:32:51 -07:00
2024-09-11 15:32:51 -07:00
2024-10-17 10:17:08 -04:00
2024-05-07 12:03:49 +02:00
2024-08-28 16:29:15 +02:00
2024-08-13 13:52:20 -07:00
2024-10-23 12:42:19 -07:00
2025-01-02 19:01:21 +01:00
2024-06-18 12:40:32 -07:00
2024-08-28 15:17:54 -04:00
2024-07-11 09:54:24 -04:00
2024-10-17 10:17:09 -04:00
2023-12-21 11:45:07 -05:00
2024-07-01 19:43:50 +02:00
2024-07-01 18:01:31 +02:00
2024-05-08 14:48:30 -07:00
2024-11-28 15:07:37 +01:00
2023-12-19 18:31:31 -05:00
2024-01-09 17:47:24 -05:00
2024-09-11 15:17:43 -07:00
2024-09-03 10:36:46 -04:00
2024-10-08 09:19:50 -07:00
2024-10-29 07:12:55 -07:00
2024-09-04 09:28:09 +02:00
2024-08-19 10:39:28 -04:00
2024-08-27 14:09:45 +02:00
2023-12-21 11:39:20 -05:00
2024-07-03 22:28:04 -07:00
2024-02-15 09:53:18 +01:00
2024-02-15 09:53:18 +01:00
2024-12-12 16:57:28 +01:00
2024-07-03 22:28:04 -07:00
2024-10-23 12:42:15 -07:00
2023-12-12 14:05:48 -05:00
2024-02-15 09:53:38 +01:00
2023-12-21 11:37:52 -05:00
2024-12-12 16:57:28 +01:00
2024-12-12 16:57:28 +01:00
2024-05-13 21:36:52 +02:00
2024-06-18 12:40:42 -07:00
2023-12-19 18:29:47 -05:00
2024-08-22 14:00:44 -04:00
2023-12-12 14:05:48 -05:00
2025-01-02 19:01:21 +01:00
2023-12-12 14:05:48 -05:00
2024-07-29 11:19:40 -07:00
2024-06-18 12:03:29 -07:00
2024-09-16 12:58:26 -07:00
2024-07-29 11:19:40 -07:00
2024-08-23 09:54:32 -07:00
2024-09-12 12:18:21 -07:00
2023-12-19 18:34:14 -05:00
2025-01-02 19:01:21 +01:00
2024-10-23 11:06:31 -07:00
2024-06-14 16:51:43 -04:00
2024-04-12 16:23:28 +02:00
2024-04-12 16:23:26 +02:00
2024-04-12 16:23:26 +02:00
2023-12-21 11:45:27 -05:00
2024-04-12 16:23:26 +02:00
2024-10-03 08:58:26 -04:00
2024-06-18 10:51:59 +02:00
2024-08-22 15:48:21 +03:00
2024-08-22 15:48:21 +03:00
2023-12-21 11:45:24 -05:00
2024-02-29 10:39:02 +01:00
2024-11-21 17:16:30 +01:00
2024-07-18 10:17:30 -07:00
2023-12-21 11:35:06 -05:00
2024-05-22 13:22:38 +01:00
2024-04-18 13:30:17 -07:00
2024-10-03 08:58:26 -04:00
2023-12-21 11:45:10 -05:00
2024-06-12 09:25:07 -07:00
2024-09-05 18:20:00 +02:00
2024-06-12 09:25:10 -07:00
2024-06-12 09:25:12 -07:00
2023-12-21 11:43:34 -05:00
2024-09-11 15:17:36 -07:00
2024-09-11 15:17:51 -07:00
2023-12-19 18:29:47 -05:00
2024-08-28 06:45:52 -07:00
2023-12-19 18:31:30 -05:00
2023-12-21 11:43:32 -05:00
2024-08-07 18:19:00 -04:00
2024-04-16 12:37:31 +02:00
2024-10-03 01:13:55 -05:00
2023-12-21 11:42:10 -05:00
2024-08-29 10:32:20 -07:00
2023-12-12 14:05:48 -05:00
2023-12-21 11:45:06 -05:00
2024-04-08 14:58:52 +02:00
2024-10-03 08:58:26 -04:00
2024-09-03 10:36:38 -04:00
2023-12-21 11:45:06 -05:00
2024-07-18 10:25:33 -04:00
2024-07-18 10:25:33 -04:00
2024-05-07 12:45:39 -04:00
2024-07-03 22:28:07 -07:00
2024-10-16 09:00:22 -05:00
2024-07-03 22:28:04 -07:00
2024-09-03 10:36:46 -04:00
2024-04-18 13:30:17 -07:00
2024-10-17 10:17:09 -04:00
2024-05-30 23:50:28 +02:00
2024-10-17 11:20:21 -07:00
2024-10-16 08:00:38 -07:00
2024-07-24 09:05:37 -07:00
2024-11-04 08:12:30 -08:00
2023-12-12 14:05:48 -05:00
2024-01-23 16:54:41 +01:00
2024-10-03 08:58:26 -04:00
2023-12-12 14:05:48 -05:00