Re: ERROR: INT DW_ATE_unsigned_1 Error emitting BTF type

From: Yonghong Song
Date: Fri Feb 05 2021 - 16:58:28 EST




On 2/5/21 12:31 PM, Sedat Dilek wrote:
On Fri, Feb 5, 2021 at 9:03 PM Yonghong Song <yhs@xxxxxx> wrote:



On 2/5/21 11:24 AM, Arnaldo Carvalho de Melo wrote:
Em Fri, Feb 05, 2021 at 11:10:08AM -0800, Yonghong Song escreveu:
On 2/5/21 11:06 AM, Sedat Dilek wrote:
On Fri, Feb 5, 2021 at 7:53 PM Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
Grepping through linux.git/tools I guess some BTF tools/libs need to
know what BTF_INT_UNSIGNED is?

BTF_INT_UNSIGNED needs kernel support. Maybe to teach pahole to
ignore this for now until kernel infrastructure is ready.

Yeah, I thought about doing that.

Not sure whether this information will be useful or not
for BTF. This needs to be discussed separately.

Maybe search for the rationale for its introduction in DWARF.

In LLVM, we have:
uint8_t BTFEncoding;
switch (Encoding) {
case dwarf::DW_ATE_boolean:
BTFEncoding = BTF::INT_BOOL;
break;
case dwarf::DW_ATE_signed:
case dwarf::DW_ATE_signed_char:
BTFEncoding = BTF::INT_SIGNED;
break;
case dwarf::DW_ATE_unsigned:
case dwarf::DW_ATE_unsigned_char:
BTFEncoding = 0;
break;

I think DW_ATE_unsigned can be ignored in pahole since
the default encoding = 0. A simple comment is enough.


Yonghong Son, do you have a patch/diff for me?

Looking at error message from log:

LLVM_OBJCOPY=/opt/binutils/bin/objcopy /opt/pahole/bin/pahole -J
.tmp_vmlinux.btf
[115] INT DW_ATE_unsigned_1 Error emitting BTF type
Encountered error while encoding BTF.

Not exactly what is the root cause. Maybe bt->bit_size is not
encoded correctly. Could you put vmlinux (in the above it is
.tmp_vmlinux.btf) somewhere, I or somebody else can investigate
and provide a proper fix.

Thanks.

- Sedat -