Page 2 of 3

Re: HDA - debug logs

Posted: Thu Mar 13, 2014 10:27 am
by Akyltist
Asper wrote:А в BIOS есть какая-то настройка переключения HDA/AC'97 ?
нет, сейчас приложу конфигурацию биоса.

Code: Select all

Insyde H2O Setup Utility Rev. 3.5.

Advanced

  USB BIOS Legacy Support        <Enabled>   Disabled
  HВС Configure As               <IDE>       AHCI
  AC Mode fan always on          <Enabled>   Disabled
  DC Mode fan always on          <Enabled>   Disabled
  VT Support                     <Enabled>   Disabled
  Use XD Capability              <Enabled>   Disabled
 >Internal Devices Configurations
      Azalia                     <Auto>      Disabled  Enabled
      LAN                        <Enabled>   Disabled
      USB Port                   <Enabled>   Disabled
      Blue Touth                 <Enabled>   Disabled
      Web Camera                 <Enabled>   Disabled
      Card Reader                <Enabled>   Disabled
      Wireless LAN (PCIE)        <Enabled>   Disabled
      CD-ROM/DVD-ROM             <Enabled>   Disabled
Boot
  PXE Boot to LAN                <Enabled>   Disabled
 >Devices Boot Prioritet
  ...

Info
  BIOS Version                   DU221
  KBC Version                    R181
  SLP 2.1                        Disabled
  Intel ME Version               7.0.4.1197

Re: HDA - debug logs

Posted: Thu Mar 13, 2014 11:49 am
by Asper
Azalia выставь в Enabled

Re: HDA - debug logs

Posted: Thu Mar 13, 2014 11:54 am
by Akyltist
Asper wrote:Azalia выставь в Enabled
ничего, сейчас логи приложу
Spoiler:Image
Spoiler:Image

Re: HDA - debug logs

Posted: Thu Mar 13, 2014 12:21 pm
by Asper
Так, а что lspci -nn говорит?

Надо будет сделать в драйвере принудительную установку HDA режима для таких МП как у тебя. А то я уже думал, что если такие конфигурации и есть то это большая редкость.

Re: HDA - debug logs

Posted: Thu Mar 13, 2014 12:26 pm
by Akyltist
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 04)

Code: Select all

00:00.0 Host bridge [0600]: Intel Corporation 2nd Generation Core Processor Family DRAM Controller [8086:0104] (rev 09)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port [8086:0101] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0106] (rev 09)
00:16.0 Communication controller [0780]: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 [8086:1c3a] (rev 04)
00:1a.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 [8086:1c2d] (rev 04)
00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 04)
00:1c.0 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 [8086:1c10] (rev b4)
00:1c.1 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 [8086:1c12] (rev b4)
00:1c.3 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 [8086:1c16] (rev b4)
00:1d.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 [8086:1c26] (rev 04)
00:1f.0 ISA bridge [0601]: Intel Corporation HM65 Express Chipset Family LPC Controller [8086:1c49] (rev 04)
00:1f.2 IDE interface [0101]: Intel Corporation 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller [8086:1c01] (rev 04)
00:1f.3 SMBus [0c05]: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller [8086:1c22] (rev 04)
00:1f.5 IDE interface [0101]: Intel Corporation 6 Series/C200 Series Chipset Family 2 port SATA IDE Controller [8086:1c09] (rev 04)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:0ded] (rev a1)
07:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)
08:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0)

Code: Select all

00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 04)
00: 86 80 20 1c 06 04 10 00 04 00 03 04 10 00 00 00
10: 04 00 a0 e3 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 2d 15 80 08
30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 00 00
Надо будет сделать в драйвере принудительную установку HDA режима для таких МП как у тебя. А то я уже думал, что если такие конфигурации и есть то это большая редкость.
Премного благодарен!!!

Re: HDA - debug logs

Posted: Thu Mar 13, 2014 12:30 pm
by Asper
Вобщем ответил в предыдущем сообщении. У тебя на плате есть возможность программного переключения режимов HDA/AC'97. BIOS почему-то настраивает по умолчанию режим AC'97.

Re: HDA - debug logs

Posted: Sat Apr 19, 2014 10:59 pm
by Mario_r4
Имеется следующая проблема с совместным использованием одного прерывания контроллером IDE и драйвера HDA. После использования вывода звука, через некоторое время начинают сыпаться непогашенные прерывания. Я не знаю как написан обработчик прерывания для HDA, но похоже он каким то образом забывает, что сам сгенерировал прерывание или это аппартная проблема уже. Поскольку на том же прерывании висит контроллер IDE, то его обработчик начинает бесконечно вызываться и бесконечно же отвергает вызов, поскольку он не инициировал прерывание. Это приводит к полному параличу системы.

Почему я считаю, что проблема не в коде IDE? Я сделал так - создал большой рамдиск на 600 МБ и скопировал на него видеофайл и звуковой файл. Для контроля генерации прерывания я вставил в начало обработчика IDE прерывания вывод на доску отладки. До начала вывода звука все работает штатно. Теперь внимание, следим за руками, я запускаю воспроизведение с большого рамдиска - начинают сыпаться прерывания. Поскольку это не IDE прерывания, то он их отвергает и они соответственно обрабатываются драйвером HDA. Через сколько то запросов происходит какой то глюк и драйвер HDA оставляет свой запрос прерывания не погашенным. В результате общее прерывание продолжает генерироваться, но никто его уже снять не хочет. В случае с воспроизведением с рамдиска перестает работать доступ к жесткому диску, хотя повторный запуск проигрывания с рамдиска отрабатывает нормально, но черное дело уже сделано - доступ к жесткому диску заблокирован.

