[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK6rUAMuYTUhqcGmDrmeEWnigy3X4OxNb4zmHc0TmcVJ79MyHg@mail.gmail.com>
Date: Mon, 26 Jun 2023 23:36:28 +0500
From: Osama Muhammad <osmtendev@...il.com>
To: Shuah Khan <skhan@...uxfoundation.org>
Cc: shuah@...nel.org, linux-kernel@...r.kernel.org,
linux-kselftest@...r.kernel.org
Subject: Re: [PATCH v2] selftests: prctl: Add new prctl test for PR_SET_NAME
Hi Shuah,
Any feedback on this patch?.
Thanks,
Osama
On Sat, 17 Jun 2023 at 18:01, Osama Muhammad <osmtendev@...il.com> wrote:
>
> 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@...uxfoundation.org> 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
> >
> >
Powered by blists - more mailing lists