All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yordan Karadzhov <y.karadz@gmail.com>
To: linux-trace-devel@vger.kernel.org
Cc: dev@benjarobin.fr, Yordan Karadzhov <y.karadz@gmail.com>
Subject: [PATCH 3/3] kernel-shark: Fix various compile warnings
Date: Sun, 10 Mar 2024 21:32:58 +0200	[thread overview]
Message-ID: <20240310193258.50899-3-y.karadz@gmail.com> (raw)
In-Reply-To: <20240310193258.50899-1-y.karadz@gmail.com>

Those warnings started showing up after adding the "-Wextra"
compiler flag.

Signed-off-by: Yordan Karadzhov <y.karadz@gmail.com>
---
 examples/configio.c        |  3 ++-
 examples/datafilter.c      |  4 ++--
 examples/datahisto.c       |  2 +-
 src/libkshark-collection.c | 42 ++++++++++++++++++++------------------
 src/libkshark-configio.c   |  6 ++++--
 src/libkshark-hash.c       |  7 +++----
 src/libkshark-model.c      | 20 +++++++++---------
 src/libkshark-model.h      |  4 ++--
 src/libkshark-tepdata.c    |  3 +--
 src/libkshark.c            | 28 ++++++++++++++++---------
 src/libkshark.h            |  6 +++---
 src/plugins/sched_events.c | 16 +++++++--------
 12 files changed, 76 insertions(+), 65 deletions(-)

diff --git a/examples/configio.c b/examples/configio.c
index 9710d53..575211d 100644
--- a/examples/configio.c
+++ b/examples/configio.c
@@ -8,7 +8,8 @@ int main(int argc, char **argv)
 	struct kshark_config_doc *conf, *filter, *hello;
 	struct kshark_context *kshark_ctx;
 	struct kshark_data_stream *stream;
-	int sd, *ids = NULL, i;
+	int sd, *ids = NULL;
+	size_t i;
 
 	/* Create a new kshark session. */
 	kshark_ctx = NULL;
diff --git a/examples/datafilter.c b/examples/datafilter.c
index 8e86d9c..120c12e 100644
--- a/examples/datafilter.c
+++ b/examples/datafilter.c
@@ -17,11 +17,11 @@ const char *default_file = "trace.dat";
 
 int main(int argc, char **argv)
 {
-	size_t i, sd, n_rows, n_tasks, n_evts, count;
+	size_t i, n_rows, n_tasks, n_evts, count;
 	struct kshark_context *kshark_ctx;
 	struct kshark_data_stream *stream;
 	struct kshark_entry **data = NULL;
-	int *pids, *evt_ids;
+	int sd, *pids, *evt_ids;
 	char *entry_str;
 
 	/* Create a new kshark session. */
diff --git a/examples/datahisto.c b/examples/datahisto.c
index 568072d..b54b9e9 100644
--- a/examples/datahisto.c
+++ b/examples/datahisto.c
@@ -70,7 +70,7 @@ void dump_bin(struct kshark_trace_histo *histo, int bin, int sd,
 
 void dump_histo(struct kshark_trace_histo *histo, int sd, const char *type, int val)
 {
-	size_t bin;
+	int bin;
 
 	for (bin = 0; bin < histo->n_bins; ++bin)
 		dump_bin(histo, bin, sd, type, val);
diff --git a/src/libkshark-collection.c b/src/libkshark-collection.c
index 915983b..c44d579 100644
--- a/src/libkshark-collection.c
+++ b/src/libkshark-collection.c
@@ -120,7 +120,7 @@ kshark_data_collection_alloc(struct kshark_context *kshark_ctx,
 		temp->type = COLLECTION_IGNORE;
 	}
 
-	for (i = first + margin; i < end; ++i) {
+	for (i = first + margin; i < (size_t) end; ++i) {
 		if (!cond(kshark_ctx, data[i], sd, values)) {
 			/*
 			 * The entry is irrelevant for this collection.
@@ -161,9 +161,8 @@ kshark_data_collection_alloc(struct kshark_context *kshark_ctx,
 
 			/* Keep adding entries until the "next" record. */
 			for (j = i + 1;
-			     j != end && last_vis_entry->next != data[j];
-			     j++)
-				;
+			     j != (size_t) end && last_vis_entry->next != data[j];
+			     j++);
 
 			/*
 			 * If the number of added entries is smaller than the
@@ -322,8 +321,9 @@ map_collection_request_init(const struct kshark_entry_collection *col,
 			    bool front, size_t *end)
 {
 	int col_index_flag;
-	ssize_t col_index;
+	size_t col_index;
 	size_t req_end;
+	ssize_t ret;
 
 	if (req->next || col->size == 0) {
 		fprintf(stderr,
@@ -338,19 +338,17 @@ map_collection_request_init(const struct kshark_entry_collection *col,
 	 * Find the first Resume Point of the collection which is equal or
 	 * greater than the first index of this request.
 	 */
-	col_index = map_collection_index_from_source(col,
-						     req->first,
-						     &col_index_flag);
+	ret = map_collection_index_from_source(col, req->first, &col_index_flag);
+	if (ret == KS_EMPTY_BIN) {
+		/* Empty collection. */
+		goto do_nothing;
+	}
+	col_index = ret;
 
 	/*
 	 * The value of "col_index" is ambiguous. Use the "col_index_flag" to
 	 * deal with all possible cases.
 	 */
-	if (col_index == KS_EMPTY_BIN) {
-		/* Empty collection. */
-		goto do_nothing;
-	}
-
 	if (col_index_flag == COLLECTION_AFTER) {
 		/*
 		 * This request starts after the end of interval "col_index".
@@ -436,12 +434,14 @@ map_collection_back_request(const struct kshark_entry_collection *col,
 			    struct kshark_entry_request *req)
 {
 	size_t req_first, req_end;
-	ssize_t col_index;
+	size_t col_index;
 	int req_count;
+	ssize_t ret;
 
-	col_index = map_collection_request_init(col, req, false, &req_end);
-	if (col_index == KS_EMPTY_BIN)
+	ret = map_collection_request_init(col, req, false, &req_end);
+	if (ret == KS_EMPTY_BIN)
 		return 0;
+	col_index = ret;
 
 	/*
 	 * Now loop over the intervals of the collection going backwards till
@@ -449,7 +449,7 @@ map_collection_back_request(const struct kshark_entry_collection *col,
 	 * each of those interest.
 	 */
 	req_count = 1;
-	while (col_index >= 0 && req_end <= col->break_points[col_index]) {
+	while (req_end <= col->break_points[col_index]) {
 		if (req_end >= col->resume_points[col_index]) {
 			/*
 			 * The last entry of the original request is inside
@@ -519,12 +519,14 @@ map_collection_front_request(const struct kshark_entry_collection *col,
 			     struct kshark_entry_request *req)
 {
 	size_t req_first, req_end;
-	ssize_t col_index;
+	size_t col_index;
 	int req_count;
+	ssize_t ret;
 
-	col_index = map_collection_request_init(col, req, true, &req_end);
-	if (col_index == KS_EMPTY_BIN)
+	ret = map_collection_request_init(col, req, true, &req_end);
+	if (ret == KS_EMPTY_BIN)
 		return 0;
+	col_index = ret;
 
 	/*
 	 * Now loop over the intervals of the collection going forwards till
diff --git a/src/libkshark-configio.c b/src/libkshark-configio.c
index 038cb22..88c2c9a 100644
--- a/src/libkshark-configio.c
+++ b/src/libkshark-configio.c
@@ -1114,7 +1114,8 @@ static bool kshark_event_filter_to_json(struct kshark_data_stream *stream,
 	json_object *jfilter_data, *jname;
 	struct kshark_hash_id *filter;
 	char *name_str;
-	int i, *ids;
+	int *ids;
+	size_t i;
 
 	filter = kshark_get_filter(stream, filter_type);
 	if (!filter)
@@ -1283,7 +1284,8 @@ static bool kshark_filter_array_to_json(struct kshark_hash_id *filter,
 					struct json_object *jobj)
 {
 	json_object *jfilter_data, *jpid = NULL;
-	int i, *ids;
+	int *ids;
+	size_t i;
 
 	/*
 	 * If this Json document already contains a description of the filter,
diff --git a/src/libkshark-hash.c b/src/libkshark-hash.c
index 89c021b..8782883 100644
--- a/src/libkshark-hash.c
+++ b/src/libkshark-hash.c
@@ -168,8 +168,7 @@ void kshark_hash_id_remove(struct kshark_hash_id *hash, int id)
 void kshark_hash_id_clear(struct kshark_hash_id *hash)
 {
 	struct kshark_hash_id_item *item, *next;
-	size_t size;
-	int i;
+	size_t i, size;
 
 	if (!hash || ! hash->hash)
 		return;
@@ -211,8 +210,8 @@ static int compare_ids(const void* a, const void* b)
 int *kshark_hash_ids(struct kshark_hash_id *hash)
 {
 	struct kshark_hash_id_item *item;
-	size_t size = hash_size(hash);
-	int count = 0, i;
+	size_t i, size = hash_size(hash);
+	int count = 0;
 	int *ids;
 
 	if (!hash->count)
diff --git a/src/libkshark-model.c b/src/libkshark-model.c
index e872784..c6dce5e 100644
--- a/src/libkshark-model.c
+++ b/src/libkshark-model.c
@@ -91,7 +91,7 @@ static bool ksmodel_histo_alloc(struct kshark_trace_histo *histo, size_t n)
 }
 
 static void ksmodel_set_in_range_bining(struct kshark_trace_histo *histo,
-					size_t n, int64_t min, int64_t max,
+					int n, int64_t min, int64_t max,
 					bool force_in_range)
 {
 	int64_t corrected_range, delta_range, range = max - min;
@@ -110,7 +110,7 @@ static void ksmodel_set_in_range_bining(struct kshark_trace_histo *histo,
 	}
 
 	/* The size of the bin must be >= 1, hence the range must be >= n. */
-	if (range < n) {
+	if (range < (int64_t) n) {
 		range = n;
 		max = min + n;
 	}
@@ -266,10 +266,10 @@ static size_t ksmodel_set_upper_edge(struct kshark_trace_histo *histo)
 }
 
 static void ksmodel_set_next_bin_edge(struct kshark_trace_histo *histo,
-				      size_t bin, size_t last_row)
+				      int bin, size_t last_row)
 {
 	int64_t time_min, time_max;
-	size_t next_bin = bin + 1;
+	int next_bin = bin + 1;
 	ssize_t row;
 
 	/* Calculate the beginning and the end of the next bin. */
@@ -463,12 +463,12 @@ size_t ksmodel_bin_count(struct kshark_trace_histo *histo, int bin)
  * @param histo: Input location for the model descriptor.
  * @param n: Number of bins to shift.
  */
-void ksmodel_shift_forward(struct kshark_trace_histo *histo, size_t n)
+void ksmodel_shift_forward(struct kshark_trace_histo *histo, int n)
 {
 	size_t last_row = 0;
 	int bin;
 
-	if (!histo->data_size)
+	if (!histo->data_size || histo->n_bins <= 0)
 		return;
 
 	if (histo->map[UOB(histo)] == KS_EMPTY_BIN) {
@@ -541,12 +541,12 @@ void ksmodel_shift_forward(struct kshark_trace_histo *histo, size_t n)
  * @param histo: Input location for the model descriptor.
  * @param n: Number of bins to shift.
  */
-void ksmodel_shift_backward(struct kshark_trace_histo *histo, size_t n)
+void ksmodel_shift_backward(struct kshark_trace_histo *histo, int n)
 {
 	size_t last_row = 0;
 	int bin;
 
-	if (!histo->data_size)
+	if (!histo->data_size || histo->n_bins <= 0)
 		return;
 
 	if (histo->map[LOB(histo)] == KS_EMPTY_BIN) {
@@ -649,7 +649,7 @@ void ksmodel_jump_to(struct kshark_trace_histo *histo, int64_t ts)
 static void ksmodel_zoom(struct kshark_trace_histo *histo,
 			 double r, int mark, bool zoom_in)
 {
-	size_t range, min, max, delta_min;
+	int64_t range, min, max, delta_min;
 	double delta_tot;
 
 	if (!histo->data_size)
@@ -668,7 +668,7 @@ static void ksmodel_zoom(struct kshark_trace_histo *histo,
 	 * Avoid overzooming. If needed, adjust the Scale factor to a the value
 	 * which provides bin_size >= 5.
 	 */
-	if (zoom_in && (size_t) (range * (1. - r)) < histo->n_bins * 5)
+	if (zoom_in && (int64_t) (range * (1. - r)) < (int64_t) histo->n_bins * 5)
 		r = 1. - (histo->n_bins * 5.) / range;
 
 	/*
diff --git a/src/libkshark-model.h b/src/libkshark-model.h
index 8989ee0..bf4f1c4 100644
--- a/src/libkshark-model.h
+++ b/src/libkshark-model.h
@@ -85,9 +85,9 @@ void ksmodel_fill(struct kshark_trace_histo *histo,
 
 size_t ksmodel_bin_count(struct kshark_trace_histo *histo, int bin);
 
-void ksmodel_shift_forward(struct kshark_trace_histo *histo, size_t n);
+void ksmodel_shift_forward(struct kshark_trace_histo *histo, int n);
 
-void ksmodel_shift_backward(struct kshark_trace_histo *histo, size_t n);
+void ksmodel_shift_backward(struct kshark_trace_histo *histo, int n);
 
 void ksmodel_jump_to(struct kshark_trace_histo *histo, int64_t ts);
 
diff --git a/src/libkshark-tepdata.c b/src/libkshark-tepdata.c
index 4e572a1..ed508a9 100644
--- a/src/libkshark-tepdata.c
+++ b/src/libkshark-tepdata.c
@@ -239,7 +239,7 @@ static int get_next_pid(struct kshark_data_stream *stream,
 	ret = tep_read_number_field(get_sched_next(stream),
 				    record->data, &val);
 
-	return ret ? : val;
+	return ret ? : (int) val;
 }
 
 static void register_command(struct kshark_data_stream *stream,
@@ -312,7 +312,6 @@ static ssize_t get_records(struct kshark_context *kshark_ctx,
 		count = 0;
 		cpu_list[cpu] = NULL;
 		temp_next = &cpu_list[cpu];
-
 		rec = tracecmd_read_cpu_first(kshark_get_tep_input(stream), cpu);
 		while (rec) {
 			*temp_next = temp_rec = calloc(1, sizeof(*temp_rec));
diff --git a/src/libkshark.c b/src/libkshark.c
index 8443279..4909dd6 100644
--- a/src/libkshark.c
+++ b/src/libkshark.c
@@ -1370,14 +1370,15 @@ void kshark_clear_all_filters(struct kshark_context *kshark_ctx,
 			      size_t n_entries)
 {
 	struct kshark_data_stream *stream;
-	int *stream_ids, i;
+	int *stream_ids, sd;
+	size_t i;
 
 	for (i = 0; i < n_entries; ++i)
 		set_all_visible(&data[i]->visible);
 
 	stream_ids = kshark_all_streams(kshark_ctx);
-	for (i = 0; i < kshark_ctx->n_streams; i++) {
-		stream = kshark_get_data_stream(kshark_ctx, stream_ids[i]);
+	for (sd = 0; sd < kshark_ctx->n_streams; sd++) {
+		stream = kshark_get_data_stream(kshark_ctx, stream_ids[sd]);
 		stream->filter_is_applied = false;
 	}
 
@@ -1902,10 +1903,13 @@ void kshark_set_clock_offset(struct kshark_context *kshark_ctx,
 	kshark_data_qsort(entries, size);
 }
 
-static int first_in_time_entry(struct kshark_entry_data_set *buffer, int n_buffers, size_t *count)
+static int first_in_time_entry(struct kshark_entry_data_set *buffer,
+			       size_t n_buffers,
+			       ssize_t *count)
 {
 	int64_t t_min = INT64_MAX;
-	int i, min = -1;
+	int min = -1;
+	size_t i;
 
 	for (i = 0; i < n_buffers; ++i) {
 		if (count[i] == buffer[i].n_rows)
@@ -1930,10 +1934,11 @@ static int first_in_time_entry(struct kshark_entry_data_set *buffer, int n_buffe
  *	    responsible for freeing the elements of the outputted array.
  */
 struct kshark_entry **
-kshark_merge_data_entries(struct kshark_entry_data_set *buffers, int n_buffers)
+kshark_merge_data_entries(struct kshark_entry_data_set *buffers, size_t n_buffers)
 {
 	struct kshark_entry **merged_data;
-	size_t i, tot = 0, count[n_buffers];
+	ssize_t count[n_buffers];
+	size_t i, tot = 0;
 	int i_first;
 
 	if (n_buffers < 2) {
@@ -2078,7 +2083,9 @@ ssize_t kshark_append_all_entries(struct kshark_context *kshark_ctx,
 				merged_data);
 }
 
-static int first_in_time_row(struct kshark_matrix_data_set *buffers, int n_buffers, size_t *count)
+static int first_in_time_row(struct kshark_matrix_data_set *buffers,
+			     int n_buffers,
+			     ssize_t *count)
 {
 	int64_t t_min = INT64_MAX;
 	int i, min = -1;
@@ -2107,10 +2114,11 @@ static int first_in_time_row(struct kshark_matrix_data_set *buffers, int n_buffe
  *	    matrix.
  */
 struct kshark_matrix_data_set
-kshark_merge_data_matrices(struct kshark_matrix_data_set *buffers, int n_buffers)
+kshark_merge_data_matrices(struct kshark_matrix_data_set *buffers, size_t n_buffers)
 {
 	struct kshark_matrix_data_set merged_data;
-	size_t i, tot = 0, count[n_buffers];
+	ssize_t count[n_buffers];
+	size_t i, tot = 0;
 	int i_first;
 	bool status;
 
diff --git a/src/libkshark.h b/src/libkshark.h
index 97d3227..7656ce9 100644
--- a/src/libkshark.h
+++ b/src/libkshark.h
@@ -764,7 +764,7 @@ struct kshark_entry_collection {
 	int *values;
 
 	/** The suze of the array of matching condition values. */
-	int n_val;
+	size_t n_val;
 
 	/**
 	 * Array of indexes defining the beginning of each individual data
@@ -1071,7 +1071,7 @@ struct kshark_entry_data_set {
 
 struct kshark_entry **
 kshark_merge_data_entries(struct kshark_entry_data_set *buffers,
-			  int n_buffers);
+			  size_t n_buffers);
 
 ssize_t kshark_load_all_entries(struct kshark_context *kshark_ctx,
 				struct kshark_entry ***data_rows);
@@ -1111,7 +1111,7 @@ struct kshark_matrix_data_set {
 
 struct kshark_matrix_data_set
 kshark_merge_data_matrices(struct kshark_matrix_data_set *buffers,
-			   int n_buffers);
+			   size_t n_buffers);
 
 /**
  * Structure used to store the data of a kshark_entry plus one additional
diff --git a/src/plugins/sched_events.c b/src/plugins/sched_events.c
index c3a4f47..e7dd2b1 100644
--- a/src/plugins/sched_events.c
+++ b/src/plugins/sched_events.c
@@ -104,28 +104,28 @@ static void plugin_sched_swith_action(struct kshark_data_stream *stream,
 {
 	struct tep_record *record = (struct tep_record *) rec;
 	struct plugin_sched_context *plugin_ctx;
-	unsigned long long next_pid, prev_state;
+	unsigned long long next_pid_val, prev_state_val;
 	ks_num_field_t ks_field = 0;
-	int ret;
+	int ret, pid;
 
 	plugin_ctx = __get_context(stream->stream_id);
 	if (!plugin_ctx)
 		return;
 
 	ret = tep_read_number_field(plugin_ctx->sched_switch_next_field,
-				    record->data, &next_pid);
-
-	if (ret == 0 && next_pid >= 0) {
+				    record->data, &next_pid_val);
+	pid = next_pid_val;
+	if (ret == 0 && pid >= 0) {
 		plugin_sched_set_pid(&ks_field, entry->pid);
 
 		ret = tep_read_number_field(plugin_ctx->sched_switch_prev_state_field,
-					    record->data, &prev_state);
+					    record->data, &prev_state_val);
 
 		if (ret == 0)
-			plugin_sched_set_prev_state(&ks_field, prev_state);
+			plugin_sched_set_prev_state(&ks_field, prev_state_val);
 
 		kshark_data_container_append(plugin_ctx->ss_data, entry, ks_field);
-		entry->pid = next_pid;
+		entry->pid = pid;
 	}
 }
 
-- 
2.42.0


      parent reply	other threads:[~2024-03-10 19:33 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-10 19:32 [PATCH 1/3] kernel-shark: Enable extra compile warnings Yordan Karadzhov
2024-03-10 19:32 ` [PATCH 2/3] kernelshark: Mute all "unused parameter" warnings Yordan Karadzhov
2024-03-10 19:32 ` Yordan Karadzhov [this message]

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=20240310193258.50899-3-y.karadz@gmail.com \
    --to=y.karadz@gmail.com \
    --cc=dev@benjarobin.fr \
    --cc=linux-trace-devel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.