1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/arch/um/include/shared
Benjamin Berg bcf3d957c6 um: refactor TLB update handling
Conceptually, we want the memory mappings to always be up to date and
represent whatever is in the TLB. To ensure that, we need to sync them
over in the userspace case and for the kernel we need to process the
mappings.

The kernel will call flush_tlb_* if page table entries that were valid
before become invalid. Unfortunately, this is not the case if entries
are added.

As such, change both flush_tlb_* and set_ptes to track the memory range
that has to be synchronized. For the kernel, we need to execute a
flush_tlb_kern_* immediately but we can wait for the first page fault in
case of set_ptes. For userspace in contrast we only store that a range
of memory needs to be synced and do so whenever we switch to that
process.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Link: https://patch.msgid.link/20240703134536.1161108-13-benjamin@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2024-07-03 17:09:50 +02:00
..
skas um: refactor TLB update handling 2024-07-03 17:09:50 +02:00
arch.h um: Add SPDX headers for files in arch/um/include 2019-09-15 21:37:17 +02:00
as-layout.h um: Create signal stack memory assignment in stub_data 2024-07-03 17:09:48 +02:00
common-offsets.h um: Remove stub-data.h include from common-offsets.h 2024-07-03 17:09:48 +02:00
elf_user.h um: Add SPDX headers for files in arch/um/include 2019-09-15 21:37:17 +02:00
frame_kern.h um: Add SPDX headers for files in arch/um/include 2019-09-15 21:37:17 +02:00
init.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
irq_kern.h um: fix 3 instances of -Wmissing-prototypes 2023-08-26 22:45:05 +02:00
irq_user.h um: header debriding - activate_ipi() 2021-12-21 21:31:35 +01:00
kern.h um: Add SPDX headers for files in arch/um/include 2019-09-15 21:37:17 +02:00
kern_util.h um: Remove unused ncpus variable 2024-07-03 12:21:57 +02:00
longjmp.h um: rename set_signals() to um_set_signals() 2021-12-21 21:13:44 +01:00
mem.h um: Replace to_phys() and to_virt() with less generic function names 2022-07-17 23:44:40 +02:00
mem_user.h um: header debriding - mem_user.h 2021-12-21 21:31:35 +01:00
net_kern.h treewide: Replace zero-length arrays with flexible-array members 2022-02-17 07:00:39 -06:00
net_user.h um: header debriding - net_*.h 2021-12-21 21:31:35 +01:00
os.h um: simplify and consolidate TLB updates 2024-07-03 17:09:50 +02:00
ptrace_user.h um: Drop support for hosts without SYSEMU_SINGLESTEP support 2024-01-04 23:29:11 +01:00
registers.h um: Remove unused register save/restore functions 2024-01-05 16:28:57 +01:00
sigio.h um: header debriding - sigio.h 2021-12-21 21:31:36 +01:00
timetravel.h um: time-travel: support time-travel protocol broadcast messages 2024-07-03 12:24:22 +02:00
um_malloc.h This pull request contains the following changes for UML: 2024-05-25 13:17:48 -07:00
user.h um: Rework syscall handling 2024-07-03 17:09:49 +02:00