wsl/hsakmt: rename vendor_packet_support
to vendor_packet_process. :1 process vender specific packet (acquire_mem, handle signal, update rptr) :0 skip vender specific packet (handle signal by cpu, update rptr by gpu) Signed-off-by: Flora Cui <flora.cui@amd.com> Reviewed-by: Longlong Yao <Longlong.Yao@amd.com> Part-of: <http://10.67.69.192/wsl/libhsakmt/-/merge_requests/35>
Cette révision appartient à :
+2
-2
@@ -43,8 +43,8 @@ int PAGE_SHIFT;
|
|||||||
bool is_svm_api_supported;
|
bool is_svm_api_supported;
|
||||||
/* zfb is mainly used during emulation */
|
/* zfb is mainly used during emulation */
|
||||||
int zfb_support;
|
int zfb_support;
|
||||||
/* handle vendor specific packet */
|
/* handle vendor specific packet. :1 process 0:skip */
|
||||||
int vendor_packet_support;
|
int vendor_packet_process;
|
||||||
/* enable vendor packet in hsa-runtime*/
|
/* enable vendor packet in hsa-runtime*/
|
||||||
int enable_vendor_packet;
|
int enable_vendor_packet;
|
||||||
/* check available system memory before allocation */
|
/* check available system memory before allocation */
|
||||||
|
|||||||
+1
-1
@@ -43,7 +43,7 @@ extern pthread_mutex_t hsakmt_mutex;
|
|||||||
extern bool is_dgpu;
|
extern bool is_dgpu;
|
||||||
extern bool is_svm_api_supported;
|
extern bool is_svm_api_supported;
|
||||||
extern int zfb_support;
|
extern int zfb_support;
|
||||||
extern int vendor_packet_support;
|
extern int vendor_packet_process;
|
||||||
extern int enable_vendor_packet;
|
extern int enable_vendor_packet;
|
||||||
extern bool check_avail_sysram;
|
extern bool check_avail_sysram;
|
||||||
extern size_t max_single_alloc_size;
|
extern size_t max_single_alloc_size;
|
||||||
|
|||||||
+1
-1
@@ -122,7 +122,7 @@ static HSAKMT_STATUS init_vars_from_env(void) {
|
|||||||
/* Check whether to handle vendor specific aql packet */
|
/* Check whether to handle vendor specific aql packet */
|
||||||
envvar = getenv("WSLKMT_VENDOR_PACKET");
|
envvar = getenv("WSLKMT_VENDOR_PACKET");
|
||||||
if (envvar)
|
if (envvar)
|
||||||
vendor_packet_support = atoi(envvar);
|
vendor_packet_process = atoi(envvar);
|
||||||
|
|
||||||
/* Decide whether hsa-runtime dispatch vendor packet */
|
/* Decide whether hsa-runtime dispatch vendor packet */
|
||||||
envvar = getenv("WSL_ENABLE_VENDOR_PACKET");
|
envvar = getenv("WSL_ENABLE_VENDOR_PACKET");
|
||||||
|
|||||||
@@ -824,7 +824,7 @@ hsa_status_t ComputeQueue::VendorSpecificAqlToPm4(char *cpu, amd_aql_pm4_ib *pac
|
|||||||
uint32_t* pm4_addr = reinterpret_cast<uint32_t*>((static_cast<uint64_t>(packet->ib_jump_cmd[2]) << 32) | (static_cast<uint64_t>(packet->ib_jump_cmd[1]) & ~3ull));
|
uint32_t* pm4_addr = reinterpret_cast<uint32_t*>((static_cast<uint64_t>(packet->ib_jump_cmd[2]) << 32) | (static_cast<uint64_t>(packet->ib_jump_cmd[1]) & ~3ull));
|
||||||
uint32_t pm4_size = packet->ib_jump_cmd[3]&0xfffff;
|
uint32_t pm4_size = packet->ib_jump_cmd[3]&0xfffff;
|
||||||
debug_print("queue %p %s VENDOR_SPECIFIC pkt pm4_addr %p pm4_size %" PRIx64 " cs=%" PRIx64"\n",
|
debug_print("queue %p %s VENDOR_SPECIFIC pkt pm4_addr %p pm4_size %" PRIx64 " cs=%" PRIx64"\n",
|
||||||
ring, vendor_packet_support ? "process" : "skip", pm4_addr, pm4_size,
|
ring, vendor_packet_process ? "process" : "skip", pm4_addr, pm4_size,
|
||||||
packet->completion_signal.handle);
|
packet->completion_signal.handle);
|
||||||
for (int i = 0; i < pm4_size; i++) {
|
for (int i = 0; i < pm4_size; i++) {
|
||||||
debug_print("pm4_addr[%d]=%#x\n", i, pm4_addr[i]);
|
debug_print("pm4_addr[%d]=%#x\n", i, pm4_addr[i]);
|
||||||
@@ -832,7 +832,7 @@ hsa_status_t ComputeQueue::VendorSpecificAqlToPm4(char *cpu, amd_aql_pm4_ib *pac
|
|||||||
|
|
||||||
int i = ib_size;
|
int i = ib_size;
|
||||||
|
|
||||||
if (vendor_packet_support) {
|
if (vendor_packet_process) {
|
||||||
int major = device->Major();
|
int major = device->Major();
|
||||||
memcpy(cpu+i, pm4_addr, pm4_size * sizeof(uint32_t));
|
memcpy(cpu+i, pm4_addr, pm4_size * sizeof(uint32_t));
|
||||||
i += pm4_size * sizeof(uint32_t);
|
i += pm4_size * sizeof(uint32_t);
|
||||||
|
|||||||
Référencer dans un nouveau ticket
Bloquer un utilisateur