Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
d5603e4
ze: add THAPI_REPORT_INJECTED_EVENTS counter
TApplencourt May 28, 2026
644ae61
btx_zeinterval: per-hEvent metadata FIFO with rotation
TApplencourt May 29, 2026
605d236
btx_zeinterval: pop-and-discard FIFO + clear kernelToDesct on destroy
TApplencourt May 29, 2026
44ed510
ze: universal per-Append AppendQueryKernelTimestamps scheme
TApplencourt May 29, 2026
6c6cd3f
ze: dependency-tracking drain
TApplencourt May 29, 2026
39e2a53
btx_zeinterval: per-event ring with cursor + new-phase reset
TApplencourt Jun 1, 2026
efb285b
btx_zeinterval: tests for resubmit + shared-event-resubmit + cross-phase
TApplencourt Jun 1, 2026
5c9aa65
ze: shadow compute cl for AppendQueryKernelTimestamps
TApplencourt Jun 2, 2026
29904fa
ze: preallocate slot array to keep slot pointers stable
TApplencourt Jun 3, 2026
cbb928b
ze: drain preds via slot->owner, not caller cl_data
TApplencourt Jun 3, 2026
d8598db
ze: document why _slot_drain needs no cycle guard
TApplencourt Jun 3, 2026
6a855b8
ze: drop wrong claim about live-clear stopping cycles
TApplencourt Jun 3, 2026
7224632
ze: fold slab/slots alloc into _cl_slot_append, bump n_slots last
TApplencourt Jun 3, 2026
83191b9
ze: inline _cl_get_device into its two callers
TApplencourt Jun 3, 2026
eec35a9
ze: collapse _universal_record_append cleanup with goto fail
TApplencourt Jun 3, 2026
e566bc5
ze: collapse THAPI_DBGLOG / _NO_ARGS via , ##__VA_ARGS__
TApplencourt Jun 3, 2026
322402d
ze: drop THAPI_REPORT_INJECTED_EVENTS debug counter
TApplencourt Jun 3, 2026
ccf6e65
ze: drop dead cap_slots field
TApplencourt Jun 3, 2026
e396740
ze: drop empty _lib_cleanup and its scaffolding
TApplencourt Jun 3, 2026
e15cbf9
ze: extract _cl_cache_{device,context} + _on_execute_one_cl
TApplencourt Jun 3, 2026
ecc2954
ze: chain user_signal off inj BEFORE the slot allocation
TApplencourt Jun 3, 2026
77bd81b
ze: refcount slots, recycle imm-cl events back to the per-context pool
TApplencourt Jun 3, 2026
03c24fa
ze: chunked slot/slab storage + refcount + cl-destroy hook
TApplencourt Jun 4, 2026
5676911
ze: tear down our context-bound state in zeContextDestroy prologue
TApplencourt Jun 4, 2026
8810022
rubocopt
TApplencourt Jun 8, 2026
48e3843
Clang-format
TApplencourt Jun 8, 2026
e3d6b63
ze: fix UAF in _cl_drain when draining the chunk's last slot
TApplencourt Jun 8, 2026
a46879d
ze: Reset shadow cl on idle to reclaim L0 driver per-QKT storage
TApplencourt Jun 8, 2026
7227a97
ze: inline QKT on compute user cls to skip the shadow cl
TApplencourt Jun 9, 2026
69da77c
ze: document QKT placement (INLINE vs SHADOW), sweep stale comments
TApplencourt Jun 9, 2026
c83b597
ze: include <alloca.h>; rename inorder_reg_Event_11 -> inorder_reg_Ev…
TApplencourt Jun 9, 2026
0cb0f16
ze: skip Execute-time _slot_instantiate when slot is already live
Jun 9, 2026
c93fb40
ze: assert in _slot_instantiate, skip live slots earlier in Execute
Jun 9, 2026
ecde3c5
ze: collapse is_compute branches via _slot_publish; drop cached_devic…
Jun 9, 2026
b651992
ze: rename _ze_latest -> _ze_event_latest_signaled
Jun 9, 2026
584fd18
ze: drop FIND_AND_DEL+ADD on _ze_cls_mutex in _universal_record_append
Jun 10, 2026
faa6a30
ze: fetch context once per profiled Append; thread it through prologu…
Jun 10, 2026
1f5a1b8
ze: inline cached_context read in _on_execute_one_cl; drop _cl_cache_…
Jun 10, 2026
618297a
ze: PUT_ZE_EVENT macro -> _put_ze_event function; reset + alloc outsi…
Jun 10, 2026
a08a931
ze: convert remaining macros to functions
Jun 10, 2026
0f271d0
ze: extract _cl_chunk_free helper
Jun 10, 2026
4003262
ze: unify cl_data destroy paths via _cl_data_destroy(ctx_dying)
Jun 10, 2026
4e49526
ze: collapse every per-domain tracer mutex into one _ze_state_mutex
Jun 10, 2026
272ade7
ze: comment cleanup — add Concurrency header section, trim verbose docs
Jun 10, 2026
1b8d41e
ze: attribute device-profiling results from AppendSignalEvent correctly
Jun 12, 2026
a898759
ze tests: document ring/cursor scenarios; drop unreachable _fast test
Jun 12, 2026
72c2703
ze tests: rewrite ring fixture headers to describe observable behavior
Jun 17, 2026
a7dffd7
ze: drain profiling slots on fence-only sync
Jun 17, 2026
8a48098
ze: warn once when a regular cl exceeds its profiled-Append cap
Jun 17, 2026
3a8a41b
ze: reclaim slot state on cl reset/reuse; fix cross-cl UAF; cap drive…
Jun 17, 2026
221c02b
ze: serve kernel timestamps back to the user's own zeEventQueryKernel…
Jun 17, 2026
0614c2c
ze: consolidate tracer engine — unified sync, shared slot helpers
Jun 17, 2026
7a9665f
ze: fix event-state stale reads on handle reuse + index queue/fence sync
Jun 19, 2026
1cc7086
ze: clang-format-18 the tracer helpers; declare ForEach macros
Jun 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -1,2 +1,8 @@
BinPackParameters: false
ColumnLimit: 100
ForEachMacros:
- _ZE_FOREACH_SLOT
- DL_FOREACH
- DL_FOREACH_SAFE
- DL_FOREACH_SAFE2
- HASH_ITER
7 changes: 5 additions & 2 deletions backends/ze/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -278,9 +278,12 @@ TRACE_COMMON = \
tests/interval_profiling_normal.thapi_text_pretty \
tests/interval_profiling_multithread.thapi_text_pretty \
tests/interval_profiling_API_call.thapi_text_pretty \
tests/interval_profiling_fast.thapi_text_pretty \
tests/interval_profiling_interleave_process.thapi_text_pretty \
tests/interval_profiling_ignore.thapi_text_pretty
tests/interval_profiling_ignore.thapi_text_pretty \
tests/interval_profiling_shared_event.thapi_text_pretty \
tests/interval_profiling_resubmit_event.thapi_text_pretty \
tests/interval_profiling_shared_event_resubmit.thapi_text_pretty \
tests/interval_profiling_shared_event_xphase.thapi_text_pretty

