diff options
| author | Sebastian Andrzej Siewior <[email protected]> | 2023-03-10 16:29:05 +0000 |
|---|---|---|
| committer | Andrew Morton <[email protected]> | 2023-03-28 23:20:16 +0000 |
| commit | 7eb16f23b9a415f062db22739e59bb144e0b24ab (patch) | |
| tree | 83171dff78521149d6b93969c9d12c903bb7227b /mm/vmalloc.c | |
| parent | shmem: add support to ignore swap (diff) | |
| download | kernel-7eb16f23b9a415f062db22739e59bb144e0b24ab.tar.gz kernel-7eb16f23b9a415f062db22739e59bb144e0b24ab.zip | |
io-mapping: don't disable preempt on RT in io_mapping_map_atomic_wc().
io_mapping_map_atomic_wc() disables preemption and pagefaults for
historical reasons. The conversion to io_mapping_map_local_wc(), which
only disables migration, cannot be done wholesale because quite some call
sites need to be updated to accommodate with the changed semantics.
On PREEMPT_RT enabled kernels the io_mapping_map_atomic_wc() semantics are
problematic due to the implicit disabling of preemption which makes it
impossible to acquire 'sleeping' spinlocks within the mapped atomic
sections.
PREEMPT_RT replaces the preempt_disable() with a migrate_disable() for
more than a decade. It could be argued that this is a justification to do
this unconditionally, but PREEMPT_RT covers only a limited number of
architectures and it disables some functionality which limits the coverage
further.
Limit the replacement to PREEMPT_RT for now. This is also done
kmap_atomic().
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
Reported-by: Richard Weinberger <[email protected]>
Link: https://lore.kernel.org/CAFLxGvw0WMxaMqYqJ5WgvVSbKHq2D2xcXTOgMCpgq9nDC-MWTQ@mail.gmail.com
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'mm/vmalloc.c')
0 files changed, 0 insertions, 0 deletions
