linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 4/4] cyclictest: add --tracemark option
  2016-02-25 16:29 [PATCH 0/4] cyclictest: improve running under trace-cmd Luiz Capitulino
@ 2016-02-25 16:29 ` Luiz Capitulino
  0 siblings, 0 replies; 12+ messages in thread
From: Luiz Capitulino @ 2016-02-25 16:29 UTC (permalink / raw)
  To: linux-rt-users; +Cc: jkacur, williams

cyclictest will only write to /sys/kernel/debug/tracing/trace_maker
if it's also setup to do tracing. This conflicts with
running cyclictest under trace-cmd.

The --tracemark option tells cyclictest to write to the
trace_marker file even when it's not doing tracing.

It's can be used like this:

 # trace-cmd record [...] cyclictest [...] -bX --tracemark --notrace

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 src/cyclictest/cyclictest.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index e35088b..5a261e2 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -167,6 +167,7 @@ struct thread_stat {
 static int shutdown;
 static int tracelimit = 0;
 static int notrace = 0;
+static int trace_marker = 0;
 static int ftrace = 0;
 static int kernelversion;
 static int verbose = 0;
@@ -510,6 +511,18 @@ static void open_tracemark_fd(void)
 		warn("unable to open trace_marker file: %s\n", path);
 }
 
+static void enable_trace_mark(void)
+{
+	if (!trace_marker)
+		return;
+
+	if (!tracelimit)
+		fatal("--tracemark requires -b\n");
+
+	debugfs_prepare();
+	open_tracemark_fd();
+}
+
 static void setup_tracer(void)
 {
 	if (!tracelimit || notrace)
@@ -1234,7 +1247,7 @@ enum option_values {
 	OPT_QUIET, OPT_PRIOSPREAD, OPT_RELATIVE, OPT_RESOLUTION, OPT_SYSTEM,
 	OPT_SMP, OPT_THREADS, OPT_TRACER, OPT_UNBUFFERED, OPT_NUMA, OPT_VERBOSE,
 	OPT_WAKEUP, OPT_WAKEUPRT, OPT_DBGCYCLIC, OPT_POLICY, OPT_HELP, OPT_NUMOPTS,
-	OPT_ALIGNED, OPT_LAPTOP, OPT_SECALIGNED,
+	OPT_ALIGNED, OPT_LAPTOP, OPT_SECALIGNED, OPT_TRACEMARK,
 };
 
 /* Process commandline options */
@@ -1285,6 +1298,7 @@ static void process_options (int argc, char *argv[], int max_cpus)
 			{"system",           no_argument,       NULL, OPT_SYSTEM },
 			{"smp",              no_argument,       NULL, OPT_SMP },
 			{"threads",          optional_argument, NULL, OPT_THREADS },
+			{"tracemark",        no_argument,       NULL, OPT_TRACEMARK },
 			{"tracer",           required_argument, NULL, OPT_TRACER },
 			{"unbuffered",       no_argument,       NULL, OPT_UNBUFFERED },
 			{"numa",             no_argument,       NULL, OPT_NUMA },
@@ -1509,6 +1523,8 @@ static void process_options (int argc, char *argv[], int max_cpus)
 			ct_debug = 1; break;
 		case OPT_LAPTOP:
 			laptop = 1; break;
+		case OPT_TRACEMARK:
+			trace_marker = 1; break;
 		}
 	}
 
@@ -1850,6 +1866,8 @@ int main(int argc, char **argv)
 
 	setup_tracer();
 
+	enable_trace_mark();
+
 	if (check_timer())
 		warn("High resolution timers not available\n");
 
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 0/4] cyclictest: improve running under trace-cmd
@ 2016-03-17 18:30 Luiz Capitulino
  2016-03-17 18:30 ` [PATCH 1/4] cyclictest: tracing(): check for notrace Luiz Capitulino
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Luiz Capitulino @ 2016-03-17 18:30 UTC (permalink / raw)
  To: linux-rt-users; +Cc: jkacur, williams