Раньше я всего этого безобразия не замечал, поскольку у меня на том же канале висел ATAPI привод и все работало в PIO режиме. Теперь же выкрутил ATAPI привод и начал усиленно тестировать DMA. На других 5 моих конфигурациях компьютеров ни один HDA кодек не висит на том же прерывании, что и контролер IDE.

PCIDEV
Downloaded 394 times
Как видно из лога устройства 01018f и 040300 делят между собой прерывание 0xA или 10 (в десятичной системе).

Если никто не захочет помочь, то подскажите хотя бы какую сторону копать?

Если проблема общая, то такая бессмысленная генерации прерываний очень вредная деятельность, замедляющая работу системы.

Re: HDA - debug logs

Posted: Sat Apr 19, 2014 11:28 pm
by Wildwest
По описанию может быть связано с той проблемой viewtopic.php?f=3&t=2511&start=45#p56645
вначале разделы открываются, некоторые файлы тоже, но потом вдруг все прекращается. Сейчас это произошло после того, как я промотал видео пару раз. Ну там еще картинка\звук рассинхронизировались при этом, но это мелочь))) Если б раздел вообще не открывался, я бы не удивился, а там вначале открывается, а потом вдруг пропадает, значит, что-то не так))

Re: HDA - debug logs

Posted: Sat Apr 19, 2014 11:45 pm
by Mario_r4
Wildwest wrote:По описанию может быть связано с той проблемой viewtopic.php?f=3&t=2511&start=45#p56645
вначале разделы открываются, некоторые файлы тоже, но потом вдруг все прекращается. Сейчас это произошло после того, как я промотал видео пару раз. Ну там еще картинка\звук рассинхронизировались при этом, но это мелочь))) Если б раздел вообще не открывался, я бы не удивился, а там вначале открывается, а потом вдруг пропадает, значит, что-то не так))
Да, при перемотке проблема проявляется быстрее.

Re: HDA - debug logs

Posted: Sat Apr 19, 2014 11:51 pm
by Wildwest
Ну тогда надо ждать Asper'a, Serge, Мышку. Как вариант - это может быть проблема конкретной звуковой платы или биоса.

Re: HDA - debug logs

Posted: Sun Apr 20, 2014 11:04 pm
by Serge
Mario_r4
У меня была похожая история на старой материнке. 8259 плохо работает с расшаренными прерываниями. Попробуй загрузиться в режиме APIC.
Кстати, в обработчиках ошибка. Надо обнулять весь eax. И маскирование прерываний лишнее.

Code: Select all

;--------------------------------------
.exit:
        mov     al, 0
        ret

Re: HDA - debug logs

Posted: Mon Apr 21, 2014 12:56 am
by Mario_r4
Serge wrote:Попробуй загрузиться в режиме APIC.
То что в случае APIC проблема не проявляется не спасет на конфигурациях без APIC.
Serge wrote:И маскирование прерываний лишнее.
Оно не лишнее, по крайней мере потому, что этот обработчик может использоваться более чем одним контроллером IDE. Во всяком случае у меня была проблема с ASUS K72F

Re: HDA - debug logs

Posted: Mon Apr 21, 2014 1:21 am
by Mario_r4
Serge wrote: Кстати, в обработчиках ошибка. Надо обнулять весь eax.

Code: Select all

;--------------------------------------
.exit:
        mov     al, 0
        ret
Не помогло. Впрочем:
CleverMouse wrote:В принципе ещё нужно возвращать из обработчика ненулевое значение в eax, если прерывание обработано, и нулевое, если прерывание чужое, но прямо сейчас от нарушения этого правила ничего не сломается - irq_serv.main в любом случае проходит по всей цепочке.
Если верить логу SVN для irq.inc, то в этом плане ничего не менялось.

Re: HDA - debug logs

Posted: Mon Apr 21, 2014 1:26 am
by Mario_r4
Serge wrote:Попробуй загрузиться в режиме APIC.
Одно я не могу понять уже достаточно давно, если APIC это такая панацея, то почему он все еще не в транке то дефолту? Вернее я понимаю, что ядро его задействует, но вот переопределение прерываний не вызывается по дефолту.

Re: HDA - debug logs

Posted: Mon Apr 21, 2014 1:49 am
by Serge
Mario_r4 wrote:То что в случае APIC проблема не проявляется не спасет на конфигурациях без APIC.
Если этот проблема железа, ты её так просто не решишь. Для проверки запусти Линукс с опцией noapic.
Mario_r4 wrote: Вернее я понимаю, что ядро его задействует, но вот переопределение прерываний не вызывается по дефолту.
Потому что мало-мало нужна поддержка ACPI.
Если верить логу SVN для irq.inc, то в этом плане ничего не менялось.
А когда поменяется, то кто об этом вспомнит ?
Оно не лишнее, по крайней мере потому, что этот обработчик может использоваться более чем одним контроллером IDE
Все обработчики выполняются с уже маскированными прерываниями. Для отладки полезно проверить флаг IF на входе и выходе из обработчика и сигнализировать если прерывания разрешены.