On Thu, Feb 09 2023 at 20:28, Matthew Wilcox wrote: > On Wed, Feb 08, 2023 at 09:46:30PM +0100, Thomas Gleixner wrote: >> The issue is that there might be maple_tree users which depend on >> GFP_ATOMIC, but call in from interrupt enabled context, which is >> legitimate today. >> >> Willy might have some insight on that. > > Not today, but eventually. There are XArray users which modify the tree > in interrupt context or under some other spinlock that we can't drop > for them in order to do an allocation. And I want to replace the radix > tree underpinnings of the XArray with the maple tree. In my copious > spare time. If any usage which you described, i.e. interrupt context or with a spinlock held, where interrupts were disabled on acquisition of the lock, ends up calling into kmem_cache_alloc_bulk() today, then that's broken because kmem_cache_alloc_bulk() reenables interrupts unconditionally. So either such code does not exist as of today or it just gets lucky to not run into the code path leading up to kmem_cache_alloc_bulk(). We have to clarify what the valid calling convention of kmem_cache_alloc_bulk() is in the regular kernel context, i.e. outside of early boot. Thanks, tglx