blkparse: split off the timestamp correction code in to a separate function
authorHiroaki Mihara <hmihara@redhat.com>
Tue, 24 Sep 2019 22:32:06 +0000 (07:32 +0900)
committerJens Axboe <axboe@kernel.dk>
Wed, 25 Sep 2019 06:22:13 +0000 (00:22 -0600)
find_genesis() function has code to correct abs_start_time, which is
later used to calculate the absolute timestamps of each traced
records.

Put this code in a separate function, so that it can be used later by
the blkparse code. No functional change.

Signed-off-by: Hiroaki Mihara <hmihara@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
blkparse.c

index 3de2ebec92489ea0c765a9764a94f7dd309e1629..cf7a87b262fed7c4e11a84eb848ac34c24963e81 100644 (file)
@@ -2022,6 +2022,22 @@ static void show_device_and_cpu_stats(void)
        }
 }
 
+static void correct_abs_start_time(void)
+{
+       long delta = genesis_time - start_timestamp;
+
+       abs_start_time.tv_sec  += SECONDS(delta);
+       abs_start_time.tv_nsec += NANO_SECONDS(delta);
+       if (abs_start_time.tv_nsec < 0) {
+               abs_start_time.tv_nsec += 1000000000;
+               abs_start_time.tv_sec -= 1;
+       } else
+       if (abs_start_time.tv_nsec > 1000000000) {
+               abs_start_time.tv_nsec -= 1000000000;
+               abs_start_time.tv_sec += 1;
+       }
+}
+
 static void find_genesis(void)
 {
        struct trace *t = trace_list;
@@ -2039,18 +2055,7 @@ static void find_genesis(void)
         */
        if (start_timestamp
         && start_timestamp != genesis_time) {
-               long delta = genesis_time - start_timestamp;
-
-               abs_start_time.tv_sec  += SECONDS(delta);
-               abs_start_time.tv_nsec += NANO_SECONDS(delta);
-               if (abs_start_time.tv_nsec < 0) {
-                       abs_start_time.tv_nsec += 1000000000;
-                       abs_start_time.tv_sec -= 1;
-               } else
-               if (abs_start_time.tv_nsec > 1000000000) {
-                       abs_start_time.tv_nsec -= 1000000000;
-                       abs_start_time.tv_sec += 1;
-               }
+               correct_abs_start_time();
        }
 }