{
struct ordered_events *oe = &session->ordered_events;
struct perf_tool *tool = session->tool;
+ struct ui_progress prog;
union perf_event *event;
uint32_t size, cur_size = 0;
void *buf = NULL;
u64 head;
ssize_t err;
void *p;
+ bool update_prog = false;
perf_tool__fill_defaults(tool);
+ /*
+ * If it's from a file saving pipe data (by redirection), it would have
+ * a file name other than "-". Then we can get the total size and show
+ * the progress.
+ */
+ if (strcmp(session->data->path, "-") && session->data->file.size) {
+ ui_progress__init_size(&prog, session->data->file.size,
+ "Processing events...");
+ update_prog = true;
+ }
+
head = 0;
cur_size = sizeof(union perf_event);
if (err)
goto out_err;
+ if (update_prog)
+ ui_progress__update(&prog, size);
+
if (!session_done())
goto more;
done:
err = perf_session__flush_thread_stacks(session);
out_err:
free(buf);
+ if (update_prog)
+ ui_progress__finish();
if (!tool->no_warn)
perf_session__warn_about_errors(session);
ordered_events__free(&session->ordered_events);
perf_tool__fill_defaults(tool);
- ui_progress__init_size(&prog, total_size, "Sorting events...");
+ ui_progress__init_size(&prog, total_size, "Processing events...");
nr_readers = 1;
for (i = 0; i < data->dir.nr; i++) {