BTX_ZE_GENERATED_SOURCE_TEST = \
btx_source_ze_test/metababel/metababel.h \
Expand Down
63 changes: 50 additions & 13 deletions backends/ze/btx_zeinterval_callbacks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -559,6 +559,20 @@ static void hSignalEvent_rest_entry_callback(void *btx_handle,
hCommandList, name, ts, btx_event_t::OTHER, {}};
}

static void zeCommandListAppendSignalEvent_entry_callback(void *btx_handle,
void *usr_data,
int64_t ts,
const char *hostname,
int64_t vpid,
uint64_t vtid,
ze_command_list_handle_t hCommandList,
ze_event_handle_t hEvent) {
(void)hEvent;
auto *data = static_cast<data_t *>(usr_data);
data->threadToLastLaunchInfo[{hostname, vpid, vtid}] = {
hCommandList, "zeCommandListAppendSignalEvent", ts, btx_event_t::SIGNAL, {}};
}

/*
* _ _ _
* _ _ / _ ._ _ ._ _ _. ._ _| / \ _ _ |_ _ _ _|_ _
Expand All @@ -584,9 +598,11 @@ zeCommandQueueExecuteCommandLists_entry_callback(void *btx_handle,
const auto commandQueueDesc = data->commandQueueToDesc[{hostname, vpid, hCommandQueue}];
for (size_t i = 0; i < _phCommandLists_vals_length; i++) {
for (auto &hEvent : data->commandListToEvents[{hostname, vpid, phCommandLists_vals[i]}]) {
auto &h = data->eventToBtxDesct[{hostname, vpid, hEvent}];
std::get<ze_command_queue_desc_t>(h) = commandQueueDesc;
std::get<int64_t>(h) = ts;
auto &ring = data->eventToBtxDesct[{hostname, vpid, hEvent}];
for (auto &h : ring.entries) {
std::get<ze_command_queue_desc_t>(h) = commandQueueDesc;
std::get<int64_t>(h) = ts;
}
}
}
}
Expand Down Expand Up @@ -825,11 +841,16 @@ static void event_profiling_callback(void *btx_handle,
}

// If not IMM will be commandQueueDesc overwrited latter
data->eventToBtxDesct[{hostname, vpid, hEvent}] = {vtid, commandQueueDesc,
hCommandList, hCommandListIsImmediate,
hDevice, commandName,
ts_min, clockLttngDevice,
type, ptr};
// Push onto the per-event ring. If the cursor has advanced (we've
// already consumed at least one result for this event), the prior
// ring belongs to a finished build phase — clear and start fresh.
auto &ring = data->eventToBtxDesct[{hostname, vpid, hEvent}];
if (ring.cursor > 0) {
ring.entries.clear();
ring.cursor = 0;
}
ring.entries.push_back({vtid, commandQueueDesc, hCommandList, hCommandListIsImmediate, hDevice,
commandName, ts_min, clockLttngDevice, type, ptr});
// Prepare job for non IMM
if (!hCommandListIsImmediate)
data->commandListToEvents[{hostname, vpid, hCommandList}].insert(hEvent);
Expand Down Expand Up @@ -880,14 +901,17 @@ static void event_profiling_result_callback(void *btx_handle,

auto *data = static_cast<data_t *>(usr_data);

// TODO: Should we always find the eventToBtxDesct?
// We didn't find the partial payload, that mean we should ignore it
// Read the current ring slot for this event; advance the cursor;
// wrap to 0 on overflow. Resubmits re-cycle through the same ring.
const auto it_p = data->eventToBtxDesct.find({hostname, vpid, hEvent});
if (it_p == data->eventToBtxDesct.cend())
if (it_p == data->eventToBtxDesct.cend() || it_p->second.entries.empty())
return;
// We don't erase, may have one entry for multiple result
auto &ring = it_p->second;
if (ring.cursor >= ring.entries.size())
ring.cursor = 0;
const auto &[vtid_submission, commandQueueDesc, hCommandList, hCommandListIsImmediate, device,
commandName, lltngMin, clockLttngDevice, type, ptr] = it_p->second;
commandName, lltngMin, clockLttngDevice, type, ptr] = ring.entries[ring.cursor];
ring.cursor++;
std::string metadata = "";
{
std::stringstream ss_metadata;
Expand All @@ -901,6 +925,13 @@ static void event_profiling_result_callback(void *btx_handle,
if (!hCommandListIsImmediate)
data->commandListToEvents[{hostname, vpid, hCommandList}].erase(hEvent);

/* AppendSignalEvent is a host-side signal with no GPU work to time.
* We pushed a ring entry to keep state consistent (so a future
* profiling_results lookup doesn't walk a stale prior entry), but
* suppress the device-side tally emission here. */
if (type == btx_event_t::SIGNAL)
return;

