Message ID | 1542169930-24118-1-git-send-email-firoz.khan@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | sh: system call table generation support | expand |
On Wed, 14 Nov 2018 at 10:02, Firoz Khan <firoz.khan@linaro.org> wrote: > > The purpose of this patch series is, we can easily > add/modify/delete system call table support by cha- > nging entry in syscall.tbl file instead of manually > changing many files. The other goal is to unify the > system call table generation support implementation > across all the architectures. > > The system call tables are in different format in > all architecture. It will be difficult to manually > add, modify or delete the system calls in the resp- > ective files manually. To make it easy by keeping a > script and which'll generate uapi header file and > syscall table file. > > syscall.tbl contains the list of available system > calls along with system call number and correspond- > ing entry point. Add a new system call in this arch- > itecture will be possible by adding new entry in > the syscall.tbl file. > > Adding a new table entry consisting of: > - System call number. > - ABI. > - System call name. > - Entry point name. > > Please note, this support is only available for 32-bit > kernel, not 64-bit kernel. As I came across the 64-bit > kernel is not active for long time. > > ARM, s390 and x86 architecuture does exist the sim- > ilar support. I leverage their implementation to come > up with a generic solution. > > I have done the same support for work for alpha, ia64, > m68k, microblaze, mips, parisc, powerpc, sparc, and > xtensa. Below mentioned git repository contains more > details about the workflow. > > https://github.com/frzkhn/system_call_table_generator/ > > Finally, this is the ground work to solve the Y2038 > issue. We need to add two dozen of system calls to solve > Y2038 issue. So this patch series will help to add new > system calls easily by adding new entry in the syscall- > .tbl. > > Changes since v2: > - changed from generic-y to generated-y in Kbuild. > > Changes since v1: > - optimized/updated the syscall table generation > scripts. > - fixed all mixed indentation issues in syscall.tbl. > - added "comments" in syscall.tbl. > > Firoz Khan (3): > sh: add __NR_syscalls along with NR_syscalls > sh: add system call table generation support > sh: generate uapi header and syscall table header files Gentle reminder! Could someone review this patch series. I haven't received any feedback till now. FYI, this support is only available for 32-bit kernel, not 64-bit kernel. As I came across the 64-bit kernel is not active for long time. Thanks Firoz > > arch/sh/Makefile | 3 + > arch/sh/include/asm/Kbuild | 1 + > arch/sh/include/asm/unistd.h | 2 + > arch/sh/include/uapi/asm/Kbuild | 1 + > arch/sh/include/uapi/asm/unistd_32.h | 4 +- > arch/sh/include/uapi/asm/unistd_64.h | 4 +- > arch/sh/kernel/syscalls/Makefile | 38 ++++ > arch/sh/kernel/syscalls/syscall.tbl | 392 ++++++++++++++++++++++++++++++++++ > arch/sh/kernel/syscalls/syscallhdr.sh | 36 ++++ > arch/sh/kernel/syscalls/syscalltbl.sh | 32 +++ > arch/sh/kernel/syscalls_32.S | 387 +-------------------------------- > 11 files changed, 514 insertions(+), 386 deletions(-) > create mode 100644 arch/sh/kernel/syscalls/Makefile > create mode 100644 arch/sh/kernel/syscalls/syscall.tbl > create mode 100644 arch/sh/kernel/syscalls/syscallhdr.sh > create mode 100644 arch/sh/kernel/syscalls/syscalltbl.sh > > -- > 1.9.1 >
On 11/13/18 10:32 PM, Firoz Khan wrote: > The purpose of this patch series is, we can easily > add/modify/delete system call table support by cha- > nging entry in syscall.tbl file instead of manually > changing many files. The other goal is to unify the > system call table generation support implementation > across all the architectures. I applied the patch in https://github.com/landley/mkroot and the result booted under qemu-system-sh4, seems to work fine. Network's fine, it can read a block device, etc. Acked-and-or-tested-by: Rob Landley <rob@landley.net> I assume that this is just git du jour and not your patch: WARNING: CPU: 0 PID: 1 at mm/slub.c:2448 ___slab_alloc.constprop.34+0x196/0x288 CPU: 0 PID: 1 Comm: swapper Not tainted 4.20.0-rc3 #1 PC is at ___slab_alloc.constprop.34+0x196/0x288 PR is at __slab_alloc.constprop.33+0x2a/0x4c PC : 8c09d09a SP : 8f829ea0 SR : 400080f0 TEA : c0001240 R0 : 8c09cf04 R1 : 8c01cbec R2 : 00000000 R3 : 00000000 R4 : 8f8020a0 R5 : 006080c0 R6 : 8c01d74a R7 : 8fff5180 R8 : 8c011a40 R9 : 8fff5180 R10 : 8f8020a0 R11 : 00008000 R12 : 8c01d74a R13 : 006080c0 R14 : 8f80211c MACH: 0000008e MACL: 0ae4849d GBR : 00000000 PR : 8c09d1b6 Call trace: [<(ptrval)>] arch_local_irq_restore+0x0/0x24 [<(ptrval)>] __slab_alloc.constprop.33+0x2a/0x4c [<(ptrval)>] arch_local_save_flags+0x0/0x8 [<(ptrval)>] arch_local_irq_restore+0x0/0x24 [<(ptrval)>] mm_init.isra.6+0xca/0x120 [<(ptrval)>] kmem_cache_alloc+0x9a/0xf4 [<(ptrval)>] mm_init.isra.6+0xca/0x120 [<(ptrval)>] arch_local_irq_restore+0x0/0x24 [<(ptrval)>] kmem_cache_alloc+0x9a/0xf4 [<(ptrval)>] mm_alloc+0xe/0x48 [<(ptrval)>] mm_init.isra.6+0xca/0x120 [<(ptrval)>] memset+0x0/0x8c [<(ptrval)>] __do_execve_file+0x1de/0x574 [<(ptrval)>] getname_kernel+0x1e/0xc8 [<(ptrval)>] kmem_cache_alloc+0x0/0xf4 [<(ptrval)>] do_execve+0x16/0x24 [<(ptrval)>] arch_local_save_flags+0x0/0x8 [<(ptrval)>] arch_local_irq_restore+0x0/0x24 [<(ptrval)>] printk+0x0/0x24 [<(ptrval)>] kernel_init+0x34/0xec [<(ptrval)>] ret_from_kernel_thread+0xc/0x14 [<(ptrval)>] schedule_tail+0x0/0x58 [<(ptrval)>] kernel_init+0x0/0xec ---[ end trace 6e84d1e05051e55d ]---
On Mon, Nov 19, 2018 at 6:26 AM Rob Landley <rob@landley.net> wrote: > On 11/13/18 10:32 PM, Firoz Khan wrote: > > The purpose of this patch series is, we can easily > > add/modify/delete system call table support by cha- > > nging entry in syscall.tbl file instead of manually > > changing many files. The other goal is to unify the > > system call table generation support implementation > > across all the architectures. > > I applied the patch in https://github.com/landley/mkroot and the result booted > under qemu-system-sh4, seems to work fine. Network's fine, it can read a block > device, etc. > > Acked-and-or-tested-by: Rob Landley <rob@landley.net> > > I assume that this is just git du jour and not your patch: > > WARNING: CPU: 0 PID: 1 at mm/slub.c:2448 ___slab_alloc.constprop.34+0x196/0x288 https://patchwork.kernel.org/patch/10549883/ Gr{oetje,eeting}s, Geert
On 11/19/18 2:08 AM, Geert Uytterhoeven wrote: > On Mon, Nov 19, 2018 at 6:26 AM Rob Landley <rob@landley.net> wrote: >> WARNING: CPU: 0 PID: 1 at mm/slub.c:2448 ___slab_alloc.constprop.34+0x196/0x288 > > https://patchwork.kernel.org/patch/10549883/ Given that Sato-san is co-maintainer of arch/sh and that was posted in July, why is it not upstream yet? Rob
On Mon, Nov 19, 2018 at 10:38:20AM +0530, Firoz Khan wrote: > On Wed, 14 Nov 2018 at 10:02, Firoz Khan <firoz.khan@linaro.org> wrote: > > > > The purpose of this patch series is, we can easily > > add/modify/delete system call table support by cha- > > nging entry in syscall.tbl file instead of manually > > changing many files. The other goal is to unify the > > system call table generation support implementation > > across all the architectures. > > > > The system call tables are in different format in > > all architecture. It will be difficult to manually > > add, modify or delete the system calls in the resp- > > ective files manually. To make it easy by keeping a > > script and which'll generate uapi header file and > > syscall table file. > > > > syscall.tbl contains the list of available system > > calls along with system call number and correspond- > > ing entry point. Add a new system call in this arch- > > itecture will be possible by adding new entry in > > the syscall.tbl file. > > > > Adding a new table entry consisting of: > > - System call number. > > - ABI. > > - System call name. > > - Entry point name. > > > > Please note, this support is only available for 32-bit > > kernel, not 64-bit kernel. As I came across the 64-bit > > kernel is not active for long time. > > > > ARM, s390 and x86 architecuture does exist the sim- > > ilar support. I leverage their implementation to come > > up with a generic solution. > > > > I have done the same support for work for alpha, ia64, > > m68k, microblaze, mips, parisc, powerpc, sparc, and > > xtensa. Below mentioned git repository contains more > > details about the workflow. > > > > https://github.com/frzkhn/system_call_table_generator/ > > > > Finally, this is the ground work to solve the Y2038 > > issue. We need to add two dozen of system calls to solve > > Y2038 issue. So this patch series will help to add new > > system calls easily by adding new entry in the syscall- > > .tbl. > > > > Changes since v2: > > - changed from generic-y to generated-y in Kbuild. > > > > Changes since v1: > > - optimized/updated the syscall table generation > > scripts. > > - fixed all mixed indentation issues in syscall.tbl. > > - added "comments" in syscall.tbl. > > > > Firoz Khan (3): > > sh: add __NR_syscalls along with NR_syscalls > > sh: add system call table generation support > > sh: generate uapi header and syscall table header files > > Gentle reminder! > > Could someone review this patch series. I haven't received any > feedback till now. I'm way behind, but fine with it going upstream via whatever tree is appropriate. I think Arnd will take care of it. Acked-by: Rich Felker <dalias@libc.org> > FYI, this support is only available for 32-bit kernel, not 64-bit > kernel. As I came across the 64-bit kernel is not active for long time. Support for 64-bit, which AFAIK barely ever existed in hardware, was removed from GCC a long time ago. At some point it needs to be removed from the kernel too, and doing so should allow a lot of cleanup. Rich