linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-trace-devel@vger.kernel.org
Subject: Re: [PATCH v3 2/3] kernel-shark-qt: Add I/O for configuration data.
Date: Fri, 17 Aug 2018 12:32:13 +0300	[thread overview]
Message-ID: <0a535d0f-333c-f002-970c-33c5a8937b05@gmail.com> (raw)
In-Reply-To: <20180816145219.7e91e435@gandalf.local.home>

Hi Steven

On 16.08.2018 21:52, Steven Rostedt wrote:
>> +	jfile_name = json_object_new_string(file);
>> +	jtime = json_object_new_int64(st.st_mtime);
> BTW, are you saving the timestamp to make sure the trace.dat file is
> the same? (assuming that the 'file' in question is trace.dat)
> 
> What if we want to use the same "session" for different trace.dat files?
> 


If the timestamp is different then the import will fail (see below).

If you really want to load the session with a different file you can 
hand-edit the Json file and make it match.


 >> +static bool kshark_trace_file_from_json(const char **file,
 >> +					struct json_object *jobj)
 >> +{
 >> +	struct json_object *jfile_name, *jtime;
 >> +	const char *file_str;
 >> +	struct stat st;
 >> +	int64_t time;
 >> +
 >> +	if (!jobj)
 >> +		return false;
 >> +
 >> +	if (!kshark_json_type_check(jobj, "kshark.data.config") ||
 >> +	    !json_object_object_get_ex(jobj, "file", &jfile_name) ||
 >> +	    !json_object_object_get_ex(jobj, "time", &jtime)) {
 >> +		fprintf(stderr,
 >> +			"Failed to retrieve data file from json_object.\n");
 >> +		return false;
 >> +	}
 >> +
 >> +	file_str = json_object_get_string(jfile_name);
 >> +	time = json_object_get_int64(jtime);
 >> +
 >> +	if (stat(file_str, &st) != 0) {
 >> +		fprintf(stderr, "Unable to find file %s\n", file_str);
 >> +		return false;
 >> +	}
 >> +
 >> +	if (st.st_mtime != time) {


Here we check the timestamp.


 >> +		fprintf(stderr,"Timestamp mismatch!\nFile %s", file_str);
 >> +		return false;
 >> +	}
 >> +
 >> +	*file = file_str;
 >> +
 >> +	return true;
 >> +}
 >> +
 >> +/**
 >> + * @brief Read the name of a trace data file and its timestamp from a
 >> + *	  Configuration document and check if such a file exists.
 >> + *	  If the file exists, open it.
 >> + *
 >> + * @param kshark_ctx: Input location for session context pointer.
 >> + * @param conf: Input location for the kshark_config_doc instance. 
Currently
 >> + *		only Json format is supported.
 >> + *
 >> + * @returns The name of the file on success. Else NULL.
 > 	s/on success. Else/on success, otherwise/
 >
 > There also needs to be a statement stating that "file" is an internal
 > element of @conf and should not be modified, and is undefined if @conf
 > is destroyed (freed).
 >
 >> + */
 >> +const char* kshark_import_trace_file(struct kshark_context *kshark_ctx,
 >> +				     struct kshark_config_doc *conf)
 >> +{
 >> +	const char *file = NULL;
 >> +	switch (conf->format) {
 >> +	case KS_CONFIG_JSON:
 >> +		if (kshark_trace_file_from_json(&file, conf->conf_doc))
 >> +			kshark_open(kshark_ctx, file);
 >> +
 >> +		break;

  reply	other threads:[~2018-08-17 12:34 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-16 15:07 [PATCH v3 1/3] kernel-shark-qt: Add Json-C as a third party dependency Yordan Karadzhov (VMware)
2018-08-16 15:07 ` [PATCH v3 2/3] kernel-shark-qt: Add I/O for configuration data Yordan Karadzhov (VMware)
2018-08-16 18:52   ` Steven Rostedt
2018-08-17  9:32     ` Yordan Karadzhov (VMware) [this message]
2018-08-17 12:49       ` Steven Rostedt
2018-08-17 14:13         ` Yordan Karadzhov (VMware)
2018-08-17 14:58           ` Steven Rostedt
2018-08-17 15:09             ` Yordan Karadzhov (VMware)
2018-08-17 15:12               ` Steven Rostedt
2018-08-17 15:29                 ` Yordan Karadzhov (VMware)
2018-08-17 15:34                   ` Steven Rostedt
2018-08-17  9:34     ` Yordan Karadzhov (VMware)
2018-08-17 12:52       ` Steven Rostedt
2018-08-17 14:15         ` Yordan Karadzhov (VMware)
2018-08-16 15:07 ` [PATCH v3 3/3] kernel-shark-qt: Add an example showing how to import/export config. data Yordan Karadzhov (VMware)

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=0a535d0f-333c-f002-970c-33c5a8937b05@gmail.com \
    --to=y.karadz@gmail.com \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).