From: houdek.ryan@fex-emu.org To: unlisted-recipients:; (no To-header on input) Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Ryan Houdek <Houdek.Ryan@fex-emu.org> Subject: [PATCH 0/4] arm64: Implement userspace syscall dispatch Date: Sat, 29 May 2021 01:16:16 -0700 [thread overview] Message-ID: <20210529081620.164422-1-Houdek.Ryan@fex-emu.org> (raw) From: Ryan Houdek <Houdek.Ryan@fex-emu.org> arm64: Implement userspace syscall dispatch The first patch moves the userspace dispatch code from the common syscall entry path. This is necessary since arm64 doesn't support the common syscall entry path. The second patch exposes where the sigreturn landing pad location is. The syscall user dispatch code checks this landing pad to see if it should skip invoking the userspace dispatch path. The third patch is where the userspace dispatcher work is hooked up to arm64 syscall dispatcher. Fairly straight forward, adds a new check to the trace enter and exit paths for user dispatch. The fourth patch just updates the selftests to handle aarch64. The sud_bench application shows a consistent 2.3% overhead on my device when testing. Going from 477ns to 488ns per syscall. Ryan Houdek (4): Move userspace syscall dispatch outside of common entry arm64: Track the sigreturn landing pad location arm64: Enable userspace syscall dispatch arm64: tools: Update syscall user dispatch tests arch/Kconfig | 4 ++++ arch/arm64/Kconfig | 1 + arch/arm64/include/asm/syscall.h | 2 ++ arch/arm64/include/asm/thread_info.h | 4 +++- arch/arm64/kernel/ptrace.c | 24 +++++++++++++++++++ arch/arm64/kernel/syscall.c | 9 +++++++ arch/arm64/kernel/vdso/sigreturn.S | 1 + arch/arm64/kernel/vdso/vdso.lds.S | 1 + include/linux/syscall_user_dispatch.h | 4 +++- kernel/entry/Makefile | 3 ++- kernel/entry/common.c | 3 +-- kernel/entry/common.h | 7 ------ kernel/entry/syscall_user_dispatch.c | 2 -- .../syscall_user_dispatch/sud_benchmark.c | 2 +- .../syscall_user_dispatch/sud_test.c | 9 +++++++ 15 files changed, 61 insertions(+), 15 deletions(-) delete mode 100644 kernel/entry/common.h -- 2.30.2
WARNING: multiple messages have this Message-ID (diff)
From: houdek.ryan@fex-emu.org Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Ryan Houdek <Houdek.Ryan@fex-emu.org> Subject: [PATCH 0/4] arm64: Implement userspace syscall dispatch Date: Sat, 29 May 2021 01:16:16 -0700 [thread overview] Message-ID: <20210529081620.164422-1-Houdek.Ryan@fex-emu.org> (raw) From: Ryan Houdek <Houdek.Ryan@fex-emu.org> arm64: Implement userspace syscall dispatch The first patch moves the userspace dispatch code from the common syscall entry path. This is necessary since arm64 doesn't support the common syscall entry path. The second patch exposes where the sigreturn landing pad location is. The syscall user dispatch code checks this landing pad to see if it should skip invoking the userspace dispatch path. The third patch is where the userspace dispatcher work is hooked up to arm64 syscall dispatcher. Fairly straight forward, adds a new check to the trace enter and exit paths for user dispatch. The fourth patch just updates the selftests to handle aarch64. The sud_bench application shows a consistent 2.3% overhead on my device when testing. Going from 477ns to 488ns per syscall. Ryan Houdek (4): Move userspace syscall dispatch outside of common entry arm64: Track the sigreturn landing pad location arm64: Enable userspace syscall dispatch arm64: tools: Update syscall user dispatch tests arch/Kconfig | 4 ++++ arch/arm64/Kconfig | 1 + arch/arm64/include/asm/syscall.h | 2 ++ arch/arm64/include/asm/thread_info.h | 4 +++- arch/arm64/kernel/ptrace.c | 24 +++++++++++++++++++ arch/arm64/kernel/syscall.c | 9 +++++++ arch/arm64/kernel/vdso/sigreturn.S | 1 + arch/arm64/kernel/vdso/vdso.lds.S | 1 + include/linux/syscall_user_dispatch.h | 4 +++- kernel/entry/Makefile | 3 ++- kernel/entry/common.c | 3 +-- kernel/entry/common.h | 7 ------ kernel/entry/syscall_user_dispatch.c | 2 -- .../syscall_user_dispatch/sud_benchmark.c | 2 +- .../syscall_user_dispatch/sud_test.c | 9 +++++++ 15 files changed, 61 insertions(+), 15 deletions(-) delete mode 100644 kernel/entry/common.h -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2021-05-29 8:16 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-29 8:16 houdek.ryan [this message] 2021-05-29 8:16 ` [PATCH 0/4] arm64: Implement userspace syscall dispatch houdek.ryan 2021-05-29 8:16 ` [PATCH 1/4] Move userspace syscall dispatch outside of common entry houdek.ryan 2021-05-29 8:16 ` houdek.ryan 2021-06-02 15:41 ` Thomas Gleixner 2021-06-02 15:41 ` Thomas Gleixner 2021-06-03 10:58 ` Ryan Houdek 2021-06-03 10:58 ` Ryan Houdek 2021-05-29 8:16 ` [PATCH 2/4] arm64: Track the sigreturn landing pad location houdek.ryan 2021-05-29 8:16 ` houdek.ryan 2021-05-29 8:16 ` [PATCH 3/4] arm64: Enable userspace syscall dispatch houdek.ryan 2021-05-29 8:16 ` houdek.ryan 2021-05-29 8:16 ` [PATCH 4/4] arm64: tools: Update syscall user dispatch tests houdek.ryan 2021-05-29 8:16 ` houdek.ryan
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210529081620.164422-1-Houdek.Ryan@fex-emu.org \ --to=houdek.ryan@fex-emu.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.