Handle traps, illegal instruction, memory violations through queue signal

Report traps and fatal exceptions through a wavefront's
amd_queue_t.queue_inactive_signal. Previously, only traps were
reported and requireed the compiler to pass in the signal pointer
in s[0:1].

The signal is obtained through a mapping from doorbell index to
amd_queue_t*. The doorbell is fetched within a wavefront through
the gfx9+ S_SENDMSG(MSG_GET_DOORBELL) instruction.

Change-Id: I319b45f2e15dfcfe4db8f4065da1136e9539a42b
This commit is contained in:
Jay Cornwall
2019-06-20 13:22:14 -05:00
committed by Sean Keely
orang tua 6ed686ee29
melakukan ff8f439112
6 mengubah file dengan 104 tambahan dan 12 penghapusan
+11 -1
Melihat File
@@ -64,7 +64,17 @@ enum {
/**
* The memory pool is invalid.
*/
HSA_STATUS_ERROR_INVALID_MEMORY_POOL = 40
HSA_STATUS_ERROR_INVALID_MEMORY_POOL = 40,
/**
* Agent accessed memory beyond the maximum legal address.
*/
HSA_STATUS_ERROR_MEMORY_APERTURE_VIOLATION = 41,
/**
* Agent executed an invalid shader instruction.
*/
HSA_STATUS_ERROR_ILLEGAL_INSTRUCTION = 42,
};
/**