On Fri, Aug 03, 2018 at 12:56:37PM -0400, Alan Stern wrote: > On Fri, 3 Aug 2018, Martin Hicks wrote: > > > > > Hi, > > > > I've run into a huge performance gap between running a g_mass_storage > > gadget with the backing file pointing to a raw partition (/dev/mmcblk1) > > vs. creating a file on an ext4 filesystem and exporting that. > > > > With the partition I see write rates around 5MB/s, and with /proc/sys/vm/block_dump > > enabled I can see that all writes are 512-byte single-sector writes. > > > > Using a file within ext4fs, I get around 20MB and block_dump shows large IOs > > (mostly 2048 sector). > > > > Is there any way to get raw-partition to better use caching and not write back > > every sector individually? > > g_mass_storage does no buffering internally; the benefit you get with > ext4 comes from buffering within the filesystem. > > I have no idea how much or what kind of buffering the block-layer > drivers do for raw partition accesses. You're better off asking the > people responsible for the block layer about that. The culprit ended up being a badly aligned partition. Make sure your partitions start on some reasonable boundary (like 1MB). mh -- Martin Hicks P.Eng. | mort@xxxxxxxx Bork Consulting Inc. | +1 (613) 266-2296