lkml.org 
[lkml]   [2006]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [Patch 0/6] delay accounting & taskstats fixes
    From
    Date
    On Tue, 2006-07-11 at 00:23, Shailabh Nagar wrote:
    > Some results showing the cpumask feature
    > works as expected will follow separately.

    To illustrate the basic premise behind the cpumask changes
    namely, reducing the number of cpus results in fewer overflow
    conditions, Chandra ran the following experiment on an
    8-way PIII box:

    - "mkthreads 1000 1000" (the program which only forks/exits) with
    minimum time spent inside the thread function. This is basically an exit
    rate that is higher than the 1000/cpu/sec discussed earlier.

    - A slightly modified version of the getdelays.c example that is
    included in patch 2/6 in this series of postings. Modification was
    to print only the number of receives and number of ENOBUFS seen.

    The -m parameter specifies the cpumask,
    -r parameter is the size of the socket receive buffer
    -l results in listening for exit data


    The following sets of runs are self-explanatory.
    Initial run emulates the earlier behaviour where one listener
    receives data for all cpus. As the number of cpus to which it
    listens is reduced, the ENOBUFS reduce.

    Similarly, increasing the receive buffer size also cuts down
    on the ENOBUFS, further helped by reducing number of cpus listened
    to. The final data point, not shown here, is when the receive
    buffer size is set to some high number like 8K when the ENOBUFS aren't
    seen at all.


    ===================================

    Each output shows
    stats <number of msgs rcvd> enobufs <num of enobufs seen>
    cumulatively

    elm3b94:/tmp # ./getdelays -m 0-7 -r 512 -l
    cpumask 0-7 maskset 1
    receive buf size 512
    listen forever
    stats 100000, enobufs 2540
    stats 200000, enobufs 5701
    stats 300000, enobufs 8482
    stats 400000, enobufs 11332
    stats 500000, enobufs 14256
    stats 600000, enobufs 17150
    stats 700000, enobufs 19981
    stats 800000, enobufs 22971
    stats 900000, enobufs 26324
    stats 1000000, enobufs 29291

    elm3b94:/tmp # ./getdelays -m 0-3 -r 512 -l
    cpumask 0-3 maskset 1
    receive buf size 512
    listen forever
    stats 100000, enobufs 831
    stats 200000, enobufs 1772
    stats 300000, enobufs 2728
    stats 400000, enobufs 3820
    stats 500000, enobufs 5030
    stats 600000, enobufs 6501
    stats 700000, enobufs 7885
    stats 800000, enobufs 8971
    stats 900000, enobufs 10262
    stats 1000000, enobufs 11786

    elm3b94:/tmp # ./getdelays -m 2-3 -r 512 -l
    cpumask 2-3 maskset 1
    receive buf size 512
    listen forever
    stats 100000, enobufs 106
    stats 200000, enobufs 206
    stats 300000, enobufs 313
    stats 400000, enobufs 389
    stats 500000, enobufs 477
    stats 600000, enobufs 676
    stats 700000, enobufs 860
    stats 800000, enobufs 1048
    stats 900000, enobufs 1189
    stats 1000000, enobufs 1303

    elm3b94:/tmp # ./getdelays -m 0 -r 512 -l
    cpumask 0 maskset 1
    receive buf size 512
    listen forever
    stats 100000, enobufs 100
    stats 200000, enobufs 162
    stats 300000, enobufs 302
    stats 400000, enobufs 399
    stats 500000, enobufs 507
    stats 600000, enobufs 571
    stats 700000, enobufs 666
    stats 800000, enobufs 725
    stats 900000, enobufs 821
    stats 1000000, enobufs 909

    ================= with recv buf size 2048

    elm3b94:/tmp # ./getdelays -m 0-7 -r 2048 -l
    cpumask 0-7 maskset 1
    receive buf size 2048
    listen forever
    stats 100000, enobufs 35
    stats 200000, enobufs 88
    stats 300000, enobufs 123
    stats 400000, enobufs 138
    stats 500000, enobufs 155
    stats 600000, enobufs 191
    stats 700000, enobufs 223
    stats 800000, enobufs 238
    stats 900000, enobufs 280
    stats 1000000, enobufs 319


    elm3b94:/tmp # ./getdelays -m 4-7 -r 2048 -l
    cpumask 4-7 maskset 1
    receive buf size 2048
    listen forever
    stats 100000, enobufs 10
    stats 200000, enobufs 17
    stats 300000, enobufs 28
    stats 400000, enobufs 35
    stats 500000, enobufs 49
    stats 600000, enobufs 63
    stats 700000, enobufs 80
    stats 800000, enobufs 94
    stats 900000, enobufs 114
    stats 1000000, enobufs 138

    elm3b94:/tmp # ./getdelays -m 2-3 -r 2048 -l
    cpumask 2-3 maskset 1
    receive buf size 2048
    listen forever
    stats 100000, enobufs 5
    stats 200000, enobufs 6
    stats 300000, enobufs 10
    stats 400000, enobufs 14
    stats 500000, enobufs 19
    stats 600000, enobufs 33
    stats 700000, enobufs 38
    stats 800000, enobufs 43
    stats 900000, enobufs 54
    stats 1000000, enobufs 59


    elm3b94:/tmp # ./getdelays -m 1 -r 2048 -l
    cpumask 1 maskset 1
    receive buf size 2048
    listen forever
    stats 100000, enobufs 3
    stats 200000, enobufs 6
    stats 300000, enobufs 19
    stats 400000, enobufs 25
    stats 500000, enobufs 30
    stats 600000, enobufs 31
    stats 700000, enobufs 33
    stats 800000, enobufs 45
    stats 900000, enobufs 48
    stats 1000000, enobufs 52


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

    \
     
     \ /
      Last update: 2006-07-11 06:53    [W:0.028 / U:0.112 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site