Re: [PATCH v2 1/3] tracing: Change STR_VAR_MAX_LEN

From: Axel Rasmussen
Date: Wed Sep 30 2020 - 18:46:00 EST


I still get the same WARN_ON behavior when trying to use bpftrace.
But, I spent some time today reading through that call path, and at
this point I'm convinced that it's the version of bpftrace I'm using
which is slightly broken, not the kernel in this case. (To be fair,
I'm trying to use some unreleased tip-of-tree version of it, with some
not-yet-merged patches, and some extra hacks on top of all that, so
it's not particularly surprising...)

In my experiments with just the synthetic event + histogram triggers,
this patchset works as expected for my use case.

So (for the whole series, not just this one patch):

Tested-by: Axel Rasmussen <axelrasmussen@xxxxxxxxxx>

On Wed, Sep 30, 2020 at 11:41 AM Tom Zanussi <zanussi@xxxxxxxxxx> wrote:
>
> 32 is too small for this value, and anyway it makes more sense to use
> MAX_FILTER_STR_VAL, as this is also the value used for variable-length
> __strings.
>
> Signed-off-by: Tom Zanussi <zanussi@xxxxxxxxxx>
> ---
> kernel/trace/trace_synth.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/trace/trace_synth.h b/kernel/trace/trace_synth.h
> index ac35c45207c4..5166705d1556 100644
> --- a/kernel/trace/trace_synth.h
> +++ b/kernel/trace/trace_synth.h
> @@ -7,7 +7,7 @@
> #define SYNTH_SYSTEM "synthetic"
> #define SYNTH_FIELDS_MAX 32
>
> -#define STR_VAR_LEN_MAX 32 /* must be multiple of sizeof(u64) */
> +#define STR_VAR_LEN_MAX MAX_FILTER_STR_VAL /* must be multiple of sizeof(u64) */
>
> struct synth_field {
> char *type;
> --
> 2.17.1
>