LINUX.ORG.RU

Низкая скорость g_mass_storage виртуальной флешки

 usb gadget,


0

1

Запостил на stackoverflow, но там пока никто не отписался, может здесь помогут.

Суть в следующем, подключаю виртуальную флешку через функционал USB gadget (модуль g_mass_storage):

# modprobe dummy_hcd is_super_speed=1 # I tried is_high_speed=1, and no parameter too
# modprobe g_mass_storage file=/home/del/img/flash stall=0 # tried w/o stall=0 too
# mount /dev/sdc1 /mnt/tmp

/home/del/img/flash - это файл, созданный через dd и размеченный fdisk'ом. Имеется одна партиция, FS - ext2 (пробовал ещё vfat).

При подключении вижу в dmesg:

[1256700.986581] usb 3-1: reset high-speed USB device number 5 using dummy_hcd
[1256701.022551]  gadget: high-speed config #1: Linux File-Backed Storage
[1256701.242481] usb 3-1: reset high-speed USB device number 5 using dummy_hcd
[1256701.278422]  gadget: high-speed config #1: Linux File-Backed Storage
[1256701.422339]  gadget: high-speed config #1: Linux File-Backed Storage
[1256934.915697] usb 3-1: reset high-speed USB device number 5 using dummy_hcd
[1256934.951628]  gadget: high-speed config #1: Linux File-Backed Storage
[1256935.915155] usb 3-1: reset high-speed USB device number 5 using dummy_hcd
[1256935.951090]  gadget: high-speed config #1: Linux File-Backed Storage
[1256936.095018]  gadget: high-speed config #1: Linux File-Backed Storage
[1317073.396892] usb-storage 3-1:1.0: Quirks match for vid 0525 pid a4a5: 10000
[1317073.396995] scsi53 : usb-storage 3-1:1.0
[1317074.411883] scsi 53:0:0:0: Direct-Access     Linux    File-CD Gadget   0302 PQ: 0 ANSI: 2
[1317074.412669] sd 53:0:0:0: Attached scsi generic sg3 type 0
[1317074.431910] sd 53:0:0:0: [sdc] 8388608 512-byte logical blocks: (4.29 GB/4.00 GiB)
[1317074.443816] sd 53:0:0:0: [sdc] Write Protect is off
[1317074.443821] sd 53:0:0:0: [sdc] Mode Sense: 0f 00 00 00
[1317074.455839] sd 53:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[1317074.551757]  sdc: sdc1
[1317074.683704] sd 53:0:0:0: [sdc] Attached SCSI removable disk

Проблема в том, что запись производится очень медленно:

$ ls -lh file
-rw-rw-r-- 1 root del 206M Sep  4 09:34 file
$ time sudo cp file /mnt/tmp/
real    11m59.618s
user    0m0.000s
sys     0m0.260s

То есть около 300 Кб/сек. При этом этот же самый файл на этой же системе записывается на реальную флешку меньше, чем за минуту. Такое ощущение, что эмулируется USB 1.1 контроллер.

В момент копирования в iotop:

 TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                
 9986 be/4 root        0.00 B/s  262.05 K/s  0.00 % 99.86 % cp file /mnt/tmp/
20651 be/4 root       51.77 K/s  238.95 K/s  0.00 % 93.23 % [file-storage]

Чем это вызвано? Можно ли улучшить производительность виртуальной флешки?

Ядро:

$ uname -rm
3.2.0-4-686-pae i686

При копировании ошибок в dmesg нету (/proc/sys/kernel/printk выставлял в максимум).

Спасибо.

☆☆☆☆☆

Последнее исправление: DELIRIUM (всего исправлений: 1)

У меня интереснее. Такое повисло на втором sync, отъедая весь CPU (половину в iowait). И висит в uninterruptible sleep, ничем не убиваемое. iotop пустой.

sync && time (cp /var/tmp/rnd.dat /mnt/test/ && sync)

Само копирование вроде как быстро прошло (файл из urandom на <10MB). Федора 19 х64, ядро 3.10.10 плюс внешнесобранные сабжевые модули.

qux
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.