diff options
author | Benjamin Berg <benjamin@sipsolutions.net> | 2024-07-03 15:45:32 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2024-07-03 17:09:49 +0200 |
commit | 3c83170d7cdf3df12e430c429462776dcb52ff87 (patch) | |
tree | f9f5473d6bc22c63cb79c2c164f19baa2ec6214f /arch/um/include | |
parent | a5d2cfe749e2917266956751262328da35e0925d (diff) |
um: Delay flushing syscalls until the thread is restarted
As running the syscalls is expensive due to context switches, we should
do so as late as possible in case more syscalls need to be queued later
on. This will also benefit a later move to a SECCOMP enabled userspace
as in that case the need for extra context switches is removed entirely.
Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
Link: https://patch.msgid.link/20240703134536.1161108-9-benjamin@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'arch/um/include')
-rw-r--r-- | arch/um/include/shared/os.h | 4 | ||||
-rw-r--r-- | arch/um/include/shared/skas/mm_id.h | 1 | ||||
-rw-r--r-- | arch/um/include/shared/skas/skas.h | 1 |
3 files changed, 5 insertions, 1 deletions
diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h index d12fec5d0b4d..345b117aff0b 100644 --- a/arch/um/include/shared/os.h +++ b/arch/um/include/shared/os.h @@ -195,6 +195,9 @@ extern void get_host_cpu_features( /* mem.c */ extern int create_mem_file(unsigned long long len); +/* tlb.c */ +extern void report_enomem(void); + /* process.c */ extern unsigned long os_process_pc(int pid); extern int os_process_parent(int pid); @@ -274,6 +277,7 @@ extern long long os_nsecs(void); /* skas/mem.c */ int syscall_stub_flush(struct mm_id *mm_idp); struct stub_syscall *syscall_stub_alloc(struct mm_id *mm_idp); +void syscall_stub_dump_error(struct mm_id *mm_idp); void map(struct mm_id *mm_idp, unsigned long virt, unsigned long len, int prot, int phys_fd, diff --git a/arch/um/include/shared/skas/mm_id.h b/arch/um/include/shared/skas/mm_id.h index 4c5311abe42c..1e76ba40feba 100644 --- a/arch/um/include/shared/skas/mm_id.h +++ b/arch/um/include/shared/skas/mm_id.h @@ -12,7 +12,6 @@ struct mm_id { int pid; } u; unsigned long stack; - int kill; int syscall_data_len; }; diff --git a/arch/um/include/shared/skas/skas.h b/arch/um/include/shared/skas/skas.h index c93d2cbc8f32..5c78b0cc3dd4 100644 --- a/arch/um/include/shared/skas/skas.h +++ b/arch/um/include/shared/skas/skas.h @@ -15,5 +15,6 @@ extern void new_thread_handler(void); extern void handle_syscall(struct uml_pt_regs *regs); extern long execute_syscall_skas(void *r); extern unsigned long current_stub_stack(void); +extern struct mm_id *current_mm_id(void); #endif |