if ((type == btx_event_t::TRAFFIC) && (status == ZE_RESULT_SUCCESS)) {
auto &[ts, size] = std::get<btx_additional_info_traffic_t>(ptr);
btx_push_message_lttng_traffic(btx_handle, hostname, vpid, vtid, ts, BACKEND_ZE,
Expand Down Expand Up @@ -1400,6 +1431,12 @@ void btx_register_usr_callbacks(void *btx_handle) {
REGISTER_ASSOCIATED_CALLBACK(eventMemory_without_hSignalEvent_exit);
REGISTER_ASSOCIATED_CALLBACK(hSignalEvent_rest_entry);

/* zeCommandListAppendSignalEvent doesn't match the hSignalEvent_* sets
* (payload is `hEvent`, not `hSignalEvent`), so it needs its own entry
* callback to keep threadToLastLaunchInfo from going stale. */
btx_register_callbacks_lttng_ust_ze_zeCommandListAppendSignalEvent_entry(
btx_handle, &zeCommandListAppendSignalEvent_entry_callback);

/* Remove Memory */
REGISTER_ASSOCIATED_CALLBACK(memFree_entry);
REGISTER_ASSOCIATED_CALLBACK(memFree_exit);
Expand Down
17 changes: 15 additions & 2 deletions backends/ze/btx_zeinterval_callbacks.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ using btx_kernel_group_size_t = std::tuple<uint32_t, uint32_t, uint32_t>;
using btx_kernel_desct_t =
std::tuple<std::string /*ze_kernel_desc_t*/, ze_kernel_properties_t, btx_kernel_group_size_t>;

enum class btx_event_t { TRAFFIC, KERNEL, OTHER };
// SIGNAL = zeCommandListAppendSignalEvent. Ring entry is created so state
// stays consistent, but filtered out of the device tally (no GPU work).
enum class btx_event_t { TRAFFIC, KERNEL, SIGNAL, OTHER };
using btx_additional_info_traffic_t = std::tuple<int64_t /*ts*/, size_t /*size*/>;
using btx_additional_info_kernel_t = std::string /*metadata*/;
using btx_additional_info =
Expand Down Expand Up @@ -93,7 +95,18 @@ struct data_s {
std::unordered_map<hp_command_queue_t, ze_command_queue_desc_t> commandQueueToDesc;

std::unordered_map<hpt_t, btx_launch_desc_t> threadToLastLaunchInfo;
std::unordered_map<hp_event_t, btx_event_desct_t> eventToBtxDesct;

/* Per-event metadata ring. An hEvent can be the signal event of N
* Appends in one build phase, and the cl can be resubmitted M times,
* yielding M*N result events. We store the N Appends as a vector and
* advance `cursor` per result, wrapping at the end. A new push that
* arrives after the cursor advanced indicates a new build phase —
* we clear and start over so the ring tracks only the current phase. */
struct event_ring_t {
std::vector<btx_event_desct_t> entries;
size_t cursor = 0;
};
std::unordered_map<hp_event_t, event_ring_t> eventToBtxDesct;
// Require for non IMM
std::unordered_map<hp_command_list_t, std::unordered_set<ze_event_handle_t>> commandListToEvents;

Expand Down
1 change: 1 addition & 0 deletions backends/ze/gen_ze.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <dlfcn.h>
#include <stdio.h>
#include <stdlib.h>
#include <alloca.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 20, err = false }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 10, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 30, err = false }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 30, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# 1 Append, but the underlying cl is Executed twice in a real run, so
# 2 results arrive for the same hEvent. Both are attributed to that one
# Append.
12:00:00.000000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_entry: { hCommandList: 0x1000000000000000, hSignalEvent: 0x0000000000000000, numWaitEvents: 0, phWaitEvents: 0x0000000000000000, _phWaitEvents_vals_length: 0, phWaitEvents_vals: 0x0000000000000000 }
12:00:00.010000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x1000000000000000 }
12:00:00.020000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x1000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 0, globalEnd: 10, contextStart: 0, contextEnd: 10 }
12:00:00.030000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.010000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x4000000000000000 }
12:00:00.020000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.100000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 0, globalEnd: 10, contextStart: 0, contextEnd: 10 }
12:00:00.200000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 100, globalEnd: 130, contextStart: 100, contextEnd: 130 }
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 20, err = false }
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000100, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 20, err = false }
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000200, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 20, err = false }
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000300, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 20, err = false }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 10, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000100, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 30, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000200, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 40, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000300, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 50, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 4 Appends share one hEvent. Each Append's result is attributed back to
# its own Append, in submission order.
12:00:00.000000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_entry: { hCommandList: 0x1000000000000000, hSignalEvent: 0x0000000000000000, numWaitEvents: 0, phWaitEvents: 0x0000000000000000, _phWaitEvents_vals_length: 0, phWaitEvents_vals: 0x0000000000000000 }
12:00:00.010000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x4000000000000000 }
12:00:00.020000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.100000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_entry: { hCommandList: 0x1000000000000000, hSignalEvent: 0x0000000000000000, numWaitEvents: 0, phWaitEvents: 0x0000000000000000, _phWaitEvents_vals_length: 0, phWaitEvents_vals: 0x0000000000000000 }
12:00:00.110000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x4000000000000000 }
12:00:00.120000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.200000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_entry: { hCommandList: 0x1000000000000000, hSignalEvent: 0x0000000000000000, numWaitEvents: 0, phWaitEvents: 0x0000000000000000, _phWaitEvents_vals_length: 0, phWaitEvents_vals: 0x0000000000000000 }
12:00:00.210000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x4000000000000000 }
12:00:00.220000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.300000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_entry: { hCommandList: 0x1000000000000000, hSignalEvent: 0x0000000000000000, numWaitEvents: 0, phWaitEvents: 0x0000000000000000, _phWaitEvents_vals_length: 0, phWaitEvents_vals: 0x0000000000000000 }
12:00:00.310000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x4000000000000000 }
12:00:00.320000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.400000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 0, globalEnd: 10, contextStart: 0, contextEnd: 10 }
12:00:00.410000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 100, globalEnd: 130, contextStart: 100, contextEnd: 130 }
12:00:00.420000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 200, globalEnd: 240, contextStart: 200, contextEnd: 240 }
12:00:00.430000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 300, globalEnd: 350, contextStart: 300, contextEnd: 350 }
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 20, err = false }
lttng:host: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000100, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 20, err = false }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 10, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000100, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 30, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000000, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 40, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
lttng:device: { hostname = "testhost", vpid = 10, vtid = 1, ts = 1704110400000000100, backend = 1 }, { name = "zeCommandListAppendBarrier", dur = 50, did = 0, sdid = 0, err = false, metadata = "{ordinal: 0, index: 0}" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 2 Appends share one hEvent, then the underlying cl is Executed twice,
# so 4 results arrive. Each submission's pair of results is attributed to
# the two Appends in submission order.
12:00:00.000000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_entry: { hCommandList: 0x1000000000000000, hSignalEvent: 0x0000000000000000, numWaitEvents: 0, phWaitEvents: 0x0000000000000000, _phWaitEvents_vals_length: 0, phWaitEvents_vals: 0x0000000000000000 }
12:00:00.010000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x4000000000000000 }
12:00:00.020000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.100000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_entry: { hCommandList: 0x1000000000000000, hSignalEvent: 0x0000000000000000, numWaitEvents: 0, phWaitEvents: 0x0000000000000000, _phWaitEvents_vals_length: 0, phWaitEvents_vals: 0x0000000000000000 }
12:00:00.110000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling: { hEvent: 0x4000000000000000 }
12:00:00.120000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze:zeCommandListAppendBarrier_exit: { zeResult: ZE_RESULT_SUCCESS }
12:00:00.200000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 0, globalEnd: 10, contextStart: 0, contextEnd: 10 }
12:00:00.210000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 100, globalEnd: 130, contextStart: 100, contextEnd: 130 }
12:00:00.300000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 200, globalEnd: 240, contextStart: 200, contextEnd: 240 }
12:00:00.310000000 - testhost - vpid: 10, vtid: 1 - lttng_ust_ze_profiling:event_profiling_results: { hEvent: 0x4000000000000000, status: ZE_RESULT_SUCCESS, timestampStatus: ZE_RESULT_SUCCESS, globalStart: 300, globalEnd: 350, contextStart: 300, contextEnd: 350 }
Loading
Loading