On Tue, May 20, 2025 at 1:23 AM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > On Tue, May 20, 2025 at 02:47:07PM +0800, Tiezhu Yang wrote: > > When executing the bcc script, there exists the following error > > on LoongArch and x86_64: > > NOTABUG. You can't require array sizes to contain no arithmetics, > including sizeof(). Well, you can, but don't expect your requests > to be satisfied. > > > How to reproduce: > > > > git clone https://github.com/iovisor/bcc.git > > mkdir bcc/build; cd bcc/build > > cmake .. > > make > > sudo make install > > sudo /usr/share/bcc/tools/filetop > > So fix the script. Or report it to whoever wrote it, if it's > not yours. +1 > I'm sorry, but we are NOT going to accomodate random parsers > poking inside the kernel-internal headers and failing to > actually parse the language they are written in. > > If you want to exfiltrate a constant, do what e.g. asm-offsets is > doing. Take a look at e.g. arch/loongarch/kernel/asm-offsets.c > and check what ends up in include/generated/asm-offsets.h - the > latter is entirely produced out of the former. > > The trick is to have inline asm that would spew a recognizable > line when compiled into assembler, with the value(s) you want > substituted into it. See include/linux/kbuild.h for the macros. > > Then you pick these lines out of generated your_file.s - no need > to use python, sed(1) will do just fine. See filechk_offsets in > scripts/Makefile.lib for that part. None of it is necessary. Tiezhu, bcc's tools/filetop.py is really old and obsolete. It's not worth fixing. I'd delete it. Use bcc's libbpf-tools/filetop instead.