On Fri, 4 Sep 2015, Alexander Duyck wrote:
Right, but one of the reasons for Jesper to implement the bulk alloc/free is
to avoid the cmpxchg that is being used to get stuff into or off of the per
cpu lists.
There is no full cmpxchg used for the per cpu lists. Its a cmpxchg without
lock semantics which is very cheap.
In the case of network drivers they are running in softirq context almost
exclusively. As such it is useful to have a set of buffers that can be
acquired or freed from this context without the need to use any
synchronization primitives. Then once the softirq context ends then we can
free up some or all of the resources back to the slab allocator.
That is the case in the slab allocators.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>