Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
скорость работы с SD-картой (запись)
Pavel Ivanchenko
Добавлено 24.09.2010 12:05 Сообщение: 11
Pavel Ivanchenko
Admin
4.39

Пункты: 91406
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
вообще: насколько я понимаю, работа с шиной SD-карты идет в драйвере тупо как с портом ввода-вывода (PA4-11)? то бишь все операции делаются как: установил биты, снял биты, и т.п.?
и все это делает АРМ, так?
А что мешает в доку заглянуть ?
Если все было бы как описываете, получили бы скорость в десяток килобайт при 100% загрузке процессора ...
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 24.09.2010 14:17 Сообщение: 12
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
Цитата
вообще: насколько я понимаю, работа с шиной SD-карты идет в драйвере тупо как с портом ввода-вывода (PA4-11)? то бишь все операции делаются как: установил биты, снял биты, и т.п.?
и все это делает АРМ, так?
А что мешает в доку заглянуть ?
Если все было бы как описываете, получили бы скорость в десяток килобайт при 100% загрузке процессора ...

ой ... да , надо было глянуть.
а всеж таки , тогда почему такая относительно низкая скорость записи? Вот скажем, фотоаппарат пишет многомегабайтный снимок на туже карту, но заметно быстрее.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.09.2010 15:02 Сообщение: 13
sasamy
4.70

Пункты: 77057
Регистрация: 14.08.2009
Покажите вывод команды (выполнить в корне исходников ядра)
# grep "CONFIG_DEFAULT_IOSCHED" .config
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 24.09.2010 17:29 Сообщение: 14
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
а всеж таки , тогда почему такая относительно низкая скорость записи? Вот скажем, фотоаппарат пишет многомегабайтный снимок на туже карту, но заметно быстрее.

многомегабайтный - это сколько? для 7МПикс камеры это 3-4МБ jpeg
а ОС фотоаппарата можно рассматривать практически как standalone. соответственно когда снимок пишется на карточку, фот не реагирует на кнопки и не показывает ничего на экране.

низкая пропускная способность тракта записи из буфера памяти до сектора в карточке может быть по многим причинам. начиная от скорострельности самой карточки, через кривой драйвер, неполностью запрограмирован контроллер SD/MMC в АРМ, частота тактовой это контроллера, наличие/отсутствие ДМА и тыпы

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 24.09.2010 19:52 Редактировалось 24.09.2010 20:11 Сообщение: 15
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
Цитата
а всеж таки , тогда почему такая относительно низкая скорость записи? Вот скажем, фотоаппарат пишет многомегабайтный снимок на туже карту, но заметно быстрее.

многомегабайтный - это сколько? для 7МПикс камеры это 3-4МБ jpeg
а ОС фотоаппарата можно рассматривать практически как standalone. соответственно когда снимок пишется на карточку, фот не реагирует на кнопки и не показывает ничего на экране.


ну во-первых для моей 10px камеры скорость серийной съемки 1.4 кадра/сек, то есть запись идет со скоростью где-то 5-7 Мб/сек, во-вторых 3-4 Мб - это JPG, то есть из этих 0.7сек еще сколько-то занимает (пусть и аппаратное) сжатие снимка, так что скорость еще выше

Цитата
Покажите вывод команды (выполнить в корне исходников ядра)
# grep "CONFIG_DEFAULT_IOSCHED" .config


CONFIG_DEFAULT_IOSCHED="noop"
как понимаю - этот планировщик для меня наилучший, т.к. наиболее важна скорость записи
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.09.2010 20:10 Редактировалось 24.09.2010 20:17 Сообщение: 16
sasamy
4.70

Пункты: 77057
Регистрация: 14.08.2009
Цитата

CONFIG_DEFAULT_IOSCHED="noop"


Круто. Чего же вы хотели с таким планировщиком ? Пробуйте с cfq или deadline.
[*] Enable the block layer ---> IO Schedulers ---> Default I/O scheduler (CFQ) ---> (X) CFQ

Еще смотрите
General setup ---> Choose SLAB allocator (SLUB (Unqueued Allocator)) ---> (X) SLUB (Unqueued Allocator)
или
(X) SLAB

И тут
Kernel Features ---> [*] Preemptible Kernel
если ядро не древнее - там оно будет
Спуститься к концу Подняться к началу
Персональная информация
Valentinus
Добавлено 25.09.2010 16:39 Сообщение: 17
Valentinus
4

Пункты: 2138
Регистрация: 23.01.2010
Пол: Мужчина
Цитата
Цитата

CONFIG_DEFAULT_IOSCHED="noop"


Круто. Чего же вы хотели с таким планировщиком ? Пробуйте с cfq или deadline.

дедлайн мне никак нельзя - он устанавливает наибольший приоритет операциям чтения, а мне нужно именно чтобы приоритет имела запись над чтением.
cfq конечно попробовать можно- но мне думается он дст больше непредсказуемости задержек, нежели ускорения операций. CFQ дает выигрыш когда выполняется много задач (процесоов) обращающихся к носителю с переменным временем доступа (типа винчестера)- тогда оптимизация множества запросов действительно ускоряет получение/сохранение данных В моем же случае есть фактически одна активная программа, а носитель- SD-карта, где время доступа к различным секторам одинаково.

так что noop конечно ничего не оптимизирует (а собственно и не надо - и запись и чтение идут линейно), зато все предсказуемо.

Цитата

Еще смотрите
General setup ---> Choose SLAB allocator (SLUB (Unqueued Allocator)) ---> (X) SLUB (Unqueued Allocator)
или
(X) SLAB

И тут
Kernel Features ---> [*] Preemptible Kernel
если ядро не древнее - там оно будет


первую опцию посмотрю, а по поводу пользы от второй сомневаюсь по отзывам ее включение делает систему более "отзывчивой", но снижает производительность)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux