Re: [PATCH dwarves] btf_encoder: Fix dwarf int type with greater-than-16 byte issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 24/04/2024 23:35, Yonghong Song wrote:
> Nick Desaulniers and Xin Liu separately reported that int type might
> have greater-than-16 byte size ([1] and [2]). More specifically, the
> reported int type sizes are 1024 and 64 bytes.
> 
> The libbpf and bpf program does not really support any int type greater
> than 16 bytes. Therefore, with current pahole, btf encoding will fail
> with greater-than-16 byte int types.
> 
> Since for now bpf does not support '> 16' bytes int type, the simplest
> way is to sanitize such types, similar to existing conditions like
> '!byte_sz' and 'byte_sz & (byte_sz - 1)'. This way, pahole won't
> call libbpf with an unsupported int type size. The patch [3] was
> proposed before. Now I resubmitted this patch as there are another
> failure due to the same issue.
> 
>   [1] https://github.com/libbpf/libbpf/pull/680
>   [2] https://lore.kernel.org/bpf/20240422144538.351722-1-liuxin350@xxxxxxxxxx/
>   [3] https://lore.kernel.org/bpf/20230426055030.3743074-1-yhs@xxxxxx/
> 
> Cc: Xin Liu <liuxin350@xxxxxxxxxx>
> Cc: Alan Maguire <alan.maguire@xxxxxxxxxx>
> Signed-off-by: Yonghong Song <yonghong.song@xxxxxxxxx>

Reviewed-by: Alan Maguire <alan.maguire@xxxxxxxxxx>

> ---
>  btf_encoder.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/btf_encoder.c b/btf_encoder.c
> index e1e3529..19e9d90 100644
> --- a/btf_encoder.c
> +++ b/btf_encoder.c
> @@ -393,7 +393,7 @@ static int32_t btf_encoder__add_base_type(struct btf_encoder *encoder, const str
>  	 * these non-regular int types to avoid libbpf/kernel complaints.
>  	 */
>  	byte_sz = BITS_ROUNDUP_BYTES(bt->bit_size);
> -	if (!byte_sz || (byte_sz & (byte_sz - 1))) {
> +	if (!byte_sz || (byte_sz & (byte_sz - 1)) || byte_sz > 16) {
>  		name = "__SANITIZED_FAKE_INT__";
>  		byte_sz = 4;
>  	}




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux