mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-27 03:49:57 -04:00
drm/amdgpu: add configurable grace period for unmap queues
The HWS schedule allows a grace period for wave completion prior to preemption for better performance by avoiding CWSR on waves that can potentially complete quickly. The debugger, on the other hand, will want to inspect wave status immediately after it actively triggers preemption (a suspend function to be provided). To minimize latency between preemption and debugger wave inspection, allow immediate preemption by setting the grace period to 0. Note that setting the preepmtion grace period to 0 will result in an infinite grace period being set due to a CP FW bug so set it to 1 for now. Signed-off-by: Jonathan Kim <jonathan.kim@amd.com> Reviewed-by: Felix Kuehling <felix.kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
33f3437ae1
commit
7cee6a6824
@@ -584,6 +584,71 @@ struct pm4_mec_release_mem {
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef PM4_MEC_WRITE_DATA_DEFINED
|
||||
#define PM4_MEC_WRITE_DATA_DEFINED
|
||||
|
||||
enum WRITE_DATA_dst_sel_enum {
|
||||
dst_sel___write_data__mem_mapped_register = 0,
|
||||
dst_sel___write_data__tc_l2 = 2,
|
||||
dst_sel___write_data__gds = 3,
|
||||
dst_sel___write_data__memory = 5,
|
||||
dst_sel___write_data__memory_mapped_adc_persistent_state = 6,
|
||||
};
|
||||
|
||||
enum WRITE_DATA_addr_incr_enum {
|
||||
addr_incr___write_data__increment_address = 0,
|
||||
addr_incr___write_data__do_not_increment_address = 1
|
||||
};
|
||||
|
||||
enum WRITE_DATA_wr_confirm_enum {
|
||||
wr_confirm___write_data__do_not_wait_for_write_confirmation = 0,
|
||||
wr_confirm___write_data__wait_for_write_confirmation = 1
|
||||
};
|
||||
|
||||
enum WRITE_DATA_cache_policy_enum {
|
||||
cache_policy___write_data__lru = 0,
|
||||
cache_policy___write_data__stream = 1
|
||||
};
|
||||
|
||||
|
||||
struct pm4_mec_write_data_mmio {
|
||||
union {
|
||||
union PM4_MES_TYPE_3_HEADER header; /*header */
|
||||
unsigned int ordinal1;
|
||||
};
|
||||
|
||||
union {
|
||||
struct {
|
||||
unsigned int reserved1:8;
|
||||
unsigned int dst_sel:4;
|
||||
unsigned int reserved2:4;
|
||||
unsigned int addr_incr:1;
|
||||
unsigned int reserved3:2;
|
||||
unsigned int resume_vf:1;
|
||||
unsigned int wr_confirm:1;
|
||||
unsigned int reserved4:4;
|
||||
unsigned int cache_policy:2;
|
||||
unsigned int reserved5:5;
|
||||
} bitfields2;
|
||||
unsigned int ordinal2;
|
||||
};
|
||||
|
||||
union {
|
||||
struct {
|
||||
unsigned int dst_mmreg_addr:18;
|
||||
unsigned int reserved6:14;
|
||||
} bitfields3;
|
||||
unsigned int ordinal3;
|
||||
};
|
||||
|
||||
uint32_t reserved7;
|
||||
|
||||
uint32_t data;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
enum {
|
||||
CACHE_FLUSH_AND_INV_TS_EVENT = 0x00000014
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user