Linux-rt-users Archive on lore.kernel.org
 help / color / Atom feed
From: John Kacur <jkacur@redhat.com>
To: Daniel Wagner <dwagner@suse.de>
Cc: Clark Williams <williams@redhat.com>, linux-rt-users@vger.kernel.org
Subject: Re: [PATCH rt-tests v3 15/33] rt-util: Introduce rt_test_start()
Date: Fri, 7 May 2021 12:40:20 -0400 (EDT)
Message-ID: <5a3db222-117-ce6c-4b89-ccf717be19c@redhat.com> (raw)
In-Reply-To: <20210320183829.1318-16-dwagner@suse.de>



On Sat, 20 Mar 2021, Daniel Wagner wrote:

> For the JSON output records a timestamp when the test ended.
> Let's introduce a new API to record a timestamp when the test
> starts. We could put this into rt_init() but in this case we
> would meassure also the time test needs to setup or warm up.
> 
> Signed-off-by: Daniel Wagner <dwagner@suse.de>
> ---
>  src/include/rt-utils.h |  2 ++
>  src/lib/rt-utils.c     | 34 ++++++++++++++++++++++++----------
>  2 files changed, 26 insertions(+), 10 deletions(-)
> 
> diff --git a/src/include/rt-utils.h b/src/include/rt-utils.h
> index 115791c55185..42c2772262db 100644
> --- a/src/include/rt-utils.h
> +++ b/src/include/rt-utils.h
> @@ -82,6 +82,8 @@ static inline int64_t calctime(struct timespec t)
>  
>  void rt_init(int argc, char *argv[]);
>  
> +void rt_test_start(void);
> +
>  void rt_write_json(const char *filename,
>  		   void (*cb)(FILE *, void *),
>  		   void *data);
> diff --git a/src/lib/rt-utils.c b/src/lib/rt-utils.c
> index f736a3449bf7..efb5d1d9e866 100644
> --- a/src/lib/rt-utils.c
> +++ b/src/lib/rt-utils.c
> @@ -30,6 +30,7 @@
>  
>  #define  TRACEBUFSIZ  1024
>  #define  MAX_COMMAND_LINE 4096
> +#define  MAX_TS_SIZE 64
>  
>  static char debugfileprefix[MAX_PATH];
>  static char *fileprefix;
> @@ -37,6 +38,7 @@ static int trace_fd = -1;
>  static int tracemark_fd = -1;
>  static __thread char tracebuf[TRACEBUFSIZ];
>  static char test_cmdline[MAX_COMMAND_LINE];
> +static char ts_start[MAX_TS_SIZE];
>  
>  /*
>   * Finds the tracing directory in a mounted debugfs
> @@ -514,17 +516,32 @@ void rt_init(int argc, char *argv[])
>  	}
>  }
>  
> +static void get_timestamp(char *tsbuf)
> +{
> +	struct timeval tv;
> +	struct tm *tm;
> +	time_t t;
> +
> +	gettimeofday(&tv, NULL);
> +	t = tv.tv_sec;
> +	tm = localtime(&t);
> +	/* RFC 2822-compliant date format */
> +	strftime(tsbuf, MAX_TS_SIZE, "%a, %d %b %Y %T %z", tm);
> +}
> +
> +void rt_test_start(void)
> +{
> +	get_timestamp(ts_start);
> +}
> +
>  void rt_write_json(const char *filename,
>  		  void (*cb)(FILE *, void *),
>  		  void *data)
>  {
>  	unsigned char buf[1];
>  	struct utsname uts;
> -	struct timeval tv;
> -	char tsbuf[64];
> -	struct tm *tm;
> +	char ts_end[MAX_TS_SIZE];
>  	FILE *f, *s;
> -	time_t t;
>  	size_t n;
>  	int rt = 0;
>  
> @@ -536,11 +553,7 @@ void rt_write_json(const char *filename,
>  			err_exit(errno, "Failed to open '%s'\n", filename);
>  	}
>  
> -	gettimeofday(&tv, NULL);
> -	t = tv.tv_sec;
> -	tm = localtime(&t);
> -	/* RFC 2822-compliant date format */
> -	strftime(tsbuf, sizeof(tsbuf), "%a, %d %b %Y %T %z", tm);
> +	get_timestamp(ts_end);
>  
>  	s = fopen("/sys/kernel/realtime", "r");
>  	if (s) {
> @@ -557,7 +570,8 @@ void rt_write_json(const char *filename,
>  	fprintf(f, "  \"file_version\": 1,\n");
>  	fprintf(f, "  \"cmdline:\": \"%s\",\n", test_cmdline);
>  	fprintf(f, "  \"rt_test_version:\": \"%1.2f\",\n", VERSION);
> -	fprintf(f, "  \"finished\": \"%s\",\n", tsbuf);
> +	fprintf(f, "  \"start_time\": \"%s\",\n", ts_start);
> +	fprintf(f, "  \"end_time\": \"%s\",\n", ts_end);
>  	fprintf(f, "  \"sysinfo\": {\n");
>  	fprintf(f, "    \"sysname\": \"%s\",\n", uts.sysname);
>  	fprintf(f, "    \"nodename\": \"%s\",\n", uts.nodename);
> -- 
> 2.30.2
> 
> 

I don't really like this. I think it looks "good" in the json output, but
I don't think it is providing any kind of meaningful data. My fear is that 
users will try to assign some kind of significance to these numbers in 
relation to the tests.

I'm letting it in anyway, maybe people will tell me I'm wrong and they 
like it, but recording my objection for now anyway.

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

  reply index

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-20 18:37 [PATCH rt-tests v3 00/33] JSON cleanups and more tests updated Daniel Wagner
2021-03-20 18:37 ` [PATCH rt-tests v3 01/33] cyclictest: Remove unused include header Daniel Wagner
2021-05-07 16:17   ` John Kacur
2021-03-20 18:37 ` [PATCH rt-tests v3 02/33] cyclicdeadline: " Daniel Wagner
2021-05-07 16:19   ` John Kacur
2021-03-20 18:37 ` [PATCH rt-tests v3 03/33] signaltest: Add missing --output usage info Daniel Wagner
2021-05-07 16:26   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 04/33] rt-util: Add rt_init function Daniel Wagner
2021-05-07 16:27   ` John Kacur
2021-05-12  7:30     ` Daniel Wagner
2021-03-20 18:38 ` [PATCH rt-tests v3 05/33] cyclictest: Initialize rt-util Daniel Wagner
2021-05-07 16:28   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 06/33] oslat: " Daniel Wagner
2021-05-07 16:29   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 07/33] pmqtest: " Daniel Wagner
2021-05-07 16:29   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 08/33] ptsematest: " Daniel Wagner
2021-05-07 16:30   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 09/33] rt-migrate-test: " Daniel Wagner
2021-05-07 16:31   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 10/33] cyclicdeadline: " Daniel Wagner
2021-05-07 16:31   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 11/33] signaltest: " Daniel Wagner
2021-05-07 16:32   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 12/33] sigwaittest: " Daniel Wagner
2021-05-07 16:33   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 13/33] svematest: " Daniel Wagner
2021-05-07 16:34   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 14/33] rt-util: Remove superfluous arguments from rt_write_json Daniel Wagner
2021-05-07 16:36   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 15/33] rt-util: Introduce rt_test_start() Daniel Wagner
2021-05-07 16:40   ` John Kacur [this message]
2021-05-12  7:33     ` Daniel Wagner
2021-03-20 18:38 ` [PATCH rt-tests v3 16/33] cyclictest: Record start of test execution Daniel Wagner
2021-05-07 16:41   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 17/33] oslat: " Daniel Wagner
2021-05-07 16:41   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 18/33] pmqtest: " Daniel Wagner
2021-05-07 16:43   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 19/33] ptesematest: " Daniel Wagner
2021-05-07 16:43   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 20/33] rt-migrate-test: " Daniel Wagner
2021-05-07 16:44   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 21/33] cyclicdeadline: " Daniel Wagner
2021-05-07 16:45   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 22/33] signaltest: " Daniel Wagner
2021-05-07 16:45   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 23/33] sigwaittest: " Daniel Wagner
2021-05-07 16:46   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 24/33] svsematest: " Daniel Wagner
2021-05-07 16:46   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 25/33] rt-util: Add return_code to common section of JSON output Daniel Wagner
2021-05-07 16:49   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 26/33] pip_stress: Move test result output to main Daniel Wagner
2021-05-07 16:55   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 27/33] pip_stress: Return failure code if test fails Daniel Wagner
2021-05-07 16:54   ` John Kacur
2021-05-12  7:35     ` Daniel Wagner
2021-05-13 19:27       ` John Kacur
2021-05-14  6:58         ` Daniel Wagner
2021-03-20 18:38 ` [PATCH rt-tests v3 28/33] pip_stress: Prepare arg parser to accept only long options Daniel Wagner
2021-05-07 16:55   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 29/33] pip_stress: Add JSON output feature Daniel Wagner
2021-05-07 16:58   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 30/33] pi_stress: Prepare command line parser for long options only Daniel Wagner
2021-05-07 16:58   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 31/33] pi_stress: Add JSON output feature Daniel Wagner
2021-05-07 16:59   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 32/33] ssdd: Add quiet command line option Daniel Wagner
2021-05-07 17:00   ` John Kacur
2021-03-20 18:38 ` [PATCH rt-tests v3 33/33] ssdd: Add JSON output feature Daniel Wagner
2021-05-07 17:00   ` John Kacur
2021-03-22 15:50 ` [PATCH rt-tests v3 00/33] JSON cleanups and more tests updated John Kacur

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5a3db222-117-ce6c-4b89-ccf717be19c@redhat.com \
    --to=jkacur@redhat.com \
    --cc=dwagner@suse.de \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=williams@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-rt-users Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-rt-users/0 linux-rt-users/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-rt-users linux-rt-users/ https://lore.kernel.org/linux-rt-users \
		linux-rt-users@vger.kernel.org
	public-inbox-index linux-rt-users

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-rt-users


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git