I'm getting much faster read speeds from an SD card when mounting the
card and reading files (~50MB/s) than when reading the raw device
rsd1c (~25MB/s). If anything, shouldn't it be the other way round,
given that the file system has some overhead?

Here are the measurements when mounting and reading files:
$ doas mount /dev/sd1i /card
$ mount | grep card
/dev/sd1i on /card type msdos (local)
$ cat /card/DCIM/100MSDCF/* | pv -bra -Ss500m | sha1
 500MiB [49.2MiB/s] [49.2MiB/s]
e823304263649ee4aff5c4563878cd9111cffebf

For the raw device (rsd1c):
$ doas cat /dev/rsd1c | pv -bra -Ss500m | sha1
 500MiB [25.5MiB/s] [25.5MiB/s]
ca17bdb9a657bbcf654a60057861be8fe02df0b1

For what it's worth, the block device (sd1c):
$ doas cat /dev/sd1c | pv -bra -Ss500m | sha1
 500MiB [8.53MiB/s] [8.53MiB/s]
ca17bdb9a657bbcf654a60057861be8fe02df0b1

The card was previously formatted with "newfs_msdos -s 8000000 sd1c"
and then files were written on it by a camera.

Here is the card reader's dmesg bit:
umass0 at uhub0 port 13 configuration 1 interface 0 "Generic USB3.0
Card Reader" rev 3.00/15.32 addr 5
umass0: using SCSI over Bulk-Only
scsibus2 at umass0: 2 targets, initiator 0
sd1 at scsibus2 targ 1 lun 0: <Generic, STORAGE DEVICE, 1532> SCSI4
0/direct removable
sd1: 488154MB, 512 bytes/sector, 999740416 sectors
sd2 at scsibus2 targ 1 lun 1: <Generic, STORAGE DEVICE, 1532> SCSI4
0/direct removable

Reply via email to