On Mon, 15 Jun 2015, Jesper Dangaard Brouer wrote:

> +     for (i = 0; i < size; i++) {
> +             void *object = p[i];
> +
> +             if (unlikely(!object))
> +                     continue; // HOW ABOUT BUG_ON()???

Sure BUG_ON would be fitting here.

> +
> +             page = virt_to_head_page(object);
> +             BUG_ON(s != page->slab_cache); /* Check if valid slab page */

This is the check if the slab page belongs to the slab cache we are
interested in.

> +
> +             if (c->page == page) {
> +                     /* Fastpath: local CPU free */
> +                     set_freepointer(s, object, c->freelist);
> +                     c->freelist = object;
> +             } else {
> +                     c->tid = next_tid(c->tid);

tids are only useful for the fastpath. No need to fiddle around with them
for the slowpath.

> +                     local_irq_enable();
> +                     /* Slowpath: overhead locked cmpxchg_double_slab */
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to