Christoph Lameter wrote:
> On Tue, 25 Sep 2007, Pavel Emelyanov wrote:
>
>> + for_each_node_state(n, N_NORMAL_MEMORY) {
>> + struct kmem_cache_node *node;
>> + struct page *pg;
>> +
>> + node = get_node(s, n);
>> + spin_lock_irq(&node->list_lock);
>> + list_for_each_entry(pg, &node->partial, lru)
>> + SetSlabDebug(pg);
>> + spin_unlock_irq(&node->list_lock);
>
>
> Is it necessary to mark all the existing slabs with SLAB_DEBUG? Would it
Yup. Otherwise we can never receive a single event e.g. if we make
alloc/free in a loop, or similar, so that new slabs simply are not
created.
> not be sufficient to just mark the new ones coming up? The above operation
> could be a bit expensive.
Oh, that's OK from my POV - switching slabs mode was never supposed to
be a fast path.
Thanks,
Pavel