Re: Performance of packet writing: Blocksize matters
Johannes Niess <[email protected]> Sat, 16 Dec 2006 00:24:16 +0100
| Newsgroups | gmane.linux.suse.packet-writing |
|---|---|
| Message-ID | <[email protected]> |
--nextPart3303563.v1x1OER3hz
Content-Type: multipart/mixed;
boundary="Boundary-01=_h6ygFQeG0HY5gnu"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--Boundary-01=_h6ygFQeG0HY5gnu
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Am Mittwoch 13 Dezember 2006 23:07 schrieb Phillip Susi:
> > echo noop > /sys/block/hdc/queue/scheduler
>
> Yes.
>
> Let me know how the noop scheduler performs.
No significant difference (see below).
Then I naively tried patching packetcdvd.c but saw no change.
The attatched diststats output while performing the tests is very interesti=
ng=20
in several aspects:
1) pktcdvd does not provide statistics. All columns are zero.
2) With the "good" pktcdvd block size the underlying device always has 8=20
writes in transit. (column 9 according=20
to /usr/src/linux/Documentation/iostats.txt)
3) The "bad" pktcdvd blocksize has between 0 and 8 writes in transit. The=20
average is about 1.
4) The good blocksize hdc write has about 150 writes in transit.
5) The bad blocksize hdc write has a 1 write transit baseline. Spikes of ab=
out=20
80 writes occur about every 3 to 5 seconds.
It looks like the drive is not constantly feed with enough data to even kee=
p=20
it spinning.=20
Did I forget something stupid or does this also occur on your hardware? All=
=20
you need is a DVD+RW medium without valuable data. You can savely abort (^C=
)=20
when it takes too much time.
stingray ~ # echo noop > /sys/block/hdc/queue/scheduler
stingray ~ # dd if=3D/dev/zero of=3D/dev/hdc bs=3D32768 count=3D25000
25000+0 records in
25000+0 records out
819200000 bytes (819 MB) copied, 98.3706 seconds, 8.3 MB/s
stingray ~ # dd if=3D/dev/zero of=3D/dev/hdc bs=3D32769 count=3D25000
18879+0 records in
18879+0 records out
618645951 bytes (619 MB) copied, 967.351 seconds, 640 kB/s
stingray ~ # pktsetup dvdrw /dev/hdc
stingray ~ # dd if=3D/dev/zero of=3D/dev/pktcdvd/dvdrw bs=3D32768 count=3D2=
5000
25000+0 records in
25000+0 records out
819200000 bytes (819 MB) copied, 86.4617 seconds, 9.5 MB/s
stingray ~ # dd if=3D/dev/zero of=3D/dev/pktcdvd/dvdrw bs=3D32769 count=3D2=
5000
9318+0 records in
9318+0 records out
305341542 bytes (305 MB) copied, 560.31 seconds, 545 kB/s
/*
* flush the drive cache to media
*/
static int pkt_flush_cache(struct pktcdvd_device *pd)
{
struct packet_command cgc;
init_cdrom_command(&cgc, NULL, 0, CGC_DATA_NONE);
cgc.cmd[0] =3D GPCMD_FLUSH_CACHE;
cgc.quiet =3D 1;
/*
* the IMMED bit -- we default to not setting it, although that
* would allow a much faster close, this is safer
*/
=2D #if 0
+ #if 1
cgc.cmd[1] =3D 1 << 1;
#endif
return pkt_generic_packet(pd, &cgc);
}
--Boundary-01=_h6ygFQeG0HY5gnu
Content-Type: text/plain;
charset="iso-8859-1";
name="diskstats.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="diskstats.txt"
in a different shell:=20
dd if=3D/dev/zero of=3D/dev/pktcdvd/dvdrw bs=3D32768 count=3D25000
25000+0 records in
25000+0 records out
819200000 bytes (819 MB) copied, 86.4149 seconds, 9.5 MB/s
niess@stingray ~ $ while true; do grep hdc /proc/diskstats ; grep pktc /pro=
c/diskstats ;sleep 1;done
22 0 hdc 40373 834 326032 1934172 92721 340009 8036648 27999652 8 2380=
168 29933912
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 93063 340009 8058536 28007716 8 2381=
180 29941984
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 93405 340009 8080424 28015796 8 2382=
192 29950072
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 93747 340009 8102312 28023876 8 2383=
204 29958156
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 94090 340009 8124264 28031972 8 2384=
216 29966232
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 94438 340009 8146536 28040184 8 2385=
248 29974468
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 94780 340009 8168424 28048256 8 2386=
256 29982516
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 95122 340009 8190312 28056340 8 2387=
268 29990608
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 95464 340009 8212200 28064396 8 2388=
280 29998668
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 95806 340009 8234088 28072484 8 2389=
292 30006760
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 96149 340009 8256040 28080556 8 2390=
304 30014816
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 96498 340009 8278376 28088812 8 2391=
336 30023072
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 96840 340009 8300264 28096896 8 2392=
348 30031164
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 97182 340009 8322152 28104928 8 2393=
360 30039204
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 97523 340009 8343976 28112992 8 2394=
368 30047268
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 97864 340009 8365800 28121060 8 2395=
376 30055332
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 98205 340009 8387624 28129124 8 2396=
384 30063392
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 98547 340009 8409512 28137212 8 2397=
396 30071488
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 98888 340009 8431336 28145272 8 2398=
404 30079548
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 99229 340009 8453160 28153336 8 2399=
412 30087612
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 99570 340009 8474984 28161400 8 2400=
420 30095676
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 99911 340009 8496808 28169468 8 2401=
428 30103740
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 100253 340009 8518696 28177540 8 240=
2440 30111816
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 100596 340009 8540648 28185596 8 240=
3452 30119856
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 100938 340009 8562536 28193676 8 240=
4464 30127944
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 101279 340009 8584360 28201736 8 240=
5472 30136004
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 40373 834 326032 1934172 101620 340009 8606184 28209764 8 240=
6480 30144032
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
stingray ~ # dd if=3D/dev/zero of=3D/dev/pktcdvd/dvdrw bs=3D32769 count=3D2=
5000
3525+0 records in
3525+0 records out
115510725 bytes (116 MB) copied, 77.7271 seconds, 1.5 MB/s
niess@stingray ~ $ while true; do grep hdc /proc/diskstats ; grep pktc /pro=
c/diskstats ;sleep 1;done
22 0 hdc 41039 834 331360 1940368 107487 340009 8981672 28348236 1 243=
0020 30288608
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 41186 834 332536 1941300 107487 340009 8981672 28348236 1 243=
0948 30289536
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 41333 834 333712 1942228 107487 340009 8981672 28348236 1 243=
1876 30290464
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 41480 834 334888 1943184 107487 340009 8981672 28348236 1 243=
2836 30291424
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 41628 834 336072 1944152 107487 340009 8981672 28348236 1 243=
3800 30292388
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 41776 834 337256 1945096 107487 340009 8981672 28348236 1 243=
4744 30293332
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 41924 834 338440 1946048 107487 340009 8981672 28348236 1 243=
5700 30294288
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42073 834 339632 1947004 107487 340009 8981672 28348236 1 243=
6656 30295244
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42229 834 340880 1948000 107487 340009 8981672 28348236 1 243=
7652 30296240
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42378 834 342072 1948920 107487 340009 8981672 28348236 1 243=
8576 30297164
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42528 834 343272 1949924 107487 340009 8981672 28348236 1 243=
9576 30298164
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42678 834 344472 1950844 107487 340009 8981672 28348236 1 244=
0500 30299088
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42829 834 345680 1951840 107487 340009 8981672 28348236 1 244=
1492 30300080
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42872 834 346024 1952120 107495 340009 8982184 28348384 0 244=
1796 30300504
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42872 834 346024 1952120 107495 340009 8982184 28348384 0 244=
1796 30300504
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42872 834 346024 1952120 107495 340009 8982184 28348384 1 244=
1868 30300576
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42873 834 346032 1952372 107534 340009 8984680 28354880 8 244=
2876 30307376
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42875 841 346072 1953056 107616 340009 8989928 28357452 1 244=
3780 30310872
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42876 841 346080 1953540 107617 340009 8989992 28357460 1 244=
3984 30311076
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42987 841 346968 1954184 107624 340009 8990440 28357576 0 244=
4576 30311760
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42988 841 346976 1954412 107650 340009 8992104 28358132 8 244=
5188 30315052
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 42988 841 346976 1954412 107651 340009 8992168 28358872 8 244=
6196 30323116
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43059 841 347544 1954916 107747 340009 8998312 28371748 1 244=
7096 30326668
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43104 844 347912 1955784 107755 340009 8998824 28371884 0 244=
7728 30327668
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43105 844 347920 1956012 107781 340009 9000488 28372452 8 244=
8344 30331000
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43105 851 347920 1956012 107876 340009 9006568 28380988 2 244=
9248 30337280
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43108 851 347968 1957188 107877 340009 9006632 28380996 0 244=
9820 30338184
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43218 851 348848 1957784 107885 340009 9007144 28381124 0 245=
0444 30338908
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43218 851 348848 1957784 107885 340009 9007144 28381124 0 245=
0444 30338908
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43219 851 348856 1958028 107911 340009 9008808 28381676 8 245=
1124 30342640
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43220 862 348864 1958208 108005 340009 9014824 28390064 2 245=
2028 30348508
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43222 862 348920 1959104 108006 340009 9014888 28390068 0 245=
2476 30349172
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43332 862 349800 1959720 108014 340009 9015400 28390204 0 245=
3120 30349924
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43332 862 349800 1959720 108014 340009 9015400 28390204 0 245=
3120 30349924
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43333 862 349808 1959936 108040 340009 9017064 28390772 8 245=
3900 30354652
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43334 865 349816 1960160 108135 340009 9023144 28399232 2 245=
4800 30359816
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43336 865 349840 1961016 108136 340009 9023208 28399240 0 245=
5136 30360256
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43503 865 351176 1961852 108136 340009 9023208 28399240 1 245=
5976 30361096
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43560 865 351632 1962072 108143 340009 9023656 28399336 1 245=
6280 30361472
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43561 865 351640 1962300 108170 340009 9025384 28400580 8 245=
7288 30368384
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43561 876 351640 1962300 108266 340009 9031528 28413160 2 245=
8188 30375468
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43564 876 351704 1963412 108267 340009 9031592 28413164 0 245=
8856 30376576
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43668 876 352536 1964044 108267 340009 9031592 28413164 1 245=
9488 30377208
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43675 876 352592 1964068 108274 340009 9032040 28413252 1 245=
9724 30377512
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43676 876 352600 1964296 108301 340009 9033768 28414500 8 246=
0732 30385324
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43676 879 352600 1964296 108396 340009 9039848 28427120 2 246=
1636 30391672
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43679 879 352632 1965348 108397 340009 9039912 28427128 0 246=
2152 30392476
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43790 879 353520 1965948 108405 340009 9040424 28427248 0 246=
2776 30393196
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
22 0 hdc 43790 879 353520 1965948 108405 340009 9040424 28427248 0 246=
2776 30393196
254 0 pktcdvd0 0 0 0 0 0 0 0 0 0 0 0
niess@stingray ~ $ =20
--Boundary-01=_h6ygFQeG0HY5gnu--
--nextPart3303563.v1x1OER3hz
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
iD8DBQBFgy6oZ86b9aw2E+0RAux1AJ9TAh921HAhzt4UZ97/3tQrGr3cZgCePdA2
mSNTOmdnhJWWNFiv1S9Gtlc=
=bI1n
-----END PGP SIGNATURE-----
--nextPart3303563.v1x1OER3hz--