From: Benjamin Berg <benjamin@sipsolutions.net>
To: linux-um@lists.infradead.org
Cc: Benjamin Berg <benjamin.berg@intel.com>
Subject: [PATCH v6 0/7] Increased address space for 64 bit
Date: Wed, 26 Jun 2024 15:53:43 +0200 [thread overview]
Message-ID: <20240626135350.493110-1-benjamin@sipsolutions.net> (raw)
From: Benjamin Berg <benjamin.berg@intel.com>
The new version of the patchset uses execveat on a memfd instead of
cloning twice to disable rseq. This should be much more robust going
forward as it will also avoid issues with other new features like mseal.
This patchset fixes a few bugs, adds a new method of discovering the
host task size and finally adds four level page table support. All of
this means the userspace TASK_SIZE is much larger and in turns permits
userspace applications that need a lot of virtual addresses to work
fine.
One such application is ASAN which uses a fixed address in memory that
would otherwise not be addressable.
v6:
* Apply fixes pointed out by Tiwei Bie
* Add temporary file fallback as memfd is not always supported
v5:
* Use execveat with memfd instead of double clone
v4:
* Do not use WNOHANG in wait for CLONE_VFORK
v3:
* Undo incorrect change in child wait loop
v2:
* Improved double clone logic using CLONE_VFORK
* Kconfig fixes pointed out by Tiwei Bie
Benjamin Berg (7):
um: Add generic stub_syscall6 function
um: Add generic stub_syscall1 function
um: use execveat to create userspace MMs
um: Fix stub_start address calculation
um: Limit TASK_SIZE to the addressable range
um: Discover host_task_size from envp
um: Add 4 level page table support
arch/um/Kconfig | 1 +
arch/um/include/asm/page.h | 14 +-
arch/um/include/asm/pgalloc.h | 11 +-
arch/um/include/asm/pgtable-4level.h | 119 +++++++++++++++++
arch/um/include/asm/pgtable.h | 6 +-
arch/um/include/shared/as-layout.h | 2 +-
arch/um/include/shared/os.h | 2 +-
arch/um/include/shared/skas/stub-data.h | 11 ++
arch/um/kernel/mem.c | 17 ++-
arch/um/kernel/um_arch.c | 14 +-
arch/um/os-Linux/main.c | 9 +-
arch/um/os-Linux/skas/process.c | 171 ++++++++++++++++--------
arch/x86/um/.gitignore | 2 +
arch/x86/um/Kconfig | 38 ++++--
arch/x86/um/Makefile | 32 ++++-
arch/x86/um/os-Linux/task_size.c | 19 ++-
arch/x86/um/shared/sysdep/stub_32.h | 22 +++
arch/x86/um/shared/sysdep/stub_64.h | 27 ++++
arch/x86/um/stub_elf.c | 86 ++++++++++++
arch/x86/um/stub_elf_embed.S | 11 ++
20 files changed, 528 insertions(+), 86 deletions(-)
create mode 100644 arch/um/include/asm/pgtable-4level.h
create mode 100644 arch/x86/um/.gitignore
create mode 100644 arch/x86/um/stub_elf.c
create mode 100644 arch/x86/um/stub_elf_embed.S
--
2.45.2
next reply other threads:[~2024-06-26 13:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-26 13:53 Benjamin Berg [this message]
2024-06-26 13:53 ` [PATCH v6 1/7] um: Add generic stub_syscall6 function Benjamin Berg
2024-06-26 13:53 ` [PATCH v6 2/7] um: Add generic stub_syscall1 function Benjamin Berg
2024-06-26 13:53 ` [PATCH v6 3/7] um: use execveat to create userspace MMs Benjamin Berg
2024-07-01 20:20 ` Johannes Berg
2024-06-26 13:53 ` [PATCH v6 4/7] um: Fix stub_start address calculation Benjamin Berg
2024-06-26 13:53 ` [PATCH v6 5/7] um: Limit TASK_SIZE to the addressable range Benjamin Berg
2024-06-26 13:53 ` [PATCH v6 6/7] um: Discover host_task_size from envp Benjamin Berg
2024-06-26 13:53 ` [PATCH v6 7/7] um: Add 4 level page table support Benjamin Berg
2024-07-03 11:32 ` Johannes Berg
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=20240626135350.493110-1-benjamin@sipsolutions.net \
--to=benjamin@sipsolutions.net \
--cc=benjamin.berg@intel.com \
--cc=linux-um@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox