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. > For the followers (here: LLVM v12.0.0-rc1): [ llvm/lib/Target/BPF/BTFDebug.cpp ] BTFTypeInt::BTFTypeInt(uint32_t Encoding, uint32_t SizeInBits, uint32_t OffsetInBits, StringRef TypeName) : Name(TypeName) { // Translate IR int encoding to BTF int encoding. 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; default: llvm_unreachable("Unknown BTFTypeInt Encoding"); } - Sedat -