In short, this series allows you to run cyclictest under
trace-cmd and still get trace marks when the latency
specified with -b is execeded. More details in patch 4/4.

o v2

 - rebase against current master

Luiz Capitulino (4):
  cyclictest: tracing(): check for notrace
  cyclictest: move debugfs init code to its own function
  cyclictest: move tracemark_fd handling to its own function
  cyclictest: add --tracemark option

 src/cyclictest/cyclictest.c | 62 ++++++++++++++++++++++++++++++++++-----------
 1 file changed, 47 insertions(+), 15 deletions(-)

-- 
2.1.0

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/4] cyclictest: tracing(): check for notrace
  2016-03-17 18:30 [PATCH v2 0/4] cyclictest: improve running under trace-cmd Luiz Capitulino
@ 2016-03-17 18:30 ` Luiz Capitulino
  2016-03-22 14:37   ` John Kacur
  2016-03-17 18:30 ` [PATCH 2/4] cyclictest: move debugfs init code to its own function Luiz Capitulino
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 12+ messages in thread
From: Luiz Capitulino @ 2016-03-17 18:30 UTC (permalink / raw)
  To: linux-rt-users; +Cc: jkacur, williams

If you pass -b and --notrace to cyclictest today, it will
write to tracing_on when -b latency is reached.

Fix this by making tracing() check notrace.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 src/cyclictest/cyclictest.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index f5a67dc..6070457 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -479,6 +479,9 @@ static void tracemark(char *fmt, ...)
 
 static void tracing(int on)
 {
+	if (notrace)
+		return;
+
 	if (on) {
 		switch (kernelversion) {
 		case KV_26_LT18: gettimeofday(0,(struct timezone *)1); break;
@@ -1698,7 +1701,7 @@ static void sighand(int sig)
 	shutdown = 1;
 	if (refresh_on_max)
 		pthread_cond_signal(&refresh_on_max_cond);
-	if (tracelimit && !notrace)
+	if (tracelimit)
 		tracing(0);
 }
 
@@ -2303,7 +2306,7 @@ int main(int argc, char **argv)
 	}
  out:
 	/* ensure that the tracer is stopped */
-	if (tracelimit && !notrace)
+	if (tracelimit)
 		tracing(0);
 
 
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] cyclictest: move debugfs init code to its own function
  2016-03-17 18:30 [PATCH v2 0/4] cyclictest: improve running under trace-cmd Luiz Capitulino
  2016-03-17 18:30 ` [PATCH 1/4] cyclictest: tracing(): check for notrace Luiz Capitulino
@ 2016-03-17 18:30 ` Luiz Capitulino
  2016-03-22 14:40   ` John Kacur
  2016-03-17 18:30 ` [PATCH 3/4] cyclictest: move tracemark_fd handling " Luiz Capitulino
  2016-03-17 18:30 ` [PATCH 4/4] cyclictest: add --tracemark option Luiz Capitulino
  3 siblings, 1 reply; 12+ messages in thread
From: Luiz Capitulino @ 2016-03-17 18:30 UTC (permalink / raw)
  To: linux-rt-users; +Cc: jkacur, williams

A function added by a future commit will want to call
this code too.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 src/cyclictest/cyclictest.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index 6070457..4e80831 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -514,11 +514,8 @@ static int settracer(char *tracer)
 	return -1;
 }
 
-static void setup_tracer(void)
+static void debugfs_prepare(void)
 {
-	if (!tracelimit || notrace)
-		return;

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] cyclictest: move tracemark_fd handling to its own function
  2016-03-17 18:30 [PATCH v2 0/4] cyclictest: improve running under trace-cmd Luiz Capitulino
  2016-03-17 18:30 ` [PATCH 1/4] cyclictest: tracing(): check for notrace Luiz Capitulino
  2016-03-17 18:30 ` [PATCH 2/4] cyclictest: move debugfs init code to its own function Luiz Capitulino
