Re: ll_rw_blk.c fails to merge requests. Help!

From: Giuliano Pochini (pochini@denise.shiny.it)
Date: Sat Aug 26 2000 - 19:34:59 EST


> > Making the request ordering stricter won't help with this situation - it
> > just makes it more fairly badly behaved. What _should_ help is to
> > "batch" the freeing of requests, so that you don't end up waking up
> > anybody (and everybody blocks on the requests being empty) until you've
> > free'd up, say, half of the request queue again.
>
> I did a quick patch doing just this -- and a just as quick dbench showed
> some improvement when batching freeing of requests of 64 at the time:
>
> 128M RAM used
>
> test7 stock (plus Neil's remerge-on-block patch, I liked it)
>
> burns:/mnt # ./dbench 48
> 48 clients started
> Throughput 20.224 MB/sec (NB=25.2799 MB/sec 202.24 MBit/sec)
>
> test7 with QUEUE_NR_REQUESTS >> 2 batched frees (+ Neil's patch, of course)
>
> burns:/mnt # ./dbench 48
> 48 clients started
> Throughput 23.482 MB/sec (NB=29.3525 MB/sec 234.82 MBit/sec)
>
> Patch attached, if anyone else wants to give it a go.

> reqfree-batching-1Name: reqfree-batching-1
> Type: Plain Text (text/plain)

This one works fine: no more non-merged requests :)
I also notice a performance boost with bonnie, mainly with char i/o,
obviously.

2.4.0-test6 (I do't remember what differs between the first and the
             2nd one.... probably MAX_SECTORS is doubled in the 2nd test)

              -------Sequential Output-------- ---Sequential Input--
--Random--
              -Per Char- --Block--- -Rewrite-- -Per Char- --Block---
--Seeks---
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec
%CPU
          400 5301 93.5 16954 12.9 6564 9.3 2955 72.0 15125 14.3 141.2 2.1
          400 5135 87.8 17032 12.3 6890 9.4 3395 80.7 16729 13.5 163.8 2.1

2.4.0-test7+yourpatch
              -------Sequential Output-------- ---Sequential Input--
--Random--
                  -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec
%CPU
          400 6846 87.4 18039 15.5 6620 9.9 5470 65.3 15230 14.5 133.5 2.0

2.2.16pp (usb patches)
                -------Sequential Output-------- ---Sequential Input-- -Random--
                -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks---
Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec
%CPU
          400 5116 97.9 20631 24.1 6912 18.3 3593 88.9 17223 16.4 188.4 3.6

2.2 is still faster...

My config: PowerMac G3 350MHz, Adaptec 2930U, HD IBM 9GB (raw speed is ~14MB/s
with
2.2 and 13-16MB/s with 2.4), 192 MB ram.

Bye.

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



This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:18 EST