diff options
Diffstat (limited to 'tools/perf/util/session.c')
| -rw-r--r-- | tools/perf/util/session.c | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index b59abf5aba3..0f7e544544f 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -125,7 +125,9 @@ static void perf_session__destroy_kernel_maps(struct perf_session *self)  	machines__destroy_guest_kernel_maps(&self->machines);  } -struct perf_session *perf_session__new(const char *filename, int mode, bool force, bool repipe) +struct perf_session *perf_session__new(const char *filename, int mode, +				       bool force, bool repipe, +				       struct perf_event_ops *ops)  {  	size_t len = filename ? strlen(filename) + 1 : 0;  	struct perf_session *self = zalloc(sizeof(*self) + len); @@ -170,6 +172,13 @@ struct perf_session *perf_session__new(const char *filename, int mode, bool forc  	}  	perf_session__update_sample_type(self); + +	if (ops && ops->ordering_requires_timestamps && +	    ops->ordered_samples && !self->sample_id_all) { +		dump_printf("WARNING: No sample_id_all support, falling back to unordered processing\n"); +		ops->ordered_samples = false; +	} +  out:  	return self;  out_free:  |