[lvc-project] [PATCH 6.1 1/2] bpf: Refactor stack map trace depth calculation into helper function

Fedor Pchelkin pchelkin at ispras.ru
Tue Jul 28 12:40:03 MSK 2026


On Fri, 17. Jul 16:35, Votokina Victoria wrote:
> From: Victoria Votokina <Victoria.Votokina at kaspersky.com>
> 

Строка выше не должна попадать в тело патча, раньше уже сталкивались с
этим.  Проблема в том что настоящий почтовый From и то, что в
~/.gitconfig, у вас отличаются порядком имени и фамилии.

> @@ -425,26 +444,22 @@ static long __bpf_get_stack(struct pt_regs *regs, struct task_struct *task,
>  		goto clear;
>  	}
>  
> -	num_elem = size / elem_size;
> -	max_depth = num_elem + skip;
> -	if (sysctl_perf_event_max_stack < max_depth)
> -		max_depth = sysctl_perf_event_max_stack;
> +	max_depth = stack_map_calculate_max_depth(size, elem_size, flags);
>  
> -	if (trace_in)
> +	if (trace_in) {
>  		trace = trace_in;
> -	else if (kernel && task)
> +		trace->nr = min_t(u32, trace->nr, max_depth);
> +	} else if (kernel && task) {
>  		trace = get_callchain_entry_for_task(task, max_depth);
> -	else
> +	} else {
>  		trace = get_perf_callchain(regs, 0, kernel, user, max_depth,
>  					   crosstask, false);
> -	if (unlikely(!trace))
> -		goto err_fault;
> +	}

Апстримный патч не убирает проверку и обработку нулевого trace.

>  
>  	if (trace->nr < skip)
>  		goto err_fault;
>  
>  	trace_nr = trace->nr - skip;
> -	trace_nr = (trace_nr <= num_elem) ? trace_nr : num_elem;
>  	copy_len = trace_nr * elem_size;
>  
>  	ips = trace->ip + skip;
> -- 
> 2.43.0



More information about the lvc-project mailing list