@ 2016-03-17 18:30 ` Luiz Capitulino
  2016-03-22 14:35   ` John Kacur
  2016-03-17 18:30 ` [PATCH 4/4] cyclictest: add --tracemark option Luiz Capitulino
  3 siblings, 1 reply; 12+ messages in thread
From: Luiz Capitulino @ 2016-03-17 18:30 UTC (permalink / raw)
  To: linux-rt-users; +Cc: jkacur, williams

A function added by the next commit will want to call
this code too.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 src/cyclictest/cyclictest.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index 4e80831..65f2aec 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -532,6 +532,19 @@ static void debugfs_prepare(void)
 		fileprefix = procfileprefix;
 }
 
+static void open_tracemark_fd(void)
+{
+	char path[MAX_PATH];
+
+	if (tracemark_fd >= 0)
+		return;
+
+	sprintf(path, "%s/%s", fileprefix, "trace_marker");
+	tracemark_fd = open(path, O_WRONLY);
+	if (tracemark_fd < 0)
+		warn("unable to open trace_marker file: %s\n", path);
+}
+
 static void setup_tracer(void)
 {
 	if (!tracelimit || notrace)
@@ -647,14 +660,7 @@ static void setup_tracer(void)
 				fatal("unable to open %s for tracing", path);
 		}
 
-		/* open the tracemark file descriptor */
-		if (tracemark_fd == -1) {
-			char path[MAX_PATH];
-			strcat(strcpy(path, fileprefix), "trace_marker");
-			if ((tracemark_fd = open(path, O_WRONLY)) == -1)
-				warn("unable to open trace_marker file: %s\n", path);
-		}

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] cyclictest: add --tracemark option
  2016-03-17 18:30 [PATCH v2 0/4] cyclictest: improve running under trace-cmd Luiz Capitulino
                   ` (2 preceding siblings ...)
  2016-03-17 18:30 ` [PATCH 3/4] cyclictest: move tracemark_fd handling " Luiz Capitulino
@ 2016-03-17 18:30 ` Luiz Capitulino
  2016-03-22 14:57   ` John Kacur
  3 siblings, 1 reply; 12+ messages in thread
From: Luiz Capitulino @ 2016-03-17 18:30 UTC (permalink / raw)
  To: linux-rt-users; +Cc: jkacur, williams

cyclictest will only write to /sys/kernel/debug/tracing/trace_maker
if it's also setup to do tracing. This conflicts with
running cyclictest under trace-cmd.

The --tracemark option tells cyclictest to write to the
trace_marker file even when it's not doing tracing.

It can be used like this:

 # trace-cmd record [...] cyclictest [...] -bX --tracemark --notrace

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
 src/cyclictest/cyclictest.c | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index 65f2aec..75af721 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -192,6 +192,7 @@ static void trigger_update(struct thread_param *par, int diff, int64_t ts);
 static int shutdown;
 static int tracelimit = 0;
 static int notrace = 0;
+static int trace_marker = 0;
 static int ftrace = 0;
 static int kernelversion;
 static int verbose = 0;
@@ -545,6 +546,18 @@ static void open_tracemark_fd(void)
 		warn("unable to open trace_marker file: %s\n", path);
 }
 
+static void enable_trace_mark(void)
+{
+	if (!trace_marker)
+		return;
+
+	if (!tracelimit)
+		fatal("--tracemark requires -b\n");
+
+	debugfs_prepare();
+	open_tracemark_fd();
+}
+
 static void setup_tracer(void)
 {
 	if (!tracelimit || notrace)
@@ -1286,7 +1299,7 @@ enum option_values {
 	OPT_SYSTEM, OPT_SMP, OPT_THREADS, OPT_TRACER, OPT_TRIGGER,
 	OPT_TRIGGER_NODES, OPT_UNBUFFERED, OPT_NUMA, OPT_VERBOSE, OPT_WAKEUP,
 	OPT_WAKEUPRT, OPT_DBGCYCLIC, OPT_POLICY, OPT_HELP, OPT_NUMOPTS,
-	OPT_ALIGNED, OPT_SECALIGNED, OPT_LAPTOP,
+	OPT_ALIGNED, OPT_SECALIGNED, OPT_LAPTOP, OPT_TRACEMARK,
 };
 
 /* Process commandline options */
@@ -1340,6 +1353,7 @@ static void process_options (int argc, char *argv[], int max_cpus)
 			{"spike",	     required_argument, NULL, OPT_TRIGGER },
 			{"spike-nodes",	     required_argument, NULL, OPT_TRIGGER_NODES },
 			{"threads",          optional_argument, NULL, OPT_THREADS },
+			{"tracemark",        no_argument,       NULL, OPT_TRACEMARK },
 			{"tracer",           required_argument, NULL, OPT_TRACER },
 			{"unbuffered",       no_argument,       NULL, OPT_UNBUFFERED },
 			{"numa",             no_argument,       NULL, OPT_NUMA },
@@ -1574,6 +1588,8 @@ static void process_options (int argc, char *argv[], int max_cpus)
 			ct_debug = 1; break;
 		case OPT_LAPTOP:
 			laptop = 1; break;
+		case OPT_TRACEMARK:
+			trace_marker = 1; break;
 		}
 	}
 
@@ -1983,6 +1999,8 @@ int main(int argc, char **argv)
 
 	setup_tracer();
 
+	enable_trace_mark();
+
 	if (check_timer())
 		warn("High resolution timers not available\n");
 
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] cyclictest: move tracemark_fd handling to its own function
  2016-03-17 18:30 ` [PATCH 3/4] cyclictest: move tracemark_fd handling " Luiz Capitulino
