lkml.org 
[lkml]   [2011]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [slub p2 0/4] SLUB: [RFC] Per cpu partial lists V2
    From
    Date
    On Mon, 2011-06-20 at 10:32 -0500, Christoph Lameter wrote:
    > The following patchset applied on top of the lockless patchset V7. It
    > introduces per cpu partial lists which allow a performance increase of
    > around ~15 during contention for the nodelock (can be tested using
    > hackbench).
    >
    > These lists help to avoid per nodelocking overhead. Allocator latency
    > could be further reduced by making these operations work without
    > disabling interrupts (like the fastpath and the free slowpath) as well as
    > implementing better ways of handling ther cpu array with partial pages.
    >
    > I am still not satisfied with the cleanliness of the code after these
    > changes. Some review with suggestions as to how to restructure the
    > code given these changes in operations would be appreciated.
    >
    > It is interesting to note that BSD has gone to a scheme with partial
    > pages only per cpu (source: Adrian). Transfer of cpu ownerships is
    > done using IPIs. Probably too much overhead for our taste. The use
    > of a few per cpu partial pages looks to be beneficial though.
    >
    > Note that there is no performance gain when there is no contention.
    >
    > Performance:
    >
    > Before After
    > ./hackbench 100 process 200000
    > Time: 2299.072 1742.454
    > ./hackbench 100 process 20000
    > Time: 224.654 182.393
    > ./hackbench 100 process 20000
    > Time: 227.126 182.780
    > ./hackbench 100 process 20000
    > Time: 219.608 182.899
    > ./hackbench 10 process 20000
    > Time: 21.769 18.756
    > ./hackbench 10 process 20000
    > Time: 21.657 18.938
    > ./hackbench 10 process 20000
    > Time: 23.193 19.537
    > ./hackbench 1 process 20000
    > Time: 2.337 2.263
    > ./hackbench 1 process 20000
    > Time: 2.223 2.271
    > ./hackbench 1 process 20000
    > Time: 2.269 2.301

    Impressive numbers! David, comments on the series?

    Pekka



    \
     
     \ /
      Last update: 2011-07-07 21:07    [W:0.026 / U:0.556 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site