From: Ross Zwisler <zwisler@google.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-trace-devel@vger.kernel.org,
Stevie Alvarez <stevie.6strings@gmail.com>
Subject: Re: [PATCH 6/9] libtraceveal: Add type checks to traceeval_data vals and keys
Date: Thu, 24 Aug 2023 15:23:36 -0600 [thread overview]
Message-ID: <20230824212336.GG110858@google.com> (raw)
In-Reply-To: <20230817222422.118568-7-rostedt@goodmis.org>
On Thu, Aug 17, 2023 at 06:24:19PM -0400, Steven Rostedt wrote:
> From: "Steven Rostedt (Google)" <rostedt@goodmis.org>
>
> Now that the traceeval_data has a type, add checks to traceeval_insert()
> and traceveal_query() as well as traceeval_stat() to make sure the keys
> and vals match the types that were for the traceeval.
>
> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> ---
> src/histograms.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/src/histograms.c b/src/histograms.c
> index 7c0eef6cf421..560046cc8d96 100644
> --- a/src/histograms.c
> +++ b/src/histograms.c
> @@ -479,10 +479,16 @@ static int get_entry(struct traceeval *teval, const struct traceeval_data *keys,
> struct hash_item *item;
> unsigned key;
> int check = 0;
> + int i;
>
> if (!teval || !keys)
> return -1;
>
> + for (i = 0; i < teval->nr_key_types; i++) {
> + if (keys[i].type != teval->key_types[i].type)
> + return -1;
> + }
> +
> key = make_hash(teval, keys, hist->bits);
>
> for (iter = hash_iter_bucket(hist, key); (item = hash_iter_bucket_next(iter)); ) {
> @@ -928,10 +934,16 @@ int traceeval_insert(struct traceeval *teval,
> {
> struct entry *entry;
> int check;
> + int i;
>
> entry = NULL;
> check = get_entry(teval, keys, &entry);
>
> + for (i = 0; i < teval->nr_val_types; i++) {
> + if (vals[i].type != teval->val_types[i].type)
> + return -1;
> + }
I think we should have a similar type check in the update path, so do all the
checks in a loop like this in update_entry(), or we can check each entry
individually in copy_traceeval_data().
That will make sure we don't update an entry with mismatched typed values.
> +
> if (check == -1)
> return check;
>
> --
> 2.40.1
>
next prev parent reply other threads:[~2023-08-24 21:24 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-17 22:24 [PATCH 0/9] libtraceeval: Even more updates! Steven Rostedt
2023-08-17 22:24 ` [PATCH 1/9] libtraceeval: Add check for updates to know to recreate iter array Steven Rostedt
2023-08-24 19:41 ` Ross Zwisler
2023-08-17 22:24 ` [PATCH 2/9] libtraceeval: Add traceeval_iterator_query() Steven Rostedt
2023-08-17 22:50 ` Steven Rostedt
2023-08-20 18:18 ` Stevie Alvarez
2023-08-21 14:33 ` Steven Rostedt
2023-08-24 19:57 ` Ross Zwisler
2023-08-17 22:24 ` [PATCH 3/9] libtraceeval: Add traceeval_iterator_stat() Steven Rostedt
2023-08-24 20:07 ` Ross Zwisler
2023-08-17 22:24 ` [PATCH 4/9] libtraceeval: Add traceeval_iterator_remove() Steven Rostedt
2023-08-24 20:19 ` Ross Zwisler
2023-08-24 20:23 ` Ross Zwisler
2023-09-27 9:51 ` Steven Rostedt
2023-09-27 9:09 ` Steven Rostedt
2023-08-17 22:24 ` [PATCH 5/9] libtraceeval histogram: Add type to traceeval_data and make it a structure Steven Rostedt
2023-08-24 21:09 ` Ross Zwisler
2023-08-17 22:24 ` [PATCH 6/9] libtraceveal: Add type checks to traceeval_data vals and keys Steven Rostedt
2023-08-24 21:23 ` Ross Zwisler [this message]
2023-08-17 22:24 ` [PATCH 7/9] libtraceeval: Add size checks to insert and query functions Steven Rostedt
2023-08-17 22:39 ` Steven Rostedt
2023-08-17 22:24 ` [PATCH 8/9] libtraceeval: Add checks to traceeval_insert() and query() Steven Rostedt
2023-08-24 21:36 ` Ross Zwisler
2023-08-17 22:24 ` [PATCH 9/9] libtraceeval: Only do stats on values marked with the STAT flag Steven Rostedt
2023-08-24 22:02 ` Ross Zwisler
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=20230824212336.GG110858@google.com \
--to=zwisler@google.com \
--cc=linux-trace-devel@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=stevie.6strings@gmail.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
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.