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