Skip to content
21 changes: 21 additions & 0 deletions darshan-runtime/lib/darshan-dxt.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ static struct dxt_file_record_ref *dxt_posix_track_new_file_record(
darshan_record_id rec_id);
static struct dxt_file_record_ref *dxt_mpiio_track_new_file_record(
darshan_record_id rec_id);
static void annotate_trace_segment(char *extra_info_str);

/* DXT output/cleanup routines for darshan-core */
static void dxt_posix_output(
Expand Down Expand Up @@ -262,6 +263,8 @@ void dxt_posix_write(darshan_record_id rec_id, int64_t offset,
rec_ref->write_traces[file_rec->write_count].length = length;
rec_ref->write_traces[file_rec->write_count].start_time = start_time;
rec_ref->write_traces[file_rec->write_count].end_time = end_time;
rec_ref->write_traces[file_rec->write_count].pthread_id = (unsigned long)pthread_self();
annotate_trace_segment(rec_ref->write_traces[file_rec->write_count].extra_info);
file_rec->write_count += 1;

DXT_UNLOCK();
Expand Down Expand Up @@ -307,6 +310,8 @@ void dxt_posix_read(darshan_record_id rec_id, int64_t offset,
rec_ref->read_traces[file_rec->read_count].length = length;
rec_ref->read_traces[file_rec->read_count].start_time = start_time;
rec_ref->read_traces[file_rec->read_count].end_time = end_time;
rec_ref->read_traces[file_rec->read_count].pthread_id = (unsigned long)pthread_self();
annotate_trace_segment(rec_ref->read_traces[file_rec->read_count].extra_info);
file_rec->read_count += 1;

DXT_UNLOCK();
Expand Down Expand Up @@ -352,6 +357,8 @@ void dxt_mpiio_write(darshan_record_id rec_id, int64_t offset,
rec_ref->write_traces[file_rec->write_count].offset = offset;
rec_ref->write_traces[file_rec->write_count].start_time = start_time;
rec_ref->write_traces[file_rec->write_count].end_time = end_time;
rec_ref->write_traces[file_rec->write_count].pthread_id = (unsigned long)pthread_self();
annotate_trace_segment(rec_ref->write_traces[file_rec->write_count].extra_info);
file_rec->write_count += 1;

DXT_UNLOCK();
Expand Down Expand Up @@ -397,6 +404,8 @@ void dxt_mpiio_read(darshan_record_id rec_id, int64_t offset,
rec_ref->read_traces[file_rec->read_count].offset = offset;
rec_ref->read_traces[file_rec->read_count].start_time = start_time;
rec_ref->read_traces[file_rec->read_count].end_time = end_time;
rec_ref->read_traces[file_rec->read_count].pthread_id = (unsigned long)pthread_self();
annotate_trace_segment(rec_ref->read_traces[file_rec->read_count].extra_info);
file_rec->read_count += 1;

DXT_UNLOCK();
Expand Down Expand Up @@ -760,6 +769,18 @@ static struct dxt_file_record_ref *dxt_mpiio_track_new_file_record(
return(rec_ref);
}

static void annotate_trace_segment(char *extra_info_str)
{
char *extra_info_env = getenv("DARSHAN_DXT_EXTRA_INFO");
if (extra_info_env != NULL) {
strncpy(extra_info_str, extra_info_env, EXTRA_INFO_LEN-1);
} else {
extra_info_str[0] = '\0';
}

return;
}

static void dxt_free_record_data(void *rec_ref_p, void *user_ptr)
{
struct dxt_file_record_ref *dxt_rec_ref = (struct dxt_file_record_ref *)rec_ref_p;
Expand Down
Loading
Loading