Здравствуйте!
На плате SK-iMX6Q после установки ядра rel_imx_3.0.35_4.1.0-sk перестал видеться диск SSD SATA. На ядре rel_imx_3.0.35_1.1.3-sk он есть. Ошибок при загрузке не пишет, только "SCSI subsystem initialized" и все. AHCI в конфиге ядра включал-выключал, не помогает. Все настройки по умолчанию.
Где копать?
Здравствуйте!
Появился еще один вопрос - я в линуксе новичек, прошу сильно не пинать. На ядре rel_imx_3.0.35_4.1.0-sk у меня почему-то не работает кэш при работе с SATA диском. На прошлом ядре было:
# hdparm -tT /dev/sda1
..
412 MB in 0.51 seconds = 825539 kB/s
Timing buffered disk reads: 365 MB in 3.00 seconds = 124512 kB/s
на rel_imx_3.0.35_4.1.0-sk:
236 MB in 0.51 seconds = 471586 kB/s
Timing buffered disk reads: 158 MB in 3.00 seconds = 53781 kB/s
Результаты по dd аналогичные - и запись, и чтение идет теперь без кэша. Собственно и в моей программе и write, и fwrite ведут себя аналогично.
А мне в моем приложении кэширование при записи на диск нужно иметь, что-бы увеличить кратковременную скорость записи.
В чем тут загвоздка?
Спасибо за советы, но заметного результата пока нет:
Регистр поменял на 0x007f007f.
В menuconfig попробовал и no-op и deadline.
В bootargs_mmc добавил ddr528, при загрузке появилось
starterkit: update_ddr_freq 528000000.
В результате скорость возросла где-то на 10%, видимо из-за увеличения частоты памяти.
Вот еще тесты, на 1.1.3, запись файла 1Гб:
# time dd if=/dev/zero of=/mnt/sda1/output1G bs=10M count=100
100+0 records in
100+0 records out
real 0m 8.75s
user 0m 0.00s
sys 0m 8.66s = 115 Мб/с
и на 4.1.0:
# time dd if=/dev/zero of=/mnt/sda1/output_1G bs=10M count=100
100+0 records in
100+0 records out
real 0m 18.01s
user 0m 0.00s
sys 0m 17.83s = 55 Мб/сек
Я тоже заметил, что на крайних ядрах система стала явно медленней - я замерял время исполнения теста памяти и разница сорставляла ~2.5 раза.
Первым делом, решили, что это изменения относительно XBMC (то что Вы уже исправили, плюс аргумент запуска ядра).
Я внимательно еще не разбирался, но предварительно, тоже не ощутил увеличения ...
Можно предположить, что в старом ядре отключен (или не существует) какой то из модулей какого-нибудь аппаратного ускорителя, который и отъедает значительную часть трафика памяти ...
PS ddr528 уберите, с недавних пор (как сменилась ревизия чипов памяти) - будет глючить при нагруженной системе.
Корневая ФС при тестах на разных ядрах одна и та же ? выложите еще куда-нибуть свои текущие конфиги от обоих ядер.
ядро ARM - это далеко не вся система :) как-то не обращал внимания раньше на эррату и тут внезапно вычитал что например на i.mx6 у cortex-a9 не работает prefetch, есть ошибки в кешах - так что вполне может быть обход какой-нибуть эрраты в новой версии ядра так повлиял. Особо меня напрягает интересный патч в Yocto
Я по всякому пробовал. Запускаю 1.1.3 с NAND, соответственно и корневая там-же, а 4.1.0 - на SD-карте со своей корневой. И просто одно ядро менял на SD-карте, при той-же корневой на карте.
Проверял также и с оригинальными ядрами, которые сразу с местного FTP, ничего не меняя - эта разница в скорости есть сразу - т.е. с оригинальным конфигом.
Единственное, с оригинальным ядром 4.1.0 у меня SSD не сразу заводился, а если загрузить сначала 1.1.3, а потом ребут на 4.1.0 без снятия питания, то диск находится. А просто после включения 4.1.0 диска не видно. Помогло включение PCI-E, как написал во втором сообщении.
Т.е. конфиги выкладывать наверное смысла нет, под себя я в них ничего не менял. Но вот кстати конфиги что в виртуальной машине и что с ядром, исходники которого идут отдельным архивом - разные. У меня пока все это из ВМ. Может надо ядро из архива скомпилировать?
Дополнение
Взял ядро из отдельного архива - ситуация та-же.
А вообще-то да, и память стала медленнее, даже с поправкой на более низкую частоту:
На ядре 1.1.3:
# time dd if=/dev/zero of=/dev/null bs=100M count=100
100+0 records in
100+0 records out
real 0m 5.42s
user 0m 0.00s
sys 0m 5.42s (1,85Гб/с)
На ядре 4.1.0:
SK-iMX6Q login: root
# time dd if=/dev/zero of=/dev/null bs=100M count=100
100+0 records in
100+0 records out
real 0m 9.44s
user 0m 0.00s
sys 0m 9.44s (1,06Гб/с)
врядли это непоспедственно память стала медленней :) настройки памяти выполняются в убуте и реальное падение от снижения частоты ~ 10% как вы заметили. Скорей всего - снижение производительности процессора из-за кешей - по логам git сложновато отследить что там поменялось. Для местных плат ядро 4.1.0 - релизное с патчами которые в Yocto было, после релиза ветка 4.1.0