Re: TLB flushes on fixmap changes
From: Nadav Amit <hidden>
Date: 2018-08-24 20:25:00
Also in:
lkml
at 12:31 PM, Linus Torvalds [off-list ref] wrote:
On Fri, Aug 24, 2018 at 11:36 AM Nadav Amit [off-list ref] wrote:quoted
quoted
Urgh.. weren't the fixmaps per cpu? Bah, I remember looking at this during PTI, but I seem to have forgotten everything again.[ Changed the title. Sorry for hijacking the thread. ] Since: native_set_fixmap()->set_pte_vaddr()->pgd_offset_k()The fixmaps should be entirely fixed after bootup to constant mappings, except for the KMAP ones, and they are indexed per-cpu. That's what my mental model is, at least. Can you actually find something that changes the fixmaps after boot (again, ignoring kmap)?
At least the alternatives mechanism appears to do so. IIUC the following path is possible when adding a module: jump_label_add_module() ->__jump_label_update() ->arch_jump_label_transform() ->__jump_label_transform() ->text_poke_bp() ->text_poke() ->set_fixmap() And a similar path can happen when static_key_enable/disable() is called.