Отправляет email-рассылки с помощью сервиса Sendsay

очень низкая скорость записи на флешку на ядре 2.6

Здравствуйте!

Собрал ядро 2.6.14 и никак не могу настроить нормальную работу флешки.
Флешка сама старенькая, интерфейс 1.0, а мать имеет порты 2.0.
Читается с флешки со скоростью 1Mb/s, а вот запись нереально низкая -
около 8.5Kb/s. На ядре 2.4 скорость записи была и осталась 300-400Kb/s..

Привожу параметры ядра 2.6

CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=y

# USB support

CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=m
CONFIG_USB_STORAGE=m
Вставляем влешку и монтируем. Специально собрал это модулями, для
наглядности и тестов. Пробовал собирать их и монолитно, часть
модулями, а часть монолитно, ничего не получилось..

== lsmod ==
usb_storage 31364 1
ohci_hcd 19716 0
uhci_hcd 31376 0
ehci_hcd 30088 0
root@home:/# tail -n 15 /var/log/messages
Dec 1 23:10:20 home kernel: USB Mass Storage support registered.
Dec 1 23:10:20 home udev[3794]: creating device node '/dev/usbdev4.2'
Dec 1 23:10:25 home kernel: Vendor: OTi Model: Flash Disk
Rev: 1.11 Dec 1 23:10:25 home kernel:
Type: Direct-Access ANSI SCSI revision: 02
Dec 1 23:10:25 home kernel: SCSI device sda: 258048 512-byte hdwr
sectors (132 MB) Dec 1 23:10:25 home kernel: sda: Write Protect is off
Dec 1 23:10:25 home kernel: SCSI device sda: 258048 512-byte hdwr
sectors (132 MB) Dec 1 23:10:25 home kernel:
sda: Write Protect is off
Dec 1 23:10:25 home scsi.agent[3803]: how to add device
type=at /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0/host0/target0:0:0/0:0:0:0
??
Dec 1 23:10:25 home kernel: sda: sda1 Dec 1 23:10:25 home kernel:
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Dec 1 23:10:25 home kernel: Attached scsi generic sg0 at scsi0,
channel 0, id 0, lun 0, type 0
Dec 1 23:10:26 home udev[3840]: creating device node '/dev/sg0'
Dec 1 23:10:26 home udev[3823]: creating device node '/dev/sda'
Dec 1 23:10:27 home udev[3832]: creating device node '/dev/sda1'

При загрузке насчет usb никаких ошибок нет. Все корректно определяется.

Параметры ядра 2.4 и 2.6 насчет usb практически одинаковы и
вот такая ерунда :(

Ответить   Thu, 1 Dec 2005 23:29:10 +0300 (#483374)

 

Ответы:

1 декабря 2005 23:29 | mikhail:

Убираем sync из опций монтирования и?..

Ответить   Roman I Khimov Fri, 2 Dec 2005 09:48:56 +0300 (#483493)

 

On Fri, 2 Dec 2005 09:48:56 +0300
Roman I Khimov <rik@o*****.info> wrote:

Все стало в порядке :) Только как-то непривычно стало теперь. Моментом
файл оказывается на флешке, хотя файлик пишется еще туда. Специально
проверил на 10Мб файле. Файл за пол секунды ушел на флешку. Если после
этого попытаться ее отмонтировать, то сразу видно, что файл туда еще
пишется и флешка отмонтируется еще только через секунд 30-40..

Это как-то выровнять можно? Пишу в основном с помощью MC.

Большое спасибо!

Ответить   Fri, 2 Dec 2005 23:51:48 +0300 (#483952)

 

On Fri, 2 Dec 2005 23:51:48 +0300
mikhail <st-mikha***@m*****.ru> wrote:

Насколько я знаю - использовать опцию sync ;)

Ответить   Matvey Sat, 3 Dec 2005 00:57:59 +0200 (#483954)

 

2 декабря 2005 23:51 | mikhail:

Дело в том, что в районе 2.6.12 в Linux была добавлена поддержка реального
sync для FAT, раньше он на него попросту забивал. Внутреннее уродство FAT
приводит как раз к таким неприятным последствиям в плане скорости (особенно
на флэшках, которые вынуждены стирать цельный свой блок, чтобы перезаписать
суперблок FAT, причем, для дешевых флэшек это может оказаться еще и
смертельным трюком - постоянная перезапись одного блока флэшу не на пользу).

Честно говоря, не вижу в этом проблемы. umount и все в порядке. Подождать?
Ну что ж поделать, надо и подождать. Можно, конечно, прописать fsync
где-нибудь в mc, где он копированием занимается. Только смысла нет,
консольные утилиты ведут себя точно так же, грамотно пользуясь мощнейшими
кэшами Linux. Если флэшка болтается долго, то регулярный sync все запишет
сам, если флэшка болтается недолго, то ждать umount придется ровно столько
же, сколько и "правильного" копирования. Что так, что так - все то же самое.

Можно еще пользоваться "blockdev --flushbufs /dev/sda1", если есть желание.

Ответить   Roman I Khimov Sat, 3 Dec 2005 12:30:17 +0300 (#484102)