Messages in this thread | | | Date | Wed, 17 Oct 2018 18:00:51 +0200 | From | 'Sebastian Andrzej Siewior' <> | Subject | Re: [PATCH 1/3] x86/mm/pat: Disable preemption around __flush_tlb_all() |
| |
On 2018-10-17 17:47:07 [+0200], Peter Zijlstra wrote: > > > Ideally we'd never ever merge anything that only does local invalidates, > > > on a global address space, that's just broken. > > > > A little bit late to lament about that. > > For this, yes :/ But for future stuff we should really not allow such > things anymore.
so we stay as is?
> > So should we just replace it with cpa_flush_all() ? > > The comment there suggests that will deadlock, supposedly because the > kernel_map_page() call can happen with IRQs disabled or such. > > I've not deeply looked at this.
free_pages() / __free_pages() for instance ends may end up in kernel_map_pages() (via free_pages_prepare()). And if this is invoked with disabled interrupts…
Sebastian
| |