All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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: link
Be 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.