On Thu, Sep 18, 2025 at 04:38:55PM +0900, Hajime Tazaki wrote: > This patchset is another spin of nommu mode addition to UML. It would > be nice to hear about your opinions on that. > > 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
I think this will need attention of um people etc. but THANK YOU for sending this :) If we can get this in that'd be _very useful_ for nommu testing for us in mm especially :) Cheers, Lorenzo > > v11: > - clean up userspace return routine and integrate to userspace() ([04/13]) > - fix direction flag issue on using nolibc memcpy ([04/13]) > - fix a crash issue when using usermode helper ([06/13]) > - test with out-of-tree kunit-uapi patches (which uses umh) > - > https://lore.kernel.org/all/20250626-kunit-kselftests-v4-0-48760534f...@linutronix.de/ > - > https://lore.kernel.org/all/20250626195714.2123694-3-benja...@sipsolutions.net/ > > v10: > - fix wrong comment on gs register handling ([09/13]) > - remove unnecessary code of early syscall implementation ([04/13]) > - https://lore.kernel.org/all/cover.1750594487.git.thehaj...@gmail.com/ > > v9: > - rebase with the latest uml/next branch > - add performance numbers of new SECCOMP mode, and update results ([12/13]) > - add a workaround for upstream change on MMU depedency to PCI drivers > ([10/13]) > - https://lore.kernel.org/all/cover.1750294482.git.thehaj...@gmail.com/ > > v8: > - rebase with the latest uml/next branch > - clean up segv_handler to align with the latest uml ([9/12]) > - https://lore.kernel.org/all/cover.1745980082.git.thehaj...@gmail.com/ > > v7: > - properly handle FP register upon signal delivery [10/13] > - update benchmark result with new FP register handling [12/13] > - fix arch_has_single_step() for !MMU case [07/13] > - revert stack alignment as it is in uml/fixes tree [10/13] > - https://lore.kernel.org/all/cover.1737348399.git.thehaj...@gmail.com/ > > v6: > - rebase to the latest uml/next tree > - more clean up on mmu/nommu for signal handling [10/13] > - rename functions of mcontext routines [06,10/13] > - added Acked-by tag for binfmt_elf_fdpic [02/13] > - https://lore.kernel.org/linux-um/cover.1736853925.git.thehaj...@gmail.com/ > > v5: > - clean up stack manipulation code [05,06,07,10/13] > - https://lore.kernel.org/linux-um/cover.1733998168.git.thehaj...@gmail.com/ > > 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.thehaj...@gmail.com/ > > v3: > - https://lore.kernel.org/linux-um/cover.1733199769.git.thehaj...@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.thehaj...@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-thehaj...@gmail.com/ > > RFC: > - https://lore.kernel.org/linux-um/cover.1729770373.git.thehaj...@gmail.com/ > > Hajime Tazaki (13): > 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: nommu: a work around for MMU dependency to PCI driver > 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 | 180 ++++++++++++++++++++++ > MAINTAINERS | 1 + > arch/um/Kconfig | 14 +- > arch/um/Makefile | 10 ++ > arch/um/configs/x86_64_nommu_defconfig | 54 +++++++ > arch/um/include/asm/dma.h | 13 ++ > 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 | 8 +- > arch/um/include/asm/uaccess.h | 7 +- > arch/um/include/shared/kern_util.h | 6 + > arch/um/include/shared/os.h | 16 ++ > arch/um/kernel/Makefile | 5 +- > arch/um/kernel/mem-pgtable.c | 55 +++++++ > arch/um/kernel/mem.c | 38 +---- > arch/um/kernel/process.c | 25 +++ > arch/um/kernel/skas/process.c | 25 --- > arch/um/kernel/um_arch.c | 3 + > arch/um/nommu/Makefile | 3 + > arch/um/nommu/os-Linux/Makefile | 7 + > arch/um/nommu/os-Linux/seccomp.c | 87 +++++++++++ > arch/um/nommu/os-Linux/signal.c | 24 +++ > arch/um/nommu/trap.c | 201 +++++++++++++++++++++++++ > arch/um/os-Linux/Makefile | 3 +- > arch/um/os-Linux/mem.c | 4 + > arch/um/os-Linux/process.c | 138 ++++++++++++++++- > arch/um/os-Linux/signal.c | 11 +- > arch/um/os-Linux/skas/process.c | 126 ---------------- > arch/um/os-Linux/start_up.c | 25 ++- > arch/um/os-Linux/util.c | 3 +- > arch/x86/um/Makefile | 7 +- > arch/x86/um/asm/elf.h | 8 +- > arch/x86/um/asm/syscall.h | 6 + > arch/x86/um/nommu/Makefile | 8 + > arch/x86/um/nommu/do_syscall_64.c | 75 +++++++++ > arch/x86/um/nommu/entry_64.S | 114 ++++++++++++++ > arch/x86/um/nommu/os-Linux/Makefile | 6 + > arch/x86/um/nommu/os-Linux/mcontext.c | 26 ++++ > arch/x86/um/nommu/syscalls.h | 18 +++ > arch/x86/um/nommu/syscalls_64.c | 121 +++++++++++++++ > arch/x86/um/shared/sysdep/mcontext.h | 5 + > arch/x86/um/shared/sysdep/ptrace.h | 2 +- > arch/x86/um/vdso/vma.c | 17 ++- > fs/Kconfig.binfmt | 2 +- > 45 files changed, 1312 insertions(+), 209 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/seccomp.c > create mode 100644 arch/um/nommu/os-Linux/signal.c > create mode 100644 arch/um/nommu/trap.c > 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: e66ae377fe219c98d3d5b8a0d35da4413a5390ca > -- > 2.43.0 >