[DragonFlyBSD - Bug #1527] extremely bad USB/msdos performance
Venkatesh Srinivas via Redmine
bugtracker-admin at leaf.dragonflybsd.org
Mon Mar 26 10:54:55 PDT 2012
Issue #1527 has been updated by Venkatesh Srinivas.
Description updated
Assignee changed from 0 to Venkatesh Srinivas
Confirm w/ umass on latest master.
Possible leads:
1) msdosfs does not implement runahead/behind support in BMAP, so cluster_read/cluster_write don't get a chance to cluster. FreeBSD has some changes that will help in this regard.
2) NetBSD PR/34583 has a patch to track file-end position, avoiding some chain traversals. Helps w/ write performance on long files.
3) now that device vnodes can implement cluster operations and cluster_awrite is available, msdosfs could set B_CLUSTEROK on metadata writes to devvp.
4) For a more out-there patch, msdosfs could implement double-buffering on writes; the write path would allocate a new buffer, copy data in to it, and mark it as clusterable. The new buffer would be along the device vnode rather than the file vnode. This'll allow all data&metadata to cluster, regardless of file length limits. Would incur copying costs.
(This'd be similar to HAMMER's double_buffer mode, except reflected into writes rather than reads).
5) umass may be limiting maximum clustering. This should be investigated -- in my test on master, 4KB writes seemed to be the max.
----------------------------------------
Bug #1527: extremely bad USB/msdos performance
http://bugs.dragonflybsd.org/issues/1527
Author: Simon 'corecode' Schubert
Status: New
Priority: Normal
Assignee: Venkatesh Srinivas
Category:
Target version:
The performance for writing to msdosfs on an ehci usb device is
pathetic. I'm getting ~500KB/sec, while other OS can do at least 6MB.
the rsync process is most of the time in "iowait", "biows", "biord".
vmstat:
tin tout KB/t tps MB/s KB/t tps MB/s KB/t tps MB/s us ni
sy in id
8 680 60.86 56 3.33 0.00 0 0.00 10.00 2 0.02 3 0
5 0 93
7 400 64.00 2 0.12 0.00 0 0.00 16.00 1 0.02 1 0
5 0 94
10 415 64.00 2 0.12 0.00 0 0.00 0.00 0 0.00 3 0
5 0 92
9 528 0.00 0 0.00 0.00 0 0.00 16.00 2 0.03 2 0
3 0 95
9 541 64.00 4 0.25 0.00 0 0.00 16.00 86 1.34 2 0
6 0 92
10 399 0.00 0 0.00 0.00 0 0.00 16.00 138 2.16 4 0
6 0 90
8 546 64.00 2 0.12 0.00 0 0.00 16.00 4 0.06 7 0
8 0 85
7 509 37.75 89 3.28 0.00 0 0.00 15.68 37 0.57 3 0
8 0 89
10 545 0.00 0 0.00 0.00 0 0.00 16.00 131 2.05 3 0
8 0 89
1 104 4.00 1 0.00 0.00 0 0.00 16.00 40 0.62 5 0
7 0 87
2 226 48.00 86 4.03 0.00 0 0.00 14.29 7 0.10 4 0
6 0 90
102 100 64.00 2 0.12 0.00 0 0.00 16.00 110 1.72 2 0
5 0 93
126 102 64.00 2 0.12 0.00 0 0.00 16.00 37 0.58 3 0
6 0 91
72 103 64.00 1 0.06 0.00 0 0.00 13.29 124 1.61 0 0
4 0 95
42 98 64.00 1 0.06 0.00 0 0.00 0.00 0 0.00 1 0
3 0 96
176 225 45.40 86 3.81 0.00 0 0.00 16.00 2 0.03 4 0
6 0 90
136 104 19.43 84 1.59 0.00 0 0.00 16.00 11 0.17 7 0
8 0 85
70 121 0.00 0 0.00 0.00 0 0.00 16.00 26 0.41 1 0
10 0 89
26 100 64.00 5 0.31 0.00 0 0.00 16.00 140 2.19 2 0
5 0 93
2 219 56.79 91 5.05 0.00 0 0.00 15.79 58 0.89 3 0
6 0 91
--
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account
More information about the Bugs
mailing list