|
@@ -386,7 +386,7 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
|
|
|
{
|
|
|
struct stat st;
|
|
|
int flags;
|
|
|
- int err, output;
|
|
|
+ int err, output, feat;
|
|
|
unsigned long waking = 0;
|
|
|
const bool forks = argc > 0;
|
|
|
struct machine *machine;
|
|
@@ -453,8 +453,14 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
|
|
|
|
|
|
rec->session = session;
|
|
|
|
|
|
- if (!rec->no_buildid)
|
|
|
- perf_header__set_feat(&session->header, HEADER_BUILD_ID);
|
|
|
+ for (feat = HEADER_FIRST_FEATURE; feat < HEADER_LAST_FEATURE; feat++)
|
|
|
+ perf_header__set_feat(&session->header, feat);
|
|
|
+
|
|
|
+ if (rec->no_buildid)
|
|
|
+ perf_header__clear_feat(&session->header, HEADER_BUILD_ID);
|
|
|
+
|
|
|
+ if (!have_tracepoints(&evsel_list->entries))
|
|
|
+ perf_header__clear_feat(&session->header, HEADER_TRACE_INFO);
|
|
|
|
|
|
if (!rec->file_new) {
|
|
|
err = perf_session__read_header(session, output);
|
|
@@ -462,22 +468,6 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
|
|
|
goto out_delete_session;
|
|
|
}
|
|
|
|
|
|
- if (have_tracepoints(&evsel_list->entries))
|
|
|
- perf_header__set_feat(&session->header, HEADER_TRACE_INFO);
|
|
|
-
|
|
|
- perf_header__set_feat(&session->header, HEADER_HOSTNAME);
|
|
|
- perf_header__set_feat(&session->header, HEADER_OSRELEASE);
|
|
|
- perf_header__set_feat(&session->header, HEADER_ARCH);
|
|
|
- perf_header__set_feat(&session->header, HEADER_CPUDESC);
|
|
|
- perf_header__set_feat(&session->header, HEADER_NRCPUS);
|
|
|
- perf_header__set_feat(&session->header, HEADER_EVENT_DESC);
|
|
|
- perf_header__set_feat(&session->header, HEADER_CMDLINE);
|
|
|
- perf_header__set_feat(&session->header, HEADER_VERSION);
|
|
|
- perf_header__set_feat(&session->header, HEADER_CPU_TOPOLOGY);
|
|
|
- perf_header__set_feat(&session->header, HEADER_TOTAL_MEM);
|
|
|
- perf_header__set_feat(&session->header, HEADER_NUMA_TOPOLOGY);
|
|
|
- perf_header__set_feat(&session->header, HEADER_CPUID);
|
|
|
-
|
|
|
if (forks) {
|
|
|
err = perf_evlist__prepare_workload(evsel_list, opts, argv);
|
|
|
if (err < 0) {
|