mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
drm/xe/multi_queue: Use QUEUE_TIMESTAMP as job timestamp for multi-queue
Each queue in a multi queue group has a dedicated timestamp counter. Use this QUEUE TIMESTAMP register to capture the start timestamp for the job. Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Link: https://patch.msgid.link/20260507162016.3888309-23-umesh.nerlige.ramappa@intel.com
This commit is contained in:
parent
1f30396de0
commit
1445cb708e
|
|
@ -269,8 +269,12 @@ static u32 get_ppgtt_flag(struct xe_sched_job *job)
|
|||
static int emit_copy_timestamp(struct xe_device *xe, struct xe_lrc *lrc,
|
||||
u32 *dw, int i)
|
||||
{
|
||||
const struct xe_reg reg = xe_lrc_is_multi_queue(lrc) ?
|
||||
RING_QUEUE_TIMESTAMP(0) :
|
||||
RING_CTX_TIMESTAMP(0);
|
||||
|
||||
dw[i++] = MI_STORE_REGISTER_MEM | MI_SRM_USE_GGTT | MI_SRM_ADD_CS_OFFSET;
|
||||
dw[i++] = RING_CTX_TIMESTAMP(0).addr;
|
||||
dw[i++] = reg.addr;
|
||||
dw[i++] = xe_lrc_ctx_job_timestamp_ggtt_addr(lrc);
|
||||
dw[i++] = 0;
|
||||
|
||||
|
|
@ -281,7 +285,7 @@ static int emit_copy_timestamp(struct xe_device *xe, struct xe_lrc *lrc,
|
|||
if (IS_SRIOV_VF(xe)) {
|
||||
dw[i++] = MI_STORE_REGISTER_MEM | MI_SRM_USE_GGTT |
|
||||
MI_SRM_ADD_CS_OFFSET;
|
||||
dw[i++] = RING_CTX_TIMESTAMP(0).addr;
|
||||
dw[i++] = reg.addr;
|
||||
dw[i++] = xe_lrc_ctx_timestamp_ggtt_addr(lrc);
|
||||
dw[i++] = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user