* Re: [PATCH 05/10] tools headers: Update the syscall table with the kernel sources [not found] ` <95c9bd53-ccef-4a34-b6d2-7203df84db01@linaro.org> @ 2025-04-23 9:24 ` Jon Hunter 2025-04-23 14:57 ` James Clark 0 siblings, 1 reply; 3+ messages in thread From: Jon Hunter @ 2025-04-23 9:24 UTC (permalink / raw) To: James Clark, Namhyung Kim, Arnd Bergmann Cc: Jiri Olsa, Adrian Hunter, Peter Zijlstra, Ingo Molnar, LKML, linux-perf-users, linux-arch, Arnaldo Carvalho de Melo, Ian Rogers, Kan Liang, linux-tegra@vger.kernel.org On 16/04/2025 14:26, James Clark wrote: > > > On 14/04/2025 5:28 pm, James Clark wrote: >> >> >> On 10/04/2025 1:11 am, Namhyung Kim wrote: >>> To pick up the changes in: >>> >>> c4a16820d9019940 fs: add open_tree_attr() >>> 2df1ad0d25803399 x86/arch_prctl: Simplify sys_arch_prctl() >>> e632bca07c8eef1d arm64: generate 64-bit syscall.tbl >>> >>> This is basically to support the new open_tree_attr syscall. But it >>> also needs to update asm-generic unistd.h header to get the new syscall >>> number. And arm64 unistd.h header was converted to use the generic >>> 64-bit header. >>> >>> Addressing this perf tools build warning: >>> >>> Warning: Kernel ABI header differences: >>> diff -u tools/scripts/syscall.tbl scripts/syscall.tbl >>> diff -u tools/perf/arch/x86/entry/syscalls/syscall_32.tbl arch/ >>> x86/entry/syscalls/syscall_32.tbl >>> diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/ >>> x86/entry/syscalls/syscall_64.tbl >>> diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/ >>> powerpc/kernel/syscalls/syscall.tbl >>> diff -u tools/perf/arch/s390/entry/syscalls/syscall.tbl arch/ >>> s390/kernel/syscalls/syscall.tbl >>> diff -u tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl >>> arch/ mips/kernel/syscalls/syscall_n64.tbl >>> diff -u tools/perf/arch/arm/entry/syscalls/syscall.tbl arch/arm/ >>> tools/syscall.tbl >>> diff -u tools/perf/arch/sh/entry/syscalls/syscall.tbl arch/sh/ >>> kernel/syscalls/syscall.tbl >>> diff -u tools/perf/arch/sparc/entry/syscalls/syscall.tbl arch/ >>> sparc/kernel/syscalls/syscall.tbl >>> diff -u tools/perf/arch/xtensa/entry/syscalls/syscall.tbl arch/ >>> xtensa/kernel/syscalls/syscall.tbl >>> diff -u tools/arch/arm64/include/uapi/asm/unistd.h arch/arm64/ >>> include/uapi/asm/unistd.h >>> diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/ >>> asm- generic/unistd.h >>> >>> Please see tools/include/uapi/README for further details. >>> >>> Cc: linux-arch@vger.kernel.org >>> Signed-off-by: Namhyung Kim <namhyung@kernel.org> >>> --- >>> tools/arch/arm64/include/uapi/asm/unistd.h | 24 +------------------ >>> tools/include/uapi/asm-generic/unistd.h | 4 +++- >>> .../perf/arch/arm/entry/syscalls/syscall.tbl | 1 + >>> .../arch/mips/entry/syscalls/syscall_n64.tbl | 1 + >>> .../arch/powerpc/entry/syscalls/syscall.tbl | 1 + >>> .../perf/arch/s390/entry/syscalls/syscall.tbl | 1 + >>> tools/perf/arch/sh/entry/syscalls/syscall.tbl | 1 + >>> .../arch/sparc/entry/syscalls/syscall.tbl | 1 + >>> .../arch/x86/entry/syscalls/syscall_32.tbl | 3 ++- >>> .../arch/x86/entry/syscalls/syscall_64.tbl | 1 + >>> .../arch/xtensa/entry/syscalls/syscall.tbl | 1 + >>> tools/scripts/syscall.tbl | 1 + >>> 12 files changed, 15 insertions(+), 25 deletions(-) >>> >>> diff --git a/tools/arch/arm64/include/uapi/asm/unistd.h b/tools/arch/ >>> arm64/include/uapi/asm/unistd.h >>> index 9306726337fe005e..df36f23876e863ff 100644 >>> --- a/tools/arch/arm64/include/uapi/asm/unistd.h >>> +++ b/tools/arch/arm64/include/uapi/asm/unistd.h >>> @@ -1,24 +1,2 @@ >>> /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ >>> -/* >>> - * Copyright (C) 2012 ARM Ltd. >>> - * >>> - * This program is free software; you can redistribute it and/or modify >>> - * it under the terms of the GNU General Public License version 2 as >>> - * published by the Free Software Foundation. >>> - * >>> - * This program is distributed in the hope that it will be useful, >>> - * but WITHOUT ANY WARRANTY; without even the implied warranty of >>> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >>> - * GNU General Public License for more details. >>> - * >>> - * You should have received a copy of the GNU General Public License >>> - * along with this program. If not, see <http://www.gnu.org/ >>> licenses/>. >>> - */ >>> - >>> -#define __ARCH_WANT_RENAMEAT >>> -#define __ARCH_WANT_NEW_STAT >>> -#define __ARCH_WANT_SET_GET_RLIMIT >>> -#define __ARCH_WANT_TIME32_SYSCALLS >>> -#define __ARCH_WANT_MEMFD_SECRET >>> - >>> -#include <asm-generic/unistd.h> >>> +#include <asm/unistd_64.h> >> >> Hi Namhyung, >> >> Since we're not including the generic syscalls here anymore we now >> need to generate the syscall header file for the Perf build to work >> (build error pasted at the end for reference). >> >> I had a go at adding the rule for it, but I saw that we'd need to pull >> in quite a bit from the kernel so it was blurring the lines about the >> separation of the tools/ folder. For example this file has the arm64 >> defs: >> >> arch/arm64/kernel/Makefile.syscalls >> >> To make this common part of the makefile work: >> >> scripts/Makefile.asm-headers >> >> Maybe we can just copy or reimplement Makefile.syscalls, but I'm not >> even sure if Makefile.asm-headers will work with the tools/ build >> structure so maybe that has to be re-implemented too. Adding Arnd to >> see what he thinks. >> >> As far as I can tell this is a separate issue to the work that Charlie >> and Ian did recently to build all arch's syscall numbers into Perf to >> use for reporting, as this is requires a single header for the build. >> >> Thanks >> James >> >> --- >> >> In file included from /usr/include/aarch64-linux-gnu/sys/syscall.h:24, >> from evsel.c:4: >> /home/jamcla02/workspace/linux/linux/tools/arch/arm64/include/uapi/ >> asm/ unistd.h:2:10: fatal error: asm/unistd_64.h: No such file or >> directory >> 2 | #include <asm/unistd_64.h> >> | ^~~~~~~~~~~~~~~~~ >> >> >> > > Hmmm I see this was also mentioned a while ago here [1]. Maybe I can > have another go at adding the makerule to generate the file. I'll > probably start by including as much as possible from the existing make > rules from the kernel side. I think something similar was already done > for generating the sysreg defs in commit 02e85f74668e ("tools: arm64: > Add a Makefile for generating sysreg-defs.h") > > > [1]: https://lore.kernel.org/lkml/ZrO5HR9x2xyPKttx@google.com/T/ > #m269c1d3c64e3e0c96f45102d358d9583c69b722f FWIW I am seeing this build issue too on ARM64 and these changes have now landed in the mainline :-( So would be great to get this fixed or reverted. Jon -- nvpublic ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 05/10] tools headers: Update the syscall table with the kernel sources 2025-04-23 9:24 ` [PATCH 05/10] tools headers: Update the syscall table with the kernel sources Jon Hunter @ 2025-04-23 14:57 ` James Clark 2025-04-24 7:33 ` Jon Hunter 0 siblings, 1 reply; 3+ messages in thread From: James Clark @ 2025-04-23 14:57 UTC (permalink / raw) To: Jon Hunter, Namhyung Kim, Arnd Bergmann Cc: Jiri Olsa, Adrian Hunter, Peter Zijlstra, Ingo Molnar, LKML, linux-perf-users, linux-arch, Arnaldo Carvalho de Melo, Ian Rogers, Kan Liang, linux-tegra@vger.kernel.org On 23/04/2025 10:24 am, Jon Hunter wrote: > > On 16/04/2025 14:26, James Clark wrote: >> >> >> On 14/04/2025 5:28 pm, James Clark wrote: >>> >>> >>> On 10/04/2025 1:11 am, Namhyung Kim wrote: >>>> To pick up the changes in: >>>> >>>> c4a16820d9019940 fs: add open_tree_attr() >>>> 2df1ad0d25803399 x86/arch_prctl: Simplify sys_arch_prctl() >>>> e632bca07c8eef1d arm64: generate 64-bit syscall.tbl >>>> >>>> This is basically to support the new open_tree_attr syscall. But it >>>> also needs to update asm-generic unistd.h header to get the new syscall >>>> number. And arm64 unistd.h header was converted to use the generic >>>> 64-bit header. >>>> >>>> Addressing this perf tools build warning: >>>> >>>> Warning: Kernel ABI header differences: >>>> diff -u tools/scripts/syscall.tbl scripts/syscall.tbl >>>> diff -u tools/perf/arch/x86/entry/syscalls/syscall_32.tbl arch/ >>>> x86/entry/syscalls/syscall_32.tbl >>>> diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/ >>>> x86/entry/syscalls/syscall_64.tbl >>>> diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl >>>> arch/ powerpc/kernel/syscalls/syscall.tbl >>>> diff -u tools/perf/arch/s390/entry/syscalls/syscall.tbl arch/ >>>> s390/kernel/syscalls/syscall.tbl >>>> diff -u tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl >>>> arch/ mips/kernel/syscalls/syscall_n64.tbl >>>> diff -u tools/perf/arch/arm/entry/syscalls/syscall.tbl arch/ >>>> arm/ tools/syscall.tbl >>>> diff -u tools/perf/arch/sh/entry/syscalls/syscall.tbl arch/sh/ >>>> kernel/syscalls/syscall.tbl >>>> diff -u tools/perf/arch/sparc/entry/syscalls/syscall.tbl arch/ >>>> sparc/kernel/syscalls/syscall.tbl >>>> diff -u tools/perf/arch/xtensa/entry/syscalls/syscall.tbl arch/ >>>> xtensa/kernel/syscalls/syscall.tbl >>>> diff -u tools/arch/arm64/include/uapi/asm/unistd.h arch/arm64/ >>>> include/uapi/asm/unistd.h >>>> diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/ >>>> asm- generic/unistd.h >>>> >>>> Please see tools/include/uapi/README for further details. >>>> >>>> Cc: linux-arch@vger.kernel.org >>>> Signed-off-by: Namhyung Kim <namhyung@kernel.org> >>>> --- >>>> tools/arch/arm64/include/uapi/asm/unistd.h | 24 >>>> +------------------ >>>> tools/include/uapi/asm-generic/unistd.h | 4 +++- >>>> .../perf/arch/arm/entry/syscalls/syscall.tbl | 1 + >>>> .../arch/mips/entry/syscalls/syscall_n64.tbl | 1 + >>>> .../arch/powerpc/entry/syscalls/syscall.tbl | 1 + >>>> .../perf/arch/s390/entry/syscalls/syscall.tbl | 1 + >>>> tools/perf/arch/sh/entry/syscalls/syscall.tbl | 1 + >>>> .../arch/sparc/entry/syscalls/syscall.tbl | 1 + >>>> .../arch/x86/entry/syscalls/syscall_32.tbl | 3 ++- >>>> .../arch/x86/entry/syscalls/syscall_64.tbl | 1 + >>>> .../arch/xtensa/entry/syscalls/syscall.tbl | 1 + >>>> tools/scripts/syscall.tbl | 1 + >>>> 12 files changed, 15 insertions(+), 25 deletions(-) >>>> >>>> diff --git a/tools/arch/arm64/include/uapi/asm/unistd.h b/tools/ >>>> arch/ arm64/include/uapi/asm/unistd.h >>>> index 9306726337fe005e..df36f23876e863ff 100644 >>>> --- a/tools/arch/arm64/include/uapi/asm/unistd.h >>>> +++ b/tools/arch/arm64/include/uapi/asm/unistd.h >>>> @@ -1,24 +1,2 @@ >>>> /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ >>>> -/* >>>> - * Copyright (C) 2012 ARM Ltd. >>>> - * >>>> - * This program is free software; you can redistribute it and/or >>>> modify >>>> - * it under the terms of the GNU General Public License version 2 as >>>> - * published by the Free Software Foundation. >>>> - * >>>> - * This program is distributed in the hope that it will be useful, >>>> - * but WITHOUT ANY WARRANTY; without even the implied warranty of >>>> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >>>> - * GNU General Public License for more details. >>>> - * >>>> - * You should have received a copy of the GNU General Public License >>>> - * along with this program. If not, see <http://www.gnu.org/ >>>> licenses/>. >>>> - */ >>>> - >>>> -#define __ARCH_WANT_RENAMEAT >>>> -#define __ARCH_WANT_NEW_STAT >>>> -#define __ARCH_WANT_SET_GET_RLIMIT >>>> -#define __ARCH_WANT_TIME32_SYSCALLS >>>> -#define __ARCH_WANT_MEMFD_SECRET >>>> - >>>> -#include <asm-generic/unistd.h> >>>> +#include <asm/unistd_64.h> >>> >>> Hi Namhyung, >>> >>> Since we're not including the generic syscalls here anymore we now >>> need to generate the syscall header file for the Perf build to work >>> (build error pasted at the end for reference). >>> >>> I had a go at adding the rule for it, but I saw that we'd need to >>> pull in quite a bit from the kernel so it was blurring the lines >>> about the separation of the tools/ folder. For example this file has >>> the arm64 defs: >>> >>> arch/arm64/kernel/Makefile.syscalls >>> >>> To make this common part of the makefile work: >>> >>> scripts/Makefile.asm-headers >>> >>> Maybe we can just copy or reimplement Makefile.syscalls, but I'm not >>> even sure if Makefile.asm-headers will work with the tools/ build >>> structure so maybe that has to be re-implemented too. Adding Arnd to >>> see what he thinks. >>> >>> As far as I can tell this is a separate issue to the work that >>> Charlie and Ian did recently to build all arch's syscall numbers into >>> Perf to use for reporting, as this is requires a single header for >>> the build. >>> >>> Thanks >>> James >>> >>> --- >>> >>> In file included from /usr/include/aarch64-linux-gnu/sys/syscall.h:24, >>> from evsel.c:4: >>> /home/jamcla02/workspace/linux/linux/tools/arch/arm64/include/uapi/ >>> asm/ unistd.h:2:10: fatal error: asm/unistd_64.h: No such file or >>> directory >>> 2 | #include <asm/unistd_64.h> >>> | ^~~~~~~~~~~~~~~~~ >>> >>> >>> >> >> Hmmm I see this was also mentioned a while ago here [1]. Maybe I can >> have another go at adding the makerule to generate the file. I'll >> probably start by including as much as possible from the existing make >> rules from the kernel side. I think something similar was already done >> for generating the sysreg defs in commit 02e85f74668e ("tools: arm64: >> Add a Makefile for generating sysreg-defs.h") >> >> >> [1]: https://lore.kernel.org/lkml/ZrO5HR9x2xyPKttx@google.com/T/ >> #m269c1d3c64e3e0c96f45102d358d9583c69b722f > > > FWIW I am seeing this build issue too on ARM64 and these changes have > now landed in the mainline :-( > > So would be great to get this fixed or reverted. > > Jon > Hi Jon, I probably should have updated this thread, but the fix is here: https://lore.kernel.org/linux-perf-users/20250417-james-perf-fix-gen-syscall-v1-1-1d268c923901@linaro.org/ Thanks James ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 05/10] tools headers: Update the syscall table with the kernel sources 2025-04-23 14:57 ` James Clark @ 2025-04-24 7:33 ` Jon Hunter 0 siblings, 0 replies; 3+ messages in thread From: Jon Hunter @ 2025-04-24 7:33 UTC (permalink / raw) To: James Clark, Namhyung Kim, Arnd Bergmann Cc: Jiri Olsa, Adrian Hunter, Peter Zijlstra, Ingo Molnar, LKML, linux-perf-users, linux-arch, Arnaldo Carvalho de Melo, Ian Rogers, Kan Liang, linux-tegra@vger.kernel.org On 23/04/2025 15:57, James Clark wrote: ... >> FWIW I am seeing this build issue too on ARM64 and these changes have >> now landed in the mainline :-( >> >> So would be great to get this fixed or reverted. >> >> Jon >> > > Hi Jon, > > I probably should have updated this thread, but the fix is here: > > https://lore.kernel.org/linux-perf-users/20250417-james-perf-fix-gen- > syscall-v1-1-1d268c923901@linaro.org/ Great! Tested-by: Jon Hunter <jonathanh@nvidia.com> Thanks for fixing and sharing! Jon -- nvpublic ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-24 7:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20250410001125.391820-1-namhyung@kernel.org>
[not found] ` <20250410001125.391820-6-namhyung@kernel.org>
[not found] ` <f950fe96-34d3-4631-b04d-4a1584f4c2f1@linaro.org>
[not found] ` <95c9bd53-ccef-4a34-b6d2-7203df84db01@linaro.org>
2025-04-23 9:24 ` [PATCH 05/10] tools headers: Update the syscall table with the kernel sources Jon Hunter
2025-04-23 14:57 ` James Clark
2025-04-24 7:33 ` Jon Hunter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox