Messages in this thread | | | Date | Mon, 3 Jun 2013 19:20:17 +0000 | From | Christoph Lameter <> | Subject | Re: [RT LATENCY] 249 microsecond latency caused by slub's unfreeze_partials() code. |
| |
On Tue, 4 Jun 2013, JoonSoo Kim wrote:
> And I re-read Steven initial problem report in RT kernel and find that > unfreeze_partial() do lock and unlock several times. This means that > each page in cpu partial list doesn't come from same node. Why do we > add other node's slab to this cpu partial list? This is also not good > for general case. How about considering node affinity in __slab_free()? > IMHO, if we implement this, Steven's problem can be solved.
We may need the other nodes pages if we consistently allocate from there. __slab_alloc() ensures that only pages from the correct node are used. It will drop pages that do not come from the proper nodes.
Filtering in __slab_free would mean that we cannot improve performance on remote frees.
| |