[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-rt-users
Subject:    Re: [PATCH v3] cyclictest: add --tracemark option
From:       John Kacur <jkacur () redhat ! com>
Date:       2016-03-24 14:17:19
Message-ID: alpine.LFD.2.20.1603241516290.8641 () riemann
[Download RAW message or body]



On Tue, 22 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>
> ---
> 
> John, I hope this is what you asked me to do.
> 
> o v3
> 
>  - Rebased on top of latest devel/v0.97 (HEAD a638701)
>  - Add missing help text
> 
>  src/cyclictest/cyclictest.c | 21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
> index b9571f5..4844dfa 100644
> --- a/src/cyclictest/cyclictest.c
> +++ b/src/cyclictest/cyclictest.c
> @@ -202,6 +202,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;
> @@ -561,6 +562,18 @@ static void debugfs_prepare(void)
>  		fileprefix = procfileprefix;
>  }
>  
> +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)
> @@ -1312,6 +1325,7 @@ static void display_help(int error)
>  	       "-t [NUM] --threads=NUM     number of threads:\n"
>  	       "                           without NUM, threads = max_cpus\n"
>  	       "                           without -t default = 1\n"
> +	       "         --tracemark       write a trace mark when -b latency is exceeded\n"
>  	       "-T TRACE --tracer=TRACER   set tracing function\n"
>  	       "    configured tracers: %s\n"
>  	       "-u       --unbuffered      force unbuffered output for live processing\n"
> @@ -1453,7 +1467,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_SMI,
> +	OPT_ALIGNED, OPT_SECALIGNED, OPT_LAPTOP, OPT_SMI, OPT_TRACEMARK,
>  };
>  
>  /* Process commandline options */
> @@ -1508,6 +1522,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 },
> @@ -1749,6 +1764,8 @@ static void process_options (int argc, char *argv[], int max_cpus)
>  			fatal("--smi is not available on your arch\n");
>  #endif
>  			break;
> +		case OPT_TRACEMARK:
> +			trace_marker = 1; break;
>  		}
>  	}
>  
> @@ -2184,6 +2201,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
> 
> --


Signed-off-by: John Kacur <jkacur@redhat.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic