2013-09-04 3 views
3

Здравствуйте, я использую средство USB usb для эмуляции USB-накопителя. Он отлично работает, за исключением очень низкой производительности.Очень низкая производительность виртуального устройства g_mass_storage virtual usb

Я использую файл 4Gb, созданный dd, и создал на нем раздел ext2 или vfat (попробовал оба). Чем я смонтировать его, используя следующую последовательность команд:

# 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 

После этого я получаю/DEV/SDC и/Dev/sdc1 устройства, созданные без каких-либо ошибок в 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 

Проблема заключается в том, что IO производительность очень плохая. Написание файла 200 Мб занимает некоторое время:

$ 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 

Который составляет около 300K/sec. Однако один и тот же файл в той же системе копируется на настоящую USB-флешку менее чем за минуту.

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] 

Можно ли что-нибудь сделать, чтобы улучшить производительность g_mass_storage-эмулировать USB диск?

PS: Я использую ядро ​​

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

ответ

0

То же самое здесь.

После одной ночи в 6:00 у меня было решение для меня.

modprobe g_mass_storage file=/home/del/img/flash stall=0 buflen=65536 

Это сделано до 5MByte/сек

modprobe g_mass_storage file=/home/del/img/flash stall=0 nofua=1 

Это сделали до 11MByte/сек

Сочетание "buflen" и "nofua" не очень помогло. О "nufua" читайте здесь: http://lxr.free-electrons.com/source/drivers/usb/gadget/file_storage.c?v=3.5

Ultrasoft/

Смежные вопросы