|
@@ -49,6 +49,7 @@ static int pipe_output = 0;
|
|
|
static const char *output_name = "perf.data";
|
|
|
static int group = 0;
|
|
|
static int realtime_prio = 0;
|
|
|
+static bool nodelay = false;
|
|
|
static bool raw_samples = false;
|
|
|
static bool sample_id_all_avail = true;
|
|
|
static bool system_wide = false;
|
|
@@ -307,6 +308,11 @@ static void create_counter(struct perf_evsel *evsel, int cpu)
|
|
|
attr->sample_type |= PERF_SAMPLE_CPU;
|
|
|
}
|
|
|
|
|
|
+ if (nodelay) {
|
|
|
+ attr->watermark = 0;
|
|
|
+ attr->wakeup_events = 1;
|
|
|
+ }
|
|
|
+
|
|
|
attr->mmap = track;
|
|
|
attr->comm = track;
|
|
|
attr->inherit = !no_inherit;
|
|
@@ -843,6 +849,8 @@ const struct option record_options[] = {
|
|
|
"record events on existing thread id"),
|
|
|
OPT_INTEGER('r', "realtime", &realtime_prio,
|
|
|
"collect data with this RT SCHED_FIFO priority"),
|
|
|
+ OPT_BOOLEAN('D', "no-delay", &nodelay,
|
|
|
+ "collect data without buffering"),
|
|
|
OPT_BOOLEAN('R', "raw-samples", &raw_samples,
|
|
|
"collect raw sample records from all opened counters"),
|
|
|
OPT_BOOLEAN('a', "all-cpus", &system_wide,
|