kfdtest: Add event-based synchronization mechanism to queues

Wait4PacketConsumption now can accept an event to wait all packets subbmitted
to be processed.

Change-Id: I1497b7704e892b04d05811b8d3e4742237c1be57
Signed-off-by: xinhui pan <xinhui.pan@amd.com>
Этот коммит содержится в:
xinhui pan
2018-08-27 14:56:48 +08:00
коммит произвёл Xinhui Pan
родитель a9bd6e6f8b
Коммит 9c7cfc0df2
6 изменённых файлов: 44 добавлений и 2 удалений
+12
Просмотреть файл
@@ -22,6 +22,7 @@
*/
#include "SDMAQueue.hpp"
#include "SDMAPacket.hpp"
SDMAQueue::SDMAQueue(void) {
CMD_NOP = 0;
@@ -79,3 +80,14 @@ void SDMAQueue::SubmitPacket() {
}
}
void SDMAQueue::Wait4PacketConsumption(HsaEvent *event) {
if (event) {
PlacePacket(SDMAFencePacket((void*)event->EventData.HWData2, event->EventId));
PlaceAndSubmitPacket(SDMATrapPacket(event->EventId));
EXPECT_SUCCESS(hsaKmtWaitOnEvent(event, g_TestTimeOut));
} else {
BaseQueue::Wait4PacketConsumption();
}
}