Re: [patch] get_request starvation fix

rwhron
2002-02-09T01:52:11Z

On Fri, Feb 08, 2002 at 10:29:37AM -0800, Andrew Morton wrote:
> > > Here's a patch which addresses the get_request starvation problem.
> >
> > Looks like a tremendously important patch. Thanks!
>
> hmm. Dunno. I don't think it's very common to hit get_request
> starvation. Only for dbenchy things, I suspect. Still, it's
> good to have a design which addresses nasty corner cases.

It really works!

tiobench sequential reads with 32 threads went from max latency of
193 seconds down to 7 seconds with your make_request, read-latency2
and low-latency patches. (2.4.18-pre9-am1) The % of high latency
requests also went down.

K6-2 475 mhz with 384 MB ram and reiserfs on IDE disks.
Average of 3 runs.
Total File size = 1024 MB. (individual file size = 1024 / num-threads)
Read, write, and seek rates in MB/sec.
Latency in milliseconds.
Percent of requests that took longer than 2 and 10 seconds.

Sequential Num Avg Maximum Lat% Lat% CPU
Reads Thr Rate (CPU%) Latency Latency >2s >10s Eff
--- ---------------------------------------------------
2.4.18-pre9-am1 8 8.94 13.33% 10.402 1785.52 0.000 0.000 67
2.4.18-pre9 8 8.85 13.22% 10.537 1954.27 0.000 0.000 67
2.4.18-pre9-am1 16 8.98 13.70% 30.827 4023.09 0.000 0.000 66
2.4.18-pre9 16 8.91 13.60% 31.122 4072.67 0.000 0.000 65
2.4.18-pre9-am1 32 9.00 14.16% 70.834 7032.45 0.000 0.000 64
2.4.18-pre9 32 8.87 13.89% 66.135 193590.10 0.030 0.023 64

Random Num Avg Maximum Lat% Lat% CPU
Reads Thr Rate ( CPU%) Latency Latency >2s >10s Eff
--- ---------------------------------------------------
2.4.18-pre9-am1 8 0.69 1 .828% 132.242 473.73 0.000 0.000 38
2.4.18-pre9 8 0.71 2 .156% 128.869 510.38 0.000 0.000 33
2.4.18-pre9-am1 16 0.72 2 .154% 371.288 1410.13 0.000 0.000 33
2.4.18-pre9 16 0.74 2 .025% 364.871 1397.82 0.000 0.000 36
2.4.18-pre9-am1 32 0.74 2 .229% 816.605 2996.07 0.000 0.000 33
2.4.18-pre9 32 0.75 2 .163% 734.035 2841.97 0.000 0.000 35

Sequential Num Avg Maximum Lat% Lat% CPU
Writes Thr Rate (CPU%) Latency Latency >2s >10s Eff
--- ---------------------------------------------------
2.4.18-pre9-am1 8 11.45 52.33% 7.651 15095.52 0.058 0.000 22
2.4.18-pre9 8 9.23 40.84% 9.021 12351.12 0.040 0.000 23
2.4.18-pre9-am1 16 11.48 54.57% 22.253 41922.53 0.214 0.000 21
2.4.18-pre9 16 9.46 41.71% 26.374 28280.18 0.212 0.000 23
2.4.18-pre9-am1 32 11.37 55.91% 52.917 75331.67 0.679 0.004 20
2.4.18-pre9 32 9.50 42.55% 61.944 60970.74 0.770 0.005 22

Random Num Avg Maximum Lat% Lat% CPU
Writes Thr Rate (CPU%) Latency Latency >2s >10s Eff
--- ---------------------------------------------------
2.4.18-pre9-am1 8 0.62 2.393% 1.786 330.56 0.000 0.000 26
2.4.18-pre9 8 0.50 1.216% 1.700 333.32 0.000 0.000 41
2.4.18-pre9-am1 16 0.65 2.527% 4.533 996.54 0.000 0.000 26
2.4.18-pre9 16 0.52 1.267% 4.228 1236.08 0.000 0.000 41
2.4.18-pre9-am1 32 0.65 2.530% 7.980 1907.91 0.000 0.000 26
2.4.18-pre9 32 0.53 1.343% 7.818 2509.73 0.000 0.000 39

> > Do you have a patch for dbench too? :)
>
> /bin/rm?

Good one. It would be helpful though, if you've already done the work.
--
Randy Hron