+/*
+ * Complete UST notification process time break down in different actions.
+ */
+void bench_print_ust_notification(void)
+{
+ double res, total = 0;
+
+ fprintf(fp, "--- UST notification time ---\n");
+
+ if (time_ust_notify_mmap_start == 0 || time_ust_notify_mmap_stop == 0) {
+ goto no_data;
+ }
+
+ res = get_bench_time(time_ust_notify_mmap_start,
+ time_ust_notify_mmap_stop);
+ fprintf(fp, "mmap() call time\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ if (time_ust_notify_perms_start == 0 || time_ust_notify_perms_stop == 0) {
+ goto no_data;
+ }
+
+ res = get_bench_time(time_ust_notify_perms_start,
+ time_ust_notify_perms_stop);
+ fprintf(fp, "Setting permissions (chown/chmod)\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ if (time_ust_notify_shm_start == 0 || time_ust_notify_shm_stop == 0) {
+ goto no_data;
+ }
+
+ res = get_bench_time(time_ust_notify_shm_start,
+ time_ust_notify_shm_stop);
+ fprintf(fp, "shm_open/ftruncate/fchmod\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ fprintf(fp, "Global UST nonification time\n");
+ fprintf(fp, "Time: %.20f sec.\n", total);
+ return;
+
+no_data:
+ fprintf(fp, "NO DATA\n");
+ return;
+}
+
+/*
+ * Time taken by an UST apps to unregister.
+ */
+void bench_print_ust_unregister(void)
+{
+ double res;
+
+ fprintf(fp, "--- UST unregister time ---\n");
+
+ if (time_ust_unregister_start == 0 || time_ust_unregister_stop == 0) {
+ goto no_data;
+ }
+
+ res = get_bench_time(time_ust_unregister_start, time_ust_unregister_stop);
+ fprintf(fp, "UST unregister time\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+ return;
+
+no_data:
+ fprintf(fp, "NO DATA\n");
+ return;
+}
+
+/*
+ * This time value is only coherent is an UST application registered.
+ */
+void bench_print_ust_register(void)
+{
+ double res, total = 0;
+
+ fprintf(fp, "--- UST registration time ---\n");
+
+ if (time_ust_register_start == 0 || time_ust_register_stop == 0) {
+ goto no_data;
+ }
+
+ res = get_bench_time(time_ust_register_start, time_ust_register_stop);
+ fprintf(fp, "UST registration received and send to dispatch time\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ if (time_ust_dispatch_register_start == 0 ||
+ time_ust_dispatch_register_stop == 0) {
+ goto no_data;
+ }
+
+ res = get_bench_time(time_ust_dispatch_register_start,
+ time_ust_dispatch_register_stop);
+ fprintf(fp, "Dispatch UST registration request time\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ fprintf(fp, "--> Manage registration breakdown\n");
+
+ res = get_bench_time(time_ust_register_read_start,
+ time_ust_register_read_stop);
+ fprintf(fp, "read() from pipe time\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ res = get_bench_time(time_ust_register_add_start,
+ time_ust_register_add_stop);
+ fprintf(fp, "register_traceable_app time\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ res = get_bench_time(time_ust_register_done_start,
+ time_ust_register_done_stop);
+ fprintf(fp, "send register done command time\n");
+ fprintf(fp, "Time: %.20f sec.\n", res);
+
+ total += res;
+
+ fprintf(fp, "Global time of an UST application registration\n");
+ fprintf(fp, "Time: %.20f sec.\n", total);
+ return;
+
+no_data:
+ fprintf(fp, "NO DATA\n");
+ return;
+}
+
+