Page 8 of 18

Re: SATA в режиме IDE - полная поддержка

Posted: Sat Aug 24, 2013 2:29 am
by Mario_r4
Unduing
Просьба внимательно протестировать SVN r.3870.

Re: SATA в режиме IDE - полная поддержка

Posted: Sat Aug 24, 2013 2:42 pm
by Unduing
Mario_r4
Проблемы не зафиксированы.
Логи нужны?

Re: SATA в режиме IDE - полная поддержка

Posted: Sat Aug 24, 2013 3:01 pm
by Mario_r4
Unduing wrote:Логи нужны?
Пока нет, потом при следующих ревизиях, если вылезет что-нибудь, то понадобятся.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 8:45 am
by Mario_r4
Phantom-84 wrote:Тогда пользуемся SET FEATURES и выставляем желаемый режим на свой страх и риск.
Нет, не прокатило. Режим UltraDMA уже выбран согласно информационному блоку (512 байт) получаемому при обнаружении устройства.
Однако я выяснил удивительную вещь. Если прерывания от контроллера отключены, записью соответствующих битов в BAR1 и BAR3, то при попытке работать в DMA просто возвращается ошибка по таймауту. Однако стоит только включить прерывания, то сразу все вешается. Причем не важно есть в обработчике прерывания какие-либо действия вообще или он пустой.

Также на назначенном прерывании висят Ethernet и Wi-FI контроллер. Я пробовал их отключать через BIOS, но эффекта никакого не дало. Попробую еще принудительно повесить SATA контроллер на 14 или 15 прерывание. Они свободные и честно говоря не понятно почему BIOS вешает все устройства на одни и те же прерывания.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 11:46 am
by Serge
Mario_r4
Это может быть из-за неправильной настройки роутера прерываний. Надо смотреть документацию на чипсет и проверить как там подключено прерывание к 8259 и запрограммирован линк.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 12:14 pm
by Mario_r4
Serge wrote:Mario_r4
Это может быть из-за неправильной настройки роутера прерываний. Надо смотреть документацию на чипсет и проверить как там подключено прерывание к 8259 и запрограммирован линк.
Что на всех SATA работающих в режиме Native неправильно настроено? Стабильно вешается на всех ведь. Имхается мне что проблема может быть и в общем коде обработке прерываний самой Колибри. Там вообще все ядро ведь повисает. Даже Beep замирает и графическая часть.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 12:58 pm
by Serge
Mario_r4
А ты уверен, что снимаешь запрос прерывания с устройства в native ?
А если проверить в режиме APIC ?

USB, звук, AHCI и i915 работают совместно. Вероятность ошибки в ядре есть, но в драйвере она выше.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 1:17 pm
by Mario_r4
Serge wrote:А ты уверен, что снимаешь запрос прерывания с устройства в native ?
Если оно работает в SATA IDE, но порты не Legacy и прерывания не 14 и 15, а сам контроллер 018F - то что это еще может быть?
Spoiler:
Downloaded 168 times
Serge wrote:А если проверить в режиме APIC ?
Устройству назначено 10-е прерывание.
Spoiler:
Downloaded 166 times
В режиме AHCI дело выглядит так:
Spoiler:
Downloaded 165 times
В BIOS нет настройки отвечающей за включение/выключение APIC.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 4:36 pm
by Serge
Mario_r4
Если оно работает в SATA IDE, но порты не Legacy и прерывания не 14 и 15, а сам контроллер 018F - то что это еще может быть?
Я имел ввиду то, что сигнал прерывания от устройства сам по себе не снимается. Его надо явно сбрасывать. В ядре я ничего похожего не нашёл. В ISA режиме не фатально, а в PCI приводит к зависанию ядра.

