Hi, Yes, I did install the latest kernel headers and TASK_COMM_LEN is not accessible in userspace. I looked into the test which uses TASK_COMM_LEN but the test defines it in its own header file. Example: https://elixir.bootlin.com/linux/latest/source/tools/testing/selftests/bpf/progs/pyperf.h#L13 TASK_COMM_LEN is defined in include/linux/sched.h, but this header file is not exposed to userspace. TASK_COMM_LEN is not defined in /include/uapi/linux/sched.h which is exposed to userspace kernel headers. Please find the link to the header file exposed to user space :- -https://elixir.bootlin.com/linux/v5.15.116/source/include/uapi/linux/sched.h As for arm64/abi/tpidr2.c It includes linux/sched.h which will be /include/uapi/linux/sched.h because the user space program is including it. So it also cannot use TASK_COMM_LEN directly. Regards, Osama On Tue, 13 Jun 2023 at 02:56, Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> wrote: > > On 6/10/23 07:01, Osama Muhammad wrote: > > Hi all, > > > > I looked into it and tried to use TASK_COMM_LEN in the test. Even > > though I included "linux/sched.h '', I was not able to compile the > > test because it couldn't find it in the header file. > > I dived deep into the issue and turns out header file mapped in > > /usr/include/linux/sched.h is actually mapped to > > /include/uapi/linux/sched.h[1] in linux source, > > where TASK_COMM_LEN is not even defined. Instead TASK_COMM_LEN is > > defined in /include/linux/sched.h which is not mapped to any header > > files in > > userspace(/(/usr/include/linux). > > I also tried to find the TASK_COM_LEN in /usr/include/linux/ but I > > couldn't find it. Following are the search results. > > grep -rnw '/usr/include/linux/' -e 'TASK_COMM_LEN" > > RESULTS OF COMMAND :- /usr/include/linux/taskstats.h:38:#define > > TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN > > Based on this information, I have two questions: > > 1. Would this require a fix to move 'TASK_COMM_LEN' macro from > > /include/linux/sched.h to UAPI headers /include/uapi/linux/sched.h. > > 2. Is there any other way to access TASK_COMM_LEN in the selftest that > > I'm not aware of? > > > > [1]:-https://elixir.bootlin.com/linux/v5.15.116/source/include/uapi/linux/sched.h > > > > The best source is Linux mainline. > > Take a look at test files that include linux/sched.h > > arm64/abi/tpidr2.c is one of them. > > Did you install headers before compiling the test? > make headers_install > > thanks, > -- Shuah > >