On Thu, 25 Oct 2018, Wei Yang wrote: > In current code, the following context always meets: > > local_irq_save/disable() > ___slab_alloc() > new_slab_objects() > local_irq_restore/enable() > > This context ensures cpu will continue running until it finish this job > before yield its control, which means the cpu_slab retrieved in > new_slab_objects() is the same as passed in. Interrupts can be switched on in new_slab() since it goes to the page allocator. See allocate_slab(). This means that the percpu slab may change.