Проверка в APIC
Вектор прерывания надо считывать уже после инициализации ядра, оно его меняет.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 5:41 pm
by Mario_r4
Serge wrote:Я имел ввиду то, что сигнал прерывания от устройства сам по себе не снимается. Его надо явно сбрасывать. В ядре я ничего похожего не нашёл. В ISA режиме не фатально, а в PCI приводит к зависанию ядра.
Хм.. а ведь ты гений! Ты натолкнул меня на мысль.

Раньше я пробовал воткнуть:
Spoiler:

Code: Select all

; clear Bus Master IDE Status register
; clear Error bit and Interrupt bit
        add     edx, 2
        mov     al, 6 ; 110b
        out     dx, al
В обработчик прерывания, но ничего не изменилось. Зависание было железным.

А теперь я решил попробовать так:
Spoiler:

Code: Select all

; clear Bus Master IDE Status register
; clear Interrupt bit
        add     edx, 2
        mov     al, 4 ; 100b
        out     dx, al
И система таки заработала! Никаких зависаний - файлы открываются значительно быстрее.
Spoiler:HD видео на примере сериала House и контейнера mkv правда, все равно подтормаживает спустя десяток секунд - загрузка процессора i5-450 стопроцентная, но тут уже с сами видеоплеером нужно разбираться.
Serge wrote: Проверка в APIC
Вектор прерывания надо считывать уже после инициализации ядра, оно его меняет.
А вот эту часть твоего сообщения я не понял. Причем тут APIC? Вроде так без APIC заработало, не знаю как будет делиться с другими устройствами правда.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 6:15 pm
by Serge
Mario_r4
Для сброса прерывания надо считывать статусный регистр 1F7 177.

Почему надо проверять в APIC
1.Иногда встречаются баги в PIC режиме. Похоже, что никто его толком уже не проверяет, все современные ОС работают в режиме APIC/MSI. Можно долго искать ошибку там, где её нет.
2.Ядро работает и в режиме APIC. Хоть и включается через задний проход, но всё же поддержка есть.
HD видео на примере сериала House и контейнера mkv правда, все равно подтормаживает спустя десяток секунд - загрузка процессора i5-450 стопроцентная, но тут уже с сами видеоплеером нужно разбираться.
Плеер не причём. Очень тормозная реализация файловой системы.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 10:19 pm
by Mario_r4
Serge wrote:Плеер не причём. Очень тормозная реализация файловой системы.
Эмм... а я помню еще то время, когда даже /bd дисков хватало и не заикалось. Интересно это было в параллельном мире или фантомные воспоминания? :mrgreen:

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 11:18 pm
by Serge
... а я помню еще то время, когда даже /bd дисков хватало и не заикалось
Fat32. А текущая реализация ntfs безнадёжна. Если надо считать файл за раз, ещё нормально. Но последовательное чтение просто кошмар. Хотя это ко всей vfs относится.

Re: SATA в режиме IDE - полная поддержка

Posted: Mon Aug 26, 2013 11:40 pm
by Mario_r4
Serge wrote:Fat32. А текущая реализация ntfs безнадёжна. Если надо считать файл за раз, ещё нормально. Но последовательное чтение просто кошмар. Хотя это ко всей vfs относится.
Так в том то и дело, что я читал с той же NTFS и даже с того же раздела и даже файл тот же. Вся разница в том, что в той реализации плеера происходила рассинхронизация видео и звука, но ничего не заикалось, в текущей реализации плеера видео и звук синхронно заикаются. Вернее первые 10 секунд они не заикаются, а вот потом начинают регулярно раз в 2-3 секунды. Я разумный человек и понимаю, что производительности даже моего неслабого i5-450 при таком подходе не хватает, но мне почему то думается что какая-либо оптимизация декодера возможна, просто ты сам в ту сторону не копал еще. Пенять исключительно на файловую систему не рационально.

Re: SATA в режиме IDE - полная поддержка

Posted: Tue Aug 27, 2013 9:02 am
by Serge
Mario_r4
Первые 10 секунд это кеш плеера. Так что производительности процессора хватает. А скорости чтения файла не хватает, кеш пустеет и начинает заикаться.