What happens if a thread is preempted after mapping pages with
kmap_local_page() was questioned recently.[1]
Commit f3ba3c710ac5 ("mm/highmem: Provide kmap_local*") from Thomas
Gleixner explains clearly that on context switch, the maps of an outgoing
task are removed and the map of the incoming task are restored and that
kmap_local_page() can be invoked from both preemptible and atomic
contexts.[2]
Therefore, for the purpose to make it clearer that users can call
kmap_local_page() from contexts that allow preemption, rework a couple of
sentences and add further information in highmem.rst.
[1] https://lore.kernel.org/lkml/5303077.Sb9uPGUboI@opensuse/
[2] https://lore.kernel.org/all/20201118204007.468533059@linutronix.de/
Link: https://lkml.kernel.org/r/20220728154844.10874-8-fmdefrancesco@gmail.com
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Suggested-by: Ira Weiny <ira.weiny@intel.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||
|---|---|---|
| .. | ||
| damon | ||
| active_mm.rst | ||
| arch_pgtable_helpers.rst | ||
| balance.rst | ||
| bootmem.rst | ||
| free_page_reporting.rst | ||
| frontswap.rst | ||
| highmem.rst | ||
| hmm.rst | ||
| hugetlbfs_reserv.rst | ||
| hwpoison.rst | ||
| index.rst | ||
| ksm.rst | ||
| memory-model.rst | ||
| mmu_notifier.rst | ||
| numa.rst | ||
| oom.rst | ||
| overcommit-accounting.rst | ||
| page_allocation.rst | ||
| page_cache.rst | ||
| page_frags.rst | ||
| page_migration.rst | ||
| page_owner.rst | ||
| page_reclaim.rst | ||
| page_table_check.rst | ||
| page_tables.rst | ||
| physical_memory.rst | ||
| process_addrs.rst | ||
| remap_file_pages.rst | ||
| shmfs.rst | ||
| slab.rst | ||
| slub.rst | ||
| split_page_table_lock.rst | ||
| swap.rst | ||
| transhuge.rst | ||
| unevictable-lru.rst | ||
| vmalloc.rst | ||
| vmalloced-kernel-stacks.rst | ||
| vmemmap_dedup.rst | ||
| z3fold.rst | ||
| zsmalloc.rst | ||