On Thu, Sep 12, 2019 at 03:44:01AM +0300, Kirill A. Shutemov wrote: > On Wed, Sep 11, 2019 at 06:29:28PM -0600, Yu Zhao wrote: > > If we are already under list_lock, don't call kmalloc(). Otherwise we > > will run into deadlock because kmalloc() also tries to grab the same > > lock. > > > > Instead, statically allocate bitmap in struct kmem_cache_node. Given > > currently page->objects has 15 bits, we bloat the per-node struct by > > 4K. So we waste some memory but only do so when slub debug is on. > > Why not have single page total protected by a lock? > > Listing object from two pages at the same time doesn't make sense anyway. > Cuncurent validating is not something sane to do. Okay, cutting down to static global bitmap.