On Thu, May 22, 2014 at 02:25:30PM -0500, Christoph Lameter wrote:
> slab_free calls __slab_free which can release slabs via
> put_cpu_partial()/unfreeze_partials()/discard_slab() to the page
> allocator. I'd rather have preemption enabled there.

Hmm, why? IMO, calling __free_pages with preempt disabled won't hurt
latency, because it proceeds really fast. BTW, we already call it for a
bunch of pages from __slab_free() -> put_cpu_partial() ->
unfreeze_partials() with irqs disabled, which is harder. FWIW, SLAB has
the whole obj free path executed under local_irq_save/restore, and it
doesn't bother enabling irqs for freeing pages.

IMO, the latency improvement we can achieve by enabling preemption while
calling __free_pages is rather minor, and it isn't worth complicating
the code.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to