Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: ntenev в Aug 03, 2004, 14:01



Титла: SMP IRQ problem
Публикувано от: ntenev в Aug 03, 2004, 14:01
Здравейте. Имам следната ситуация:
---
Машина - DELL Workstation Precision 410 MT (BIOS A014)
Процесори - 2 x P II (Deschutes) 350 MHz
Linux - Slackware 10.0
Kernel - 2.4.26
---
Прекомпилирах ядро със SMP (Symetric Multi Processors) поддръжка и се започнаха следните аномалии:

При зареждането на модула за eth0 (вградена - 3Com 3c905B 100BaseTX [Cyclone] (модул 3c59x.o) ), картата иска да използва IRQ 19, но извежда съобщение че най-вероятно няма да работи с това IRQ. След това като се опитам да я вдигна с ifconfig самия процес забива ( с ps ax дава STAT D+) а на конзолата изважда съобщения за грешки от ядрото от типа ooops и разни срашни цифри и букви след това. Гледах на сайта на DELL спецификацията на машината, но там са описани само до IRQ 15 (BIOS-а няма опция за промяна на IRQ-тата). И от BIOS-а и от опциите за компилиране на ядрото изключих поддръжките на APM и ACPI но и това не помага. В /proc/interrupts също не показва на кое IRQ е eth0.

Мислех че картата не е в ред, но когато пусна Slackware със стандартното ядро за еднопроцесорни машини си я хваща, слага я на IRQ 11 и всичко си работи перфектно.

Също така под Windows XP Pro SP 1 всичко също работи чудесно. И двата процесора и картата, която там работи именно на IRQ 19.

Третото което опитах бе да компилирам драйвера статично. Резултата бе частичен успех. Разпознаве картата, слага я на IRQ > 15 и работи както си трябва. Само че там проблемите излязоха когато слагам други карти, чиито драйвери се зареждат като модули ... с тях я работи, я не (картите са читави).

Това което ми прави впечатление (при сравняване на dmesg) е че при зареждане на ядрото със статично компилиран драйвер разпознаването на картата става точно преди разпознаването на PIIX4 IDE Controler, докато при ядрото с модул това става по-късно (при изпълнението на rc.modules). Казвам го защото IDE0 и IDE1 интерфейсите (и по спецификацията на DELL) работят на съответно IRQ 14 и IRQ 15. Да не би по някакъв начин те да са последните при регистриране на IRQ ?

Целта ми е да имам 2 работещи процесора и всякакъв хардуер да може да се зарежда като модул.

Търсих из google, сайта на DELL и архивите на различни linux-smp mail листи, но неможах да намеря нищо, което да ми подскаже дори откъде да започна да търся проблема.

Ако някой се е сблъсквал с нещо подобно и/или има идея къде да търся причината за всичко това, ще съм благодарен ако го сподели.

Поздрави !
Н. Тенев

P.S. Това което искам да отбележа е че в случая търся решение, което да отстрани проблема, а не начин да го заобиколя. Знам че мога всеки път когато добавям ново устройство да прекомпилирам ядрото със статичните му драйвери, това ще е домашно сървърче така че ден-два без да работи докато му реша този или онзи проблем не са фатални ... но това си е заобикаляне. Имам нужда от решение по простата причина че ако се сблъскам (а и не само аз) с подобен проблем в работата си (където имам критични машини) е по-добре да има решение отколкото да търся заобиколен път нали ? Ако е възможно все пак :)

Предварително Ви благодаря !


Титла: SMP IRQ problem
Публикувано от: savel в Aug 03, 2004, 18:17
а пробва ли с 2.6 ядро ?


Титла: SMP IRQ problem
Публикувано от: the_real_maniac в Aug 03, 2004, 19:11
Предполагам ,че говориш за сървър/рутер система, но все пак ядро 2.6.7 вече направи няколко месеца и за (предполагаеми) открити проблеми със сигурността са изезнали кръпки.

Така че и мойто предложение е сложи 2.6.7 ;)

м/удругото: доста софтуер , а и модули не работят в smp режим , или имат проблеми , така че прави проучваня :) Но според мен в този случей не става въпрос за това - че модула на мрежовата карта неможе да работи в smp режим  (в смисъл на smp конфигурация).

И 2-ро м/удругото: аз позлвам 2.6.7 в smp режим и то доста време (вече) , и със самото ядро проблем нямам ! Имах проблем с алса-та и init-modules-tools ;) това е :) , но с ядрото не ;)

Извод: Linux 2.46.7 ROCKS :D


Титла: SMP IRQ problem
Публикувано от: Nerf в Aug 03, 2004, 23:22
здр

голяма част от network card модулите имат вазможнос при зареждане ръчно да им се задава кое прекъсване да използват.

Примерен код
modprobe 3c59x irq=xx

като xx го променяш на някое irq по твои "вкус"
ако не стане от първия път не се очаиваи а пробваи с друго irq а може също и да изръчкаш google.

и успех.


Титла: SMP IRQ problem
Публикувано от: savel в Aug 04, 2004, 02:56
няма да стане така нерф , тва е pci карта и модула не поддържа определяне така на irq

ntenev може да пробва да си настрои прекъсванията от BIOS
или да види какво ще стане ако пусне 2.6 с ACPI


Титла: SMP IRQ problem
Публикувано от: ntenev в Aug 04, 2004, 15:27
Решението !
------------------

Оказа се че грешката е изцяло в мен !
Тъпо от моя страна, но всъщност има толкова много информация за Linux че понякога се обърквам от къде дазапочна търсенето на проблема. Рових google, DELL и mail листи а решението се оказа в
/usr/doc/Linux-HOWTOs/SMP-HOWTO - точка 4 (4. How do I make a Linux SMP kernel?)
Това което съм пропуснал да направя е след компилацията на ядрото да прекомпилирам и преинсталирам модулите. Явно има нещо което се променя в тях когато е включен smp и са изключени acpi и apm. Досега бях прекомпилирал само за еднопроцесорни машини и не съм се сблъсквал с подобен проблем ... може би съм имал късмет.
Този проблем е решен ... сега мога вече да експериментирам и с разни други опции (модула cpuid.o), както и ядро 2.6

Поздрави !
Н. Тенев