Re: kernel: Disabling IRQ...
Hi all.
28.11.2007 15:19, Oleg Frolkov пишет:
> Тем не менее телепатов тут нет,
Дык. Поэтому я и не рассчитываю на диагноз, а надеюсь получить свежие
идеи для диагностики на месте. Это обмен опытом, а не техподдержка IBM :-)
> диагноз можно поставить только видя как
> можно больше симптомов.
Точно.
> Основной режим это что? Каким образом осуществляется переключение
> основной/дополнительный?
Основной, штатный режим работы ядра SMP. Если ничего не говорить ему при
загрузке.
>>> Вообще неплохо-бы еще сюда cat /proc/interrupts - Чтобы видно было что
>>> там у тебя творится.
>>>
>>
>> root@woody:~# cat /proc/interrupts
>> CPU0 CPU1
>> 0: 61 0 IO-APIC-edge timer
>> 1: 4 4 IO-APIC-edge i8042
>> 3: 44728 45264 IO-APIC-edge serial
>> 7: 0 0 IO-APIC-edge parport0
>> 8: 61246284 61249572 IO-APIC-fasteoi rtc
>> 10: 40 57 IO-APIC-fasteoi ohci_hcd:usb1
>> 12: 7265 7480 IO-APIC-edge i8042
>> 14: 1761 1855 IO-APIC-edge ide2
>> 16: 11443 11594 IO-APIC-fasteoi ide0
>> 17: 1722 1670 IO-APIC-fasteoi ide4
>> 18: 110 82 IO-APIC-fasteoi serial
>> 19: 3101 2788 IO-APIC-fasteoi eth0
>> 31: 493 494 IO-APIC-fasteoi acpi
>> NMI: 0 0
>> LOC: 143906 144292
>> ERR: 0
>> MIS: 0
>>
>>
> Если я не туплю то 0-15 Это основной контроллер прерываний, 16 - выше
> это APIC.
Насколько я понимаю, в SMP режиме они всё APIC. О чём прямо сказано выше.
> Возможные варианты лечения:
> 2. Отключить apic в BIOS - тогда все должно рассаживаться в пределах
> 0-15 прерываний.
>
> 3. Отключить APIC при загрузке ядра
Дык. Тот же результат достигается "nosmp" в загрузке. Всё рассаживается
в пределах 15, и при хорошей нагрузке на ide4, ide5 "Disabled"
оказывался irq 12.
>
>
> Других вариантов вроде-бы нет....
Так я уже написал про вариант, который оказался конструктивным.
Закомментировать вызов "disable_irq" в kernel/irq/spurious.c. После
этого машина перестаёт хотя бы виснуть, и с ней можно разговаривать дальше.
Далее, сегодня утром один из винчестеров был перенесён с карты которая
irq17 на свободный IDE канал на мамке, поганый ServerWorks OSB4. И -
ГЛЮКИ ПОЛНОСТЬЮ ИСЧЕЗЛИ.
Возможных объяснений два.
1. Чип CMD-649 под ядром 2.6 категорически не смог работать с двумя
каналами. До этого почему-то 6 лет как-то работал под 2.4...
2. Источником проблем был именно СВОБОДНЫЙ контроллер ServerWorks. В
пользу этого говорит то, что при отсутствии винта ядро не присваивало
этому устройству прерывания вообще (по lspci). То есть не до конца его
конфигурировало ("Will probe later" в загрузке) - и мог гнать в шину
какой-то мусор?
А.Л.
>
> Oleg.
>
>
Reply to: