at 12:31 PM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Fri, Aug 24, 2018 at 11:36 AM Nadav Amit <nadav.amit@xxxxxxxxx> wrote: >>> 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.