@ 2016-03-22 14:35   ` John Kacur
  2016-03-22 14:42     ` Luiz Capitulino
  0 siblings, 1 reply; 12+ messages in thread
From: John Kacur @ 2016-03-22 14:35 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: linux-rt-users, williams



On Thu, 17 Mar 2016, Luiz Capitulino wrote:

> A function added by the next commit will want to call
> this code too.
> 
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> ---
>  src/cyclictest/cyclictest.c | 22 ++++++++++++++--------
>  1 file changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> index 4e80831..65f2aec 100644
> --- a/src/cyclictest/cyclictest.c
> +++ b/src/cyclictest/cyclictest.c
> @@ -532,6 +532,19 @@ static void debugfs_prepare(void)
>  		fileprefix = procfileprefix;
>  }
>  
> +static void open_tracemark_fd(void)
> +{
> +	char path[MAX_PATH];
> +
> +	if (tracemark_fd >= 0)
> +		return;
> +
> +	sprintf(path, "%s/%s", fileprefix, "trace_marker");
> +	tracemark_fd = open(path, O_WRONLY);
> +	if (tracemark_fd < 0)
> +		warn("unable to open trace_marker file: %s\n", path);
> +}
> +
>  static void setup_tracer(void)
>  {
>  	if (!tracelimit || notrace)
> @@ -647,14 +660,7 @@ static void setup_tracer(void)
>  				fatal("unable to open %s for tracing", path);
>  		}
>  
> -		/* open the tracemark file descriptor */
> -		if (tracemark_fd == -1) {
> -			char path[MAX_PATH];
> -			strcat(strcpy(path, fileprefix), "trace_marker");
> -			if ((tracemark_fd = open(path, O_WRONLY)) == -1)
> -				warn("unable to open trace_marker file: %s\n", path);
> -		}
> -
> +		open_tracemark_fd();
>  	} else {
>  		setkernvar("trace_all_cpus", "1");
>  		setkernvar("trace_freerunning", "1");
> -- 
> 2.1.0

Signed-off-by: John Kacur <jkacur@redhat.com>

But, once again, it didn't apply cleanly, and you should have included it
with the next set off patches where it is required, because I was 
scratching my head as to why I should include this until I looked there.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] cyclictest: tracing(): check for notrace
  2016-03-17 18:30 ` [PATCH 1/4] cyclictest: tracing(): check for notrace Luiz Capitulino
@ 2016-03-22 14:37   ` John Kacur
  0 siblings, 0 replies; 12+ messages in thread
From: John Kacur @ 2016-03-22 14:37 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: linux-rt-users, williams



On Thu, 17 Mar 2016, Luiz Capitulino wrote:

> If you pass -b and --notrace to cyclictest today, it will
> write to tracing_on when -b latency is reached.
> 
> Fix this by making tracing() check notrace.
> 
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> ---
>  src/cyclictest/cyclictest.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> index f5a67dc..6070457 100644
> --- a/src/cyclictest/cyclictest.c
> +++ b/src/cyclictest/cyclictest.c
> @@ -479,6 +479,9 @@ static void tracemark(char *fmt, ...)
>  
>  static void tracing(int on)
>  {
> +	if (notrace)
> +		return;
> +
>  	if (on) {
>  		switch (kernelversion) {
>  		case KV_26_LT18: gettimeofday(0,(struct timezone *)1); break;
> @@ -1698,7 +1701,7 @@ static void sighand(int sig)
>  	shutdown = 1;
>  	if (refresh_on_max)
>  		pthread_cond_signal(&refresh_on_max_cond);
> -	if (tracelimit && !notrace)
> +	if (tracelimit)
>  		tracing(0);
>  }
>  
> @@ -2303,7 +2306,7 @@ int main(int argc, char **argv)
>  	}
>   out:
>  	/* ensure that the tracer is stopped */
> -	if (tracelimit && !notrace)
> +	if (tracelimit)
>  		tracing(0);
>  
>  
> -- 
> 2.1.0
> 
> --
Signed-off-by: John Kacur <jkacur@redhat.com>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] cyclictest: move debugfs init code to its own function
  2016-03-17 18:30 ` [PATCH 2/4] cyclictest: move debugfs init code to its own function Luiz Capitulino
@ 2016-03-22 14:40   ` John Kacur
  0 siblings, 0 replies; 12+ messages in thread
From: John Kacur @ 2016-03-22 14:40 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: linux-rt-users, williams



On Thu, 17 Mar 2016, Luiz Capitulino wrote:

> A function added by a future commit will want to call
> this code too.
> 
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> ---
>  src/cyclictest/cyclictest.c | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> index 6070457..4e80831 100644
> --- a/src/cyclictest/cyclictest.c
> +++ b/src/cyclictest/cyclictest.c
> @@ -514,11 +514,8 @@ static int settracer(char *tracer)
>  	return -1;
>  }
>  
> -static void setup_tracer(void)
> +static void debugfs_prepare(void)
>  {
> -	if (!tracelimit || notrace)
> -		return;
> -
>  	if (mount_debugfs(NULL))
>  		fatal("could not mount debugfs");
>  
> @@ -533,6 +530,14 @@ static void setup_tracer(void)
>  			    "TRACERs not configured?\n", testname);
>  	} else
>  		fileprefix = procfileprefix;
> +}
> +
> +static void setup_tracer(void)
> +{
> +	if (!tracelimit || notrace)
> +		return;
> +
> +	debugfs_prepare();
>  
>  	if (kernelversion >= KV_26_33) {
>  		int ret;
> -- 
> 2.1.0
> 
> --

Signed-off-by: John Kacur <jkacur@redhat.com>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] cyclictest: move tracemark_fd handling to its own function
  2016-03-22 14:35   ` John Kacur
@ 2016-03-22 14:42     ` Luiz Capitulino
  0 siblings, 0 replies; 12+ messages in thread
From: Luiz Capitulino @ 2016-03-22 14:42 UTC (permalink / raw)
  To: John Kacur; +Cc: linux-rt-users, williams

On Tue, 22 Mar 2016 15:35:55 +0100 (CET)
John Kacur <jkacur@redhat.com> wrote:

> 
> 
> On Thu, 17 Mar 2016, Luiz Capitulino wrote:
> 
> > A function added by the next commit will want to call
> > this code too.
> > 
> > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> > ---
> >  src/cyclictest/cyclictest.c | 22 ++++++++++++++--------
> >  1 file changed, 14 insertions(+), 8 deletions(-)
> > 
> > diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> > index 4e80831..65f2aec 100644
> > --- a/src/cyclictest/cyclictest.c
> > +++ b/src/cyclictest/cyclictest.c
> > @@ -532,6 +532,19 @@ static void debugfs_prepare(void)
> >  		fileprefix = procfileprefix;
> >  }
> >  
> > +static void open_tracemark_fd(void)
> > +{
> > +	char path[MAX_PATH];
> > +
> > +	if (tracemark_fd >= 0)
> > +		return;
> > +
> > +	sprintf(path, "%s/%s", fileprefix, "trace_marker");
> > +	tracemark_fd = open(path, O_WRONLY);
> > +	if (tracemark_fd < 0)
> > +		warn("unable to open trace_marker file: %s\n", path);
> > +}
> > +
> >  static void setup_tracer(void)
> >  {
> >  	if (!tracelimit || notrace)
> > @@ -647,14 +660,7 @@ static void setup_tracer(void)
> >  				fatal("unable to open %s for tracing", path);
> >  		}
> >  
> > -		/* open the tracemark file descriptor */
> > -		if (tracemark_fd == -1) {
> > -			char path[MAX_PATH];
> > -			strcat(strcpy(path, fileprefix), "trace_marker");
> > -			if ((tracemark_fd = open(path, O_WRONLY)) == -1)
> > -				warn("unable to open trace_marker file: %s\n", path);
> > -		}
> > -
> > +		open_tracemark_fd();
> >  	} else {
> >  		setkernvar("trace_all_cpus", "1");
> >  		setkernvar("trace_freerunning", "1");
> > -- 
> > 2.1.0
> 
> Signed-off-by: John Kacur <jkacur@redhat.com>
> 
> But, once again, it didn't apply cleanly,

Yeah, I didn't know I had to use the devel branch. Do you want me
to re-send or did git solved the conflicts?

> and you should have included it
> with the next set off patches where it is required, because I was 
> scratching my head as to why I should include this until I looked there.

Which set of patches?

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/4] cyclictest: add --tracemark option
  2016-03-17 18:30 ` [PATCH 4/4] cyclictest: add --tracemark option Luiz Capitulino
@ 2016-03-22 14:57   ` John Kacur
  2016-03-22 15:01     ` Luiz Capitulino
  0 siblings, 1 reply; 12+ messages in thread
From: John Kacur @ 2016-03-22 14:57 UTC (permalink / raw)
  To: Luiz Capitulino; +Cc: linux-rt-users, williams



On Thu, 17 Mar 2016, Luiz Capitulino wrote:

> cyclictest will only write to /sys/kernel/debug/tracing/trace_maker
> if it's also setup to do tracing. This conflicts with
> running cyclictest under trace-cmd.
> 
> The --tracemark option tells cyclictest to write to the
> trace_marker file even when it's not doing tracing.
> 
> It can be used like this:
> 
>  # trace-cmd record [...] cyclictest [...] -bX --tracemark --notrace
> 
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> ---
>  src/cyclictest/cyclictest.c | 20 +++++++++++++++++++-
>  1 file changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> index 65f2aec..75af721 100644
> --- a/src/cyclictest/cyclictest.c
> +++ b/src/cyclictest/cyclictest.c
> @@ -192,6 +192,7 @@ static void trigger_update(struct thread_param *par, int diff, int64_t ts);
>  static int shutdown;
>  static int tracelimit = 0;
>  static int notrace = 0;
> +static int trace_marker = 0;
>  static int ftrace = 0;
>  static int kernelversion;
>  static int verbose = 0;
> @@ -545,6 +546,18 @@ static void open_tracemark_fd(void)
>  		warn("unable to open trace_marker file: %s\n", path);
>  }
>  
> +static void enable_trace_mark(void)
> +{
> +	if (!trace_marker)
> +		return;
> +
> +	if (!tracelimit)
> +		fatal("--tracemark requires -b\n");
> +
> +	debugfs_prepare();
> +	open_tracemark_fd();
> +}
> +
>  static void setup_tracer(void)
>  {
>  	if (!tracelimit || notrace)
> @@ -1286,7 +1299,7 @@ enum option_values {
>  	OPT_SYSTEM, OPT_SMP, OPT_THREADS, OPT_TRACER, OPT_TRIGGER,
>  	OPT_TRIGGER_NODES, OPT_UNBUFFERED, OPT_NUMA, OPT_VERBOSE, OPT_WAKEUP,
>  	OPT_WAKEUPRT, OPT_DBGCYCLIC, OPT_POLICY, OPT_HELP, OPT_NUMOPTS,
> -	OPT_ALIGNED, OPT_SECALIGNED, OPT_LAPTOP,
> +	OPT_ALIGNED, OPT_SECALIGNED, OPT_LAPTOP, OPT_TRACEMARK,
>  };
>  
>  /* Process commandline options */
> @@ -1340,6 +1353,7 @@ static void process_options (int argc, char *argv[], int max_cpus)
>  			{"spike",	     required_argument, NULL, OPT_TRIGGER },
>  			{"spike-nodes",	     required_argument, NULL, OPT_TRIGGER_NODES },
>  			{"threads",          optional_argument, NULL, OPT_THREADS },
> +			{"tracemark",        no_argument,       NULL, OPT_TRACEMARK },
>  			{"tracer",           required_argument, NULL, OPT_TRACER },
>  			{"unbuffered",       no_argument,       NULL, OPT_UNBUFFERED },
>  			{"numa",             no_argument,       NULL, OPT_NUMA },
> @@ -1574,6 +1588,8 @@ static void process_options (int argc, char *argv[], int max_cpus)
>  			ct_debug = 1; break;
>  		case OPT_LAPTOP:
>  			laptop = 1; break;
> +		case OPT_TRACEMARK:
> +			trace_marker = 1; break;
>  		}
>  	}
>  
> @@ -1983,6 +1999,8 @@ int main(int argc, char **argv)
>  
>  	setup_tracer();
>  
> +	enable_trace_mark();
> +
>  	if (check_timer())
>  		warn("High resolution timers not available\n");
>  
> -- 
> 2.1.0
> 

I've pushed all the fixed up to before this point to kernel.org
can you respin this patch against the latest code?

Once it applies cleanly then I'll take it

Thanks

John

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/4] cyclictest: add --tracemark option
  2016-03-22 14:57   ` John Kacur
