[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: