Re: [PATCH bpf-next v7 4/6] selftests/bpf: Adjust veristat stack depth parsing

Eduard Zingerman <[email protected]>
Newsgroups org.kernel.vger.bpf
Message-ID <[email protected]>
On Sat, 2026-08-08 at 08:25 +0200, Kumar Kartikeya Dwivedi wrote:
> The verifier now reports instruction and stack depth statistics using
> uniform "subprog <id> (<name>) <kind>" records. Subprogram 0 is classified
> as main, while other records are global or static. Each record carries
> insns_self, insns_total, and stack depth.
> 
> Teach veristat to parse the new records while retaining support for the
> legacy one-line stack depth format used by older kernels. Skip both
> instruction counts and match only through the stack value so fields can
> still be appended without breaking parsing.
> 
> Increase the bounded backward scan so it can include all 256 per-subprogram
> records.
> 
> Zero-initialize the legacy stack buffer because logs using the new format do
> not populate it before the trailing tokenizer loop. This makes the loop see
> an empty string instead of reading uninitialized data.
> 
> Signed-off-by: Kumar Kartikeya Dwivedi <[email protected]>
> ---

Acked-by: Eduard Zingerman <[email protected]>

> @@ -1025,11 +1027,17 @@ static int parse_verif_log(char * const buf, size_t buf_sz, struct verif_stats *
>  				&s->stats[MARK_READ_MAX_LEN]))
>  			continue;
>  
> +		if (sscanf(cur, "stack depth max %ld", &s->stats[MAX_STACK]) == 1)
> +			continue;
> +		if (sscanf(cur, "subprog %*d %*s %*s insns_self %*d insns_total %*d stack %ld", &sub_stack) == 1) {
> +			s->stats[STACK] += sub_stack;
> +			continue;
> +		}

Nit: a comment about why two different formats are matched would be helpful.

>  		if (2 == sscanf(cur, "stack depth %511s max %ld", stack, &s->stats[MAX_STACK]))
>  			continue;
>  	}
>  	while ((token = strtok_r(cnt++ ? NULL : stack, "+", &state))) {
> -		if (sscanf(token, "%d", &sub_stack) == 0)
> +		if (sscanf(token, "%ld", &sub_stack) == 0)
>  			break;
>  		s->stats[STACK] += sub_stack;
>  	}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.