@ 2016-03-22 15:01     ` Luiz Capitulino
  0 siblings, 0 replies; 12+ messages in thread
From: Luiz Capitulino @ 2016-03-22 15:01 UTC (permalink / raw)
  To: John Kacur; +Cc: linux-rt-users, williams

On Tue, 22 Mar 2016 15:57:45 +0100 (CET)
John Kacur <jkacur@redhat.com> wrote:

> 
> 
> On Thu, 17 Mar 2016, Luiz Capitulino wrote:
> 
> > cyclictest will only write to /sys/kernel/debug/tracing/trace_maker
> > if it's also setup to do tracing. This conflicts with
> > running cyclictest under trace-cmd.
> > 
> > The --tracemark option tells cyclictest to write to the
> > trace_marker file even when it's not doing tracing.
> > 
> > It can be used like this:
> > 
> >  # trace-cmd record [...] cyclictest [...] -bX --tracemark --notrace
> > 
> > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> > ---
> >  src/cyclictest/cyclictest.c | 20 +++++++++++++++++++-
> >  1 file changed, 19 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> > index 65f2aec..75af721 100644
> > --- a/src/cyclictest/cyclictest.c
> > +++ b/src/cyclictest/cyclictest.c
> > @@ -192,6 +192,7 @@ static void trigger_update(struct thread_param *par, int diff, int64_t ts);
> >  static int shutdown;
> >  static int tracelimit = 0;
> >  static int notrace = 0;
> > +static int trace_marker = 0;
> >  static int ftrace = 0;
> >  static int kernelversion;
> >  static int verbose = 0;
> > @@ -545,6 +546,18 @@ static void open_tracemark_fd(void)
> >  		warn("unable to open trace_marker file: %s\n", path);
> >  }
> >  
> > +static void enable_trace_mark(void)
> > +{
> > +	if (!trace_marker)
> > +		return;
> > +
> > +	if (!tracelimit)
> > +		fatal("--tracemark requires -b\n");
> > +
> > +	debugfs_prepare();
> > +	open_tracemark_fd();
> > +}
> > +
> >  static void setup_tracer(void)
> >  {
> >  	if (!tracelimit || notrace)
> > @@ -1286,7 +1299,7 @@ enum option_values {
> >  	OPT_SYSTEM, OPT_SMP, OPT_THREADS, OPT_TRACER, OPT_TRIGGER,
> >  	OPT_TRIGGER_NODES, OPT_UNBUFFERED, OPT_NUMA, OPT_VERBOSE, OPT_WAKEUP,
> >  	OPT_WAKEUPRT, OPT_DBGCYCLIC, OPT_POLICY, OPT_HELP, OPT_NUMOPTS,
> > -	OPT_ALIGNED, OPT_SECALIGNED, OPT_LAPTOP,
> > +	OPT_ALIGNED, OPT_SECALIGNED, OPT_LAPTOP, OPT_TRACEMARK,
> >  };
> >  
> >  /* Process commandline options */
> > @@ -1340,6 +1353,7 @@ static void process_options (int argc, char *argv[], int max_cpus)
> >  			{"spike",	     required_argument, NULL, OPT_TRIGGER },
> >  			{"spike-nodes",	     required_argument, NULL, OPT_TRIGGER_NODES },
> >  			{"threads",          optional_argument, NULL, OPT_THREADS },
> > +			{"tracemark",        no_argument,       NULL, OPT_TRACEMARK },
> >  			{"tracer",           required_argument, NULL, OPT_TRACER },
> >  			{"unbuffered",       no_argument,       NULL, OPT_UNBUFFERED },
> >  			{"numa",             no_argument,       NULL, OPT_NUMA },
> > @@ -1574,6 +1588,8 @@ static void process_options (int argc, char *argv[], int max_cpus)
> >  			ct_debug = 1; break;
> >  		case OPT_LAPTOP:
> >  			laptop = 1; break;
> > +		case OPT_TRACEMARK:
> > +			trace_marker = 1; break;
> >  		}
> >  	}
> >  
> > @@ -1983,6 +1999,8 @@ int main(int argc, char **argv)
> >  
> >  	setup_tracer();
> >  
> > +	enable_trace_mark();
> > +
> >  	if (check_timer())
> >  		warn("High resolution timers not available\n");
> >  
> > -- 
> > 2.1.0
> > 
> 
> I've pushed all the fixed up to before this point to kernel.org
> can you respin this patch against the latest code?

Sure, which branch?

> 
> Once it applies cleanly then I'll take it
> 
> Thanks
> 
> John
> 


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-03-22 15:01 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-17 18:30 [PATCH v2 0/4] cyclictest: improve running under trace-cmd Luiz Capitulino
2016-03-17 18:30 ` [PATCH 1/4] cyclictest: tracing(): check for notrace Luiz Capitulino
2016-03-22 14:37   ` John Kacur
2016-03-17 18:30 ` [PATCH 2/4] cyclictest: move debugfs init code to its own function Luiz Capitulino
2016-03-22 14:40   ` John Kacur
2016-03-17 18:30 ` [PATCH 3/4] cyclictest: move tracemark_fd handling " Luiz Capitulino
2016-03-22 14:35   ` John Kacur
2016-03-22 14:42     ` Luiz Capitulino
2016-03-17 18:30 ` [PATCH 4/4] cyclictest: add --tracemark option Luiz Capitulino
2016-03-22 14:57   ` John Kacur
2016-03-22 15:01     ` Luiz Capitulino
  -- strict thread matches above, loose matches on Subject: below --
2016-02-25 16:29 [PATCH 0/4] cyclictest: improve running under trace-cmd Luiz Capitulino
2016-02-25 16:29 ` [PATCH 4/4] cyclictest: add --tracemark option Luiz Capitulino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).