@@ -131,7 +131,7 @@ static int dxt_log_get_posix_file(darshan_fd fd, void** dxt_posix_buf_p)
131131
132132 /* Check POSIX DXT format version. When > 1, segment_info contains extra info */
133133 if (fd -> mod_ver [DXT_POSIX_MOD ] == 1 ) {
134- io_trace_size = rw_count * (sizeof (segment_info ) - EXTRA_INFO_LEN );
134+ io_trace_size = rw_count * (sizeof (segment_info ) - sizeof ( unsigned long ) - EXTRA_INFO_LEN );
135135 buf = (char * ) malloc (io_trace_size );
136136 if (!buf ) return (-1 );
137137 }
@@ -150,7 +150,7 @@ static int dxt_log_get_posix_file(darshan_fd fd, void** dxt_posix_buf_p)
150150 size_t j ;
151151 char * src = buf ;
152152 char * dest = (char * )rec + sizeof (struct dxt_file_record );
153- size_t rec_size = sizeof (segment_info ) - EXTRA_INFO_LEN ;
153+ size_t rec_size = sizeof (segment_info ) - sizeof ( unsigned long ) - EXTRA_INFO_LEN ;
154154 for (j = 0 ; j < rw_count ; j ++ ) {
155155 memcpy (dest , src , rec_size );
156156 src += rec_size ;
@@ -236,7 +236,7 @@ static int dxt_log_get_mpiio_file(darshan_fd fd, void** dxt_mpiio_buf_p)
236236
237237 /* Check MPIIO DXT format version. When > 2, segment_info contains extra info */
238238 if (fd -> mod_ver [DXT_MPIIO_MOD ] < 3 ) {
239- io_trace_size = rw_count * (sizeof (segment_info ) - EXTRA_INFO_LEN );
239+ io_trace_size = rw_count * (sizeof (segment_info ) - sizeof ( unsigned long ) - EXTRA_INFO_LEN );
240240 buf = (char * ) malloc (io_trace_size );
241241 if (!buf ) return (-1 );
242242 }
@@ -255,7 +255,7 @@ static int dxt_log_get_mpiio_file(darshan_fd fd, void** dxt_mpiio_buf_p)
255255 size_t j ;
256256 char * src = buf ;
257257 char * dest = (char * )rec + sizeof (struct dxt_file_record );
258- size_t rec_size = sizeof (segment_info ) - EXTRA_INFO_LEN ;
258+ size_t rec_size = sizeof (segment_info ) - sizeof ( unsigned long ) - EXTRA_INFO_LEN ;
259259 for (j = 0 ; j < rw_count ; j ++ ) {
260260 memcpy (dest , src , rec_size );
261261 src += rec_size ;
@@ -351,6 +351,7 @@ void dxt_log_print_posix_file(void *posix_file_rec, char *file_name,
351351 int64_t length ;
352352 double start_time ;
353353 double end_time ;
354+ unsigned long pthread_id ;
354355 char * extra_info ;
355356 int i , j ;
356357
@@ -407,7 +408,10 @@ void dxt_log_print_posix_file(void *posix_file_rec, char *file_name,
407408 }
408409
409410 /* Print header */
410- printf ("# Module Rank Wt/Rd Segment Offset Length Start(s) End(s)" );
411+ if (mod_ver [DXT_POSIX_MOD ] > 1 )
412+ printf ("# Module Rank Pthread-ID Wt/Rd Segment Offset Length Start(s) End(s)" );
413+ else
414+ printf ("# Module Rank Wt/Rd Segment Offset Length Start(s) End(s)" );
411415
412416 if (lustreFS ) {
413417 printf (" [OST]" );
@@ -422,9 +426,14 @@ void dxt_log_print_posix_file(void *posix_file_rec, char *file_name,
422426 length = io_trace [i ].length ;
423427 start_time = io_trace [i ].start_time ;
424428 end_time = io_trace [i ].end_time ;
429+ pthread_id = io_trace [i ].pthread_id ;
425430 extra_info = io_trace [i ].extra_info ;
431+ if (extra_info == NULL || * extra_info == '\0' ) extra_info = "None" ;
426432
427- printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f " , "X_POSIX" , rank , "write" , i , offset , length , start_time , end_time );
433+ if (mod_ver [DXT_POSIX_MOD ] > 1 )
434+ printf ("%8s%8" PRId64 "%18lu%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f " , "X_POSIX" , rank , pthread_id , "write" , i , offset , length , start_time , end_time );
435+ else
436+ printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f " , "X_POSIX" , rank , "write" , i , offset , length , start_time , end_time );
428437
429438 if (lustreFS ) {
430439 cur_file_offset = offset ;
@@ -459,9 +468,10 @@ void dxt_log_print_posix_file(void *posix_file_rec, char *file_name,
459468 }
460469 cur_ost_offset += stripe_count ;
461470 }
471+ if (rec -> num_comps ) printf (" " );
462472 }
463- if (mod_ver [DXT_POSIX_MOD ] > 1 && extra_info != NULL )
464- printf (" %s\n" , extra_info );
473+ if (mod_ver [DXT_POSIX_MOD ] > 1 )
474+ printf ("%s\n" , extra_info );
465475 else
466476 printf ("\n" );
467477 }
@@ -471,9 +481,14 @@ void dxt_log_print_posix_file(void *posix_file_rec, char *file_name,
471481 length = io_trace [i ].length ;
472482 start_time = io_trace [i ].start_time ;
473483 end_time = io_trace [i ].end_time ;
484+ pthread_id = io_trace [i ].pthread_id ;
474485 extra_info = io_trace [i ].extra_info ;
486+ if (extra_info == NULL || * extra_info == '\0' ) extra_info = "None" ;
475487
476- printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f " , "X_POSIX" , rank , "read" , (int )(i - write_count ), offset , length , start_time , end_time );
488+ if (mod_ver [DXT_POSIX_MOD ] > 1 )
489+ printf ("%8s%8" PRId64 "%18lu%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f " , "X_POSIX" , rank , pthread_id , "read" , (int )(i - write_count ), offset , length , start_time , end_time );
490+ else
491+ printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f " , "X_POSIX" , rank , "read" , (int )(i - write_count ), offset , length , start_time , end_time );
477492
478493 if (lustreFS ) {
479494 cur_file_offset = offset ;
@@ -508,10 +523,11 @@ void dxt_log_print_posix_file(void *posix_file_rec, char *file_name,
508523 }
509524 cur_ost_offset += stripe_count ;
510525 }
526+ if (rec -> num_comps ) printf (" " );
511527 }
512528
513- if (mod_ver [DXT_POSIX_MOD ] > 1 && extra_info != NULL )
514- printf (" %s\n" , extra_info );
529+ if (mod_ver [DXT_POSIX_MOD ] > 1 )
530+ printf ("%s\n" , extra_info );
515531 else
516532 printf ("\n" );
517533 }
@@ -528,6 +544,7 @@ void dxt_log_print_mpiio_file(void *mpiio_file_rec, char *file_name,
528544 int64_t offset ;
529545 double start_time ;
530546 double end_time ;
547+ unsigned long pthread_id ;
531548 char * extra_info ;
532549 int i ;
533550
@@ -549,22 +566,23 @@ void dxt_log_print_mpiio_file(void *mpiio_file_rec, char *file_name,
549566 printf ("# DXT, mnt_pt: %s, fs_type: %s\n" , mnt_pt , fs_type );
550567
551568 /* Print header */
552- printf ("# Module Rank Wt/Rd Segment Offset Length Start(s) End(s)" );
553569 if (mod_ver [DXT_MPIIO_MOD ] > 2 )
554- printf (" Extra info" );
555- printf ("\n" );
570+ printf ("# Module Rank Pthread-ID Wt/Rd Segment Offset Length Start(s) End(s) Extra info\n" );
571+ else
572+ printf ("# Module Rank Wt/Rd Segment Offset Length Start(s) End(s)\n" );
556573
557574 /* Print IO Traces information */
558575 for (i = 0 ; i < write_count ; i ++ ) {
559576 offset = io_trace [i ].offset ;
560577 length = io_trace [i ].length ;
561578 start_time = io_trace [i ].start_time ;
562579 end_time = io_trace [i ].end_time ;
580+ pthread_id = io_trace [i ].pthread_id ;
563581 extra_info = io_trace [i ].extra_info ;
564- if (extra_info == NULL ) extra_info = "" ;
582+ if (extra_info == NULL || * extra_info == '\0' ) extra_info = "None " ;
565583
566- if (mod_ver [DXT_MPIIO_MOD ] > 2 && extra_info != NULL )
567- printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f\t %s\n" , "X_MPIIO" , rank , "write" , i , offset , length , start_time , end_time , extra_info );
584+ if (mod_ver [DXT_MPIIO_MOD ] > 2 )
585+ printf ("%8s%8" PRId64 "%18lu% 7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f %s\n" , "X_MPIIO" , rank , pthread_id , "write" , i , offset , length , start_time , end_time , extra_info );
568586 else
569587 printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f\n" , "X_MPIIO" , rank , "write" , i , offset , length , start_time , end_time );
570588 }
@@ -574,11 +592,12 @@ void dxt_log_print_mpiio_file(void *mpiio_file_rec, char *file_name,
574592 length = io_trace [i ].length ;
575593 start_time = io_trace [i ].start_time ;
576594 end_time = io_trace [i ].end_time ;
595+ pthread_id = io_trace [i ].pthread_id ;
577596 extra_info = io_trace [i ].extra_info ;
578- if (extra_info == NULL ) extra_info = "" ;
597+ if (extra_info == NULL || * extra_info == '\0' ) extra_info = "None " ;
579598
580- if (mod_ver [DXT_MPIIO_MOD ] > 2 && extra_info != NULL )
581- printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f\t %s\n" , "X_MPIIO" , rank , "read" , (int )(i - write_count ), offset , length , start_time , end_time , extra_info );
599+ if (mod_ver [DXT_MPIIO_MOD ] > 2 )
600+ printf ("%8s%8" PRId64 "%18lu% 7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f %s\n" , "X_MPIIO" , rank , pthread_id , "read" , (int )(i - write_count ), offset , length , start_time , end_time , extra_info );
582601 else
583602 printf ("%8s%8" PRId64 "%7s%9d%16" PRId64 "%16" PRId64 "%12.4f%12.4f\n" , "X_MPIIO" , rank , "read" , (int )(i - write_count ), offset , length , start_time , end_time );
584603 }
0 commit comments