|| ||Christoph Lameter <email@example.com> |
|| ||Pekka Enberg <firstname.lastname@example.org> |
|| ||[rfc 00/18] slub: irqless/lockless slow allocation paths |
|| ||Fri, 11 Nov 2011 14:07:11 -0600|
|| ||David Rientjes <email@example.com>|
|| ||Article, Thread
This is a patchset that makes the allocator slow path also lockless like
the free paths. However, in the process it is making processing more
complex so that this is not a performance improvement. I am going to
drop this series unless someone comes up with a bright idea to fix the
following performance issues:
1. Had to reduce the per cpu state kept to two words in order to
be able to operate without preempt disable / interrupt disable only
through cmpxchg_double(). This means that the node information and
the page struct location have to be calculated from the free pointer.
That is possible but relatively expensive and has to be done frequently
in fast paths.
2. If the freepointer becomes NULL then the page struct location can
no longer be determined. So per cpu slabs must be deactivated when
the last object is retrieved from them causing more regressions.
If these issues remain unresolved then I am fine with the way things are
right now in slub. Currently interrupts are disabled in the slow paths and
then multiple fields in the kmem_cache_cpu structure are modified without
regard to instruction atomicity.
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to firstname.lastname@example.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"email@example.com"> firstname.lastname@example.org </a>