[PATCH v5 00/13] nommu UML
Hajime Tazaki
thehajime at gmail.com
Thu Dec 12 02:12:07 PST 2024
This is a series of patches of nommu arch addition to UML. It would
be nice to ask comments/opinions on this.
There are still several limitations/issues which we already found;
here is the list of those issues.
- memory mapped by loadable modules are not distinguished from
userspace memory.
-- Hajime
v5:
- clean up stack manipulation code [05,06,07,10/13]
v4:
- add arch/um/nommu, arch/x86/um/nommu to contain !MMU specific codes
- remove zpoline patch
- drop binfmt_elf_fdpic patch
- reduce ifndef CONFIG_MMU if possible
- split to elf header cleanup patch [01/13]
- fix kernel test robot warnings [06/13]
- fix coding styles [07/13]
- move task_top_of_stack definition [05/13]
- https://lore.kernel.org/linux-um/cover.1733652929.git.thehajime@gmail.com/
v3:
- https://lore.kernel.org/linux-um/cover.1733199769.git.thehajime@gmail.com/
- add seccomp-based syscall hook in addition to zpoline [06/13]
- remove RFC, add a line to MAINTAINERS file
- fix kernel test robot warnings [02/13,08/13,10/13]
- add base-commit tag to cover letter
- pull the latest uml/next
- clean up SIGSEGV handling [10/13]
- detect fsgsbase availability with elf aux vector [08/13]
- simplify vdso code with macros [09/13]
RFC v2:
- https://lore.kernel.org/linux-um/cover.1731290567.git.thehajime@gmail.com/
- base branch is now uml/linux.git instead of torvalds/linux.git.
- reorganize the patch series to clean up
- fixed various coding styles issues
- clean up exec code path [07/13]
- fixed the crash/SIGSEGV case on userspace programs [10/13]
- add seccomp filter to limit syscall caller address [06/13]
- detect fsgsbase availability with sigsetjmp/siglongjmp [08/13]
- removes unrelated changes
- removes unneeded ifndef CONFIG_MMU
- convert UML_CONFIG_MMU to CONFIG_MMU as using uml/linux.git
- proposed a patch of maple-tree issue (resolving a limitation in RFC v1)
https://lore.kernel.org/linux-mm/20241108222834.3625217-1-thehajime@gmail.com/
RFC:
- https://lore.kernel.org/linux-um/cover.1729770373.git.thehajime@gmail.com/
Hajime Tazaki (13):
x86/um: clean up elf specific definitions
x86/um: nommu: elf loader for fdpic
um: decouple MMU specific code from the common part
um: nommu: memory handling
x86/um: nommu: syscall handling
um: nommu: seccomp syscalls hook
x86/um: nommu: process/thread handling
um: nommu: configure fs register on host syscall invocation
x86/um/vdso: nommu: vdso memory update
x86/um: nommu: signal handling
um: change machine name for uname output
um: nommu: add documentation of nommu UML
um: nommu: plug nommu code into build system
Documentation/virt/uml/nommu-uml.rst | 177 ++++++++++++++++++++++
MAINTAINERS | 1 +
arch/um/Kconfig | 14 +-
arch/um/Makefile | 10 ++
arch/um/configs/x86_64_nommu_defconfig | 64 ++++++++
arch/um/include/asm/Kbuild | 1 +
arch/um/include/asm/futex.h | 4 +
arch/um/include/asm/mmu.h | 8 +
arch/um/include/asm/mmu_context.h | 2 +
arch/um/include/asm/ptrace-generic.h | 6 +
arch/um/include/asm/uaccess.h | 7 +-
arch/um/include/shared/kern_util.h | 8 +
arch/um/include/shared/mem.h | 8 +
arch/um/include/shared/os.h | 16 ++
arch/um/kernel/Makefile | 5 +-
arch/um/kernel/mem-pgtable.c | 175 ++++++++++++++++++++++
arch/um/kernel/mem.c | 152 +------------------
arch/um/kernel/process.c | 25 ++++
arch/um/kernel/skas/process.c | 27 ----
arch/um/kernel/um_arch.c | 3 +
arch/um/nommu/Makefile | 3 +
arch/um/nommu/os-Linux/Makefile | 7 +
arch/um/nommu/os-Linux/signal.c | 15 ++
arch/um/nommu/trap.c | 188 ++++++++++++++++++++++++
arch/um/os-Linux/Makefile | 8 +-
arch/um/os-Linux/internal.h | 5 +
arch/um/os-Linux/mem.c | 4 +
arch/um/os-Linux/process.c | 149 ++++++++++++++++++-
arch/um/os-Linux/seccomp.c | 87 +++++++++++
arch/um/os-Linux/signal.c | 12 ++
arch/um/os-Linux/skas/process.c | 132 -----------------
arch/um/os-Linux/start_up.c | 20 +++
arch/um/os-Linux/util.c | 3 +-
arch/x86/um/Makefile | 7 +-
arch/x86/um/asm/elf.h | 8 +-
arch/x86/um/asm/module.h | 24 ---
arch/x86/um/nommu/Makefile | 8 +
arch/x86/um/nommu/do_syscall_64.c | 74 ++++++++++
arch/x86/um/nommu/entry_64.S | 113 ++++++++++++++
arch/x86/um/nommu/os-Linux/Makefile | 6 +
arch/x86/um/nommu/os-Linux/mcontext.c | 24 +++
arch/x86/um/nommu/syscalls.h | 16 ++
arch/x86/um/nommu/syscalls_64.c | 115 +++++++++++++++
arch/x86/um/shared/sysdep/mcontext.h | 4 +
arch/x86/um/shared/sysdep/syscalls_64.h | 6 +
arch/x86/um/signal.c | 7 +
arch/x86/um/vdso/vma.c | 17 ++-
fs/Kconfig.binfmt | 2 +-
48 files changed, 1428 insertions(+), 349 deletions(-)
create mode 100644 Documentation/virt/uml/nommu-uml.rst
create mode 100644 arch/um/configs/x86_64_nommu_defconfig
create mode 100644 arch/um/kernel/mem-pgtable.c
create mode 100644 arch/um/nommu/Makefile
create mode 100644 arch/um/nommu/os-Linux/Makefile
create mode 100644 arch/um/nommu/os-Linux/signal.c
create mode 100644 arch/um/nommu/trap.c
create mode 100644 arch/um/os-Linux/seccomp.c
delete mode 100644 arch/x86/um/asm/module.h
create mode 100644 arch/x86/um/nommu/Makefile
create mode 100644 arch/x86/um/nommu/do_syscall_64.c
create mode 100644 arch/x86/um/nommu/entry_64.S
create mode 100644 arch/x86/um/nommu/os-Linux/Makefile
create mode 100644 arch/x86/um/nommu/os-Linux/mcontext.c
create mode 100644 arch/x86/um/nommu/syscalls.h
create mode 100644 arch/x86/um/nommu/syscalls_64.c
base-commit: bed2cc482600296fe04edbc38005ba2851449c10
--
2.43.0
More information about the linux-um
mailing list