Re: [PATCH 0/4 POC] Allow executing code and syscalls in another address space
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2021-04-14 07:34:55
Also in:
linux-um, lkml
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2021-04-14 07:34:55
Also in:
linux-um, lkml
On Wed, 2021-04-14 at 08:22 +0100, Anton Ivanov wrote:
On 14/04/2021 06:52, Andrei Vagin wrote:quoted
We already have process_vm_readv and process_vm_writev to read and write to a process memory faster than we can do this with ptrace. And now it is time for process_vm_exec that allows executing code in an address space of another process. We can do this with ptrace but it is much slower. = Use-cases = Here are two known use-cases. The first one is “application kernel” sandboxes like User-mode Linux and gVisor. In this case, we have a process that runs the sandbox kernel and a set of stub processes that are used to manage guest address spaces. Guest code is executed in the context of stub processes but all system calls are intercepted and handled in the sandbox kernel. Right now, these sort of sandboxes use PTRACE_SYSEMU to trap system calls, but the process_vm_exec can significantly speed them up.Certainly interesting, but will require um to rework most of its memory management and we will most likely need extra mm support to make use of it in UML. We are not likely to get away just with one syscall there.
Might help the seccomp mode though: https://patchwork.ozlabs.org/project/linux-um/list/?series=231980 johannes