Adding barrier bit on packets after dispatch (#981)
Co-authored-by: Gopesh Bhardwaj <gopesh.bhardwaj@amd.com>
This commit is contained in:
committed by
GitHub
vanhempi
0f89f0449d
commit
04a38ce034
@@ -114,11 +114,13 @@ CounterAQLPacket::CounterAQLPacket(aqlprofile_agent_handle_t ag
|
||||
reinterpret_cast<void*>(&pool));
|
||||
if(status != HSA_STATUS_SUCCESS) ROCP_FATAL << "Could not create PMC packets!";
|
||||
|
||||
auto header = HSA_PACKET_TYPE_VENDOR_SPECIFIC << HSA_PACKET_HEADER_TYPE;
|
||||
packets.start_packet.header = header;
|
||||
packets.stop_packet.header = header;
|
||||
packets.read_packet.header = header;
|
||||
empty = false;
|
||||
packets.start_packet.header = 1 << HSA_PACKET_HEADER_BARRIER;
|
||||
// Read and stop packets require the barrier bit set to wait for the dispatch packet
|
||||
auto header = (HSA_PACKET_TYPE_VENDOR_SPECIFIC << HSA_PACKET_HEADER_TYPE) |
|
||||
(1 << HSA_PACKET_HEADER_BARRIER);
|
||||
packets.stop_packet.header = header;
|
||||
packets.read_packet.header = header;
|
||||
empty = false;
|
||||
}
|
||||
|
||||
hsa_status_t
|
||||
@@ -180,7 +182,8 @@ TraceControlAQLPacket::TraceControlAQLPacket(const TraceMemoryPool& _tr
|
||||
CHECK_HSA(status, "failed to create ATT packet");
|
||||
|
||||
packets.start_packet.header = HSA_PACKET_TYPE_VENDOR_SPECIFIC << HSA_PACKET_HEADER_TYPE;
|
||||
packets.stop_packet.header = HSA_PACKET_TYPE_VENDOR_SPECIFIC << HSA_PACKET_HEADER_TYPE;
|
||||
packets.stop_packet.header = (HSA_PACKET_TYPE_VENDOR_SPECIFIC << HSA_PACKET_HEADER_TYPE) |
|
||||
(1 << HSA_PACKET_HEADER_BARRIER);
|
||||
packets.start_packet.completion_signal = hsa_signal_t{.handle = 0};
|
||||
packets.stop_packet.completion_signal = hsa_signal_t{.handle = 0};
|
||||
this->empty = false;
|
||||
|
||||
@@ -95,11 +95,8 @@ TEST(thread_trace, resource_creation)
|
||||
packet->populate_before();
|
||||
packet->populate_after();
|
||||
|
||||
size_t vendor_packet = HSA_PACKET_TYPE_VENDOR_SPECIFIC << HSA_PACKET_HEADER_TYPE;
|
||||
ASSERT_TRUE(packet->before_krn_pkt.size() > 0);
|
||||
ASSERT_TRUE(packet->after_krn_pkt.size() > 0);
|
||||
ASSERT_TRUE(packet->before_krn_pkt.at(0).header == vendor_packet);
|
||||
ASSERT_TRUE(packet->after_krn_pkt.at(0).header == vendor_packet);
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
Viittaa uudesa ongelmassa
Block a user