Re: [Patch 0/6] delay accounting & taskstats fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux