Re: [PATCH v2 20/20] kernel-shark: Integrate streams with libkshark-configio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 12 Oct 2020 16:35:23 +0300
"Yordan Karadzhov (VMware)" <y.karadz@xxxxxxxxx> wrote:

> +int kshark_import_trace_file(struct kshark_context *kshark_ctx,
> +			     struct kshark_config_doc *conf)
>  {
> -	const char *file = NULL;
> +	const char *file = NULL, *name = NULL;
> +	int sd = -1;
> +
>  	switch (conf->format) {
>  	case KS_CONFIG_JSON:
> -		if (kshark_trace_file_from_json(&file, conf->conf_doc))
> -			kshark_open(kshark_ctx, file);
> +		if (kshark_trace_file_from_json(&file, &name, "data",
> +						conf->conf_doc)) {
> +			if (strcmp(name, "top") == 0) {

Is "top" something that could be named by a user? That is, we could have a
conflict if a buffer is called "top"?

If this is a special meaning, then we should probably make this something A
user can not do, or even better, unlikely to have. And we shouldn't have it
hardcoded as "top" anyway, it should be a macro.


#define KERNEL_SHARK_TOP_STREAM		"/ / / __Top__ / / /"

Then everywhere use that.

Like in kshark_tep_init_input():

	stream->name = strdup(KERNEL_SHARK_TOP_STREAM);

And also replace "top" in this code with that macro as well.

-- Steve


> +				sd = kshark_open(kshark_ctx, file);
> +			} else {
> +				int sd_top;
> +
> +				sd_top = kshark_tep_find_top_stream(kshark_ctx,
> +								    file);
> +				if (sd_top < 0) {
> +					/*
> +					 * The "top" steam (buffer) has to be
> +					 * initialized first.
> +					 */
> +					sd_top = kshark_open(kshark_ctx, file);
> +				}
> +
> +				if (sd_top >= 0)
> +					sd = kshark_tep_open_buffer(kshark_ctx,
> +								    sd_top,
> +								    name);
> +
> +				if (sd >= 0)
> +				kshark_tep_handle_plugins(kshark_ctx, sd);
> +			}
> +		}
> +
> +		break;
>  
> +	default:
> +		fprintf(stderr, "Document format %d not supported\n",
> +			conf->format);
>  		break;
> +	}
> +
> +	return sd;
> +}



[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux