Author Topic: развод двух сетевух с одного IRQ  (Read 5234 times)

0 Members and 1 Guest are viewing this topic.

Offline ctrl777

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
Есть проблема нужно развести две сетевухи занимающие один IRQ. Насколько я помню это не самый хороший вариант держать 2 сетевухи на одном IRQ.

cat /proc/interrupts
           CPU0
  0:    1116143   IO-APIC-edge      timer
  1:          2   IO-APIC-edge      i8042
  8:          1   IO-APIC-edge      rtc
  9:          1   IO-APIC-fasteoi   acpi
 12:          3   IO-APIC-edge      i8042
 16:     200002   IO-APIC-fasteoi   ide0, ide1, libata, uhci_hcd:usb3
 17:          0   IO-APIC-fasteoi   uhci_hcd:usb1, uhci_hcd:usb4
 18:          0   IO-APIC-fasteoi   uhci_hcd:usb2
 20:      77029   IO-APIC-fasteoi   eth0, sk98lin
NMI:          0
LOC:    1116051
ERR:          0


т.е. две сетевухи сидять наодном IRQ=20, одна встроенная в мать Marvell, а другая воткнута в 2 слот PCI:

lspci -v
.....
02:05.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller (rev 13)
        Subsystem: ASUSTeK Computer Inc. Marvell 88E8001 Gigabit Ethernet Controller (Asus)
        Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 20
        Memory at fe6fc000 (32-bit, non-prefetchable) [size=16K]
        I/O ports at d400 [size=256]
        Expansion ROM at 41000000 [disabled] [size=128K]
        Capabilities: [48] Power Management version 2
        Capabilities: [50] Vital Product Data
......
02:0a.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
        Subsystem: D-Link System Inc DFE-530TX+ 10/100 Ethernet Adapter
        Flags: bus master, medium devsel, latency 64, IRQ 20
        I/O ports at d000 [size=256]
        Memory at fe6fbc00 (32-bit, non-prefetchable) [size=256]
        Capabilities: [50] Power Management version 2

Махинации типа ifconfig eth0 irq 10 не пашут, пишет что операция не поддерживается,
другие махинации типа alias 8139too irq=10 тоже не пашут, модуль пишет что нифига не знает этот аргумент.
Махинация с БИОСОМ (No PNP OS и назначением на PCI слоты принудительно IRQ) тоже не пашет, при использовании режима acpi=off, сетевухи все равно на одном прерывании тока номер 15.
Что делать фиг знает(
Ядро у меня 2.6.19.7
« Last Edit: June 05, 2007, 02:12:14 by ctrl777 »

Offline SlyF0X

  • Newbie
  • *
  • Posts: 41
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #1 on: June 05, 2007, 11:58:35 »
Чем плохо что две сетевых на одном IRQ?
Неверится что это както существенно (>1%) сказывается на производительности.
А перестановка в другие PCI слоты не помагает ?

Попутно возник вопрос, что это за память такая у сетевых?
...
Memory at fe6fc000 (32-bit, non-prefetchable) [size=16K]
...
Memory at fe6fbc00 (32-bit, non-prefetchable) [size=256]
...

Offline ctrl777

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #2 on: June 05, 2007, 12:09:01 »
Quote from: SlyF0X
Чем плохо что две сетевых на одном IRQ?
Неверится что это както существенно (>1%) сказывается на производительности.
^^^ вообщето если нагрузка не велика, то да, ну а если в машине 4 сетевухи на одном прерывании и загружены они поразному? Свое устройство свой IRQ, их в системе и так свободных до хрена, че вешать на одно
А перестановка в другие PCI слоты не помогает ?
^^^^^^^^ толку, встроенная у нее свое, а PCI стоит в 2 слоте

Попутно возник вопрос, что это за память такая у сетевых?
                          ^^^^ скорее всего на чипе мозги
...
Memory at fe6fc000 (32-bit, non-prefetchable) [size=16K]
...
Memory at fe6fbc00 (32-bit, non-prefetchable) [size=256]
...

Offline SlyF0X

  • Newbie
  • *
  • Posts: 41
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #3 on: June 05, 2007, 13:05:41 »
На Plug'n'Play сетевых картах IRQ менять нельзя кажется , тем более модуль говорит что нету у него такой опции, поэтому единственный вариант как мне кажется попробовать в другой слот PCI вставить в надежде что другой irq назначится сетевой карте, но почемуто есть такое подозрение что перемена PCI слота на номер IRQ ника не повлияет.

Offline ctrl777

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #4 on: June 05, 2007, 14:58:46 »
Quote from: SlyF0X
На Plug'n'Play сетевых картах IRQ менять нельзя кажется , тем более модуль говорит что нету у него такой
     ^^^^ нафиг тогда плаг енд плай вообще, ядро же назначает IRQ и I/O address, а не сетевуха, у меня например на моей рабочей тачке тоже две сетевухи, встроенная и PCI, и ничего, Линукс дает каждой по своему IRQ. Тут даже не знаю в чем проблема, ничего не помогает.

 опции, поэтому единственный вариант как мне кажется попробовать в другой слот PCI вставить в надежде что другой irq назначиться сетевой карте, но почемуто есть такое подозрение что перемена PCI слота на номер IRQ никак не повлияет.
         ^^ вот это точно не повлияет, пробовал даже в биосе поставить на слоты прерывания принудительно, и ядру передавал параметр pci=biosirq толку тока никакого (

Offline Comrad

  • Jr. Member
  • **
  • Posts: 77
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #5 on: June 05, 2007, 20:18:00 »
Попутно: сколько железных прерываний в системе существует в нынешнее время?
Отсюда все ясно станет.
Кто понял жизнь, тот не торопится.

Offline ctrl777

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #6 on: June 05, 2007, 21:28:29 »
Quote from: Comrad
Попутно: сколько железных прерываний в системе существует в нынешнее время?
Отсюда все ясно станет.


без APIC их всего 15, чего в общем-то сейчес и нет, просто трудно найти машину без APIC

а вот с APIC их 255

Думаю системе должно хватить?)


Offline cginen

  • Newbie
  • *
  • Posts: 1
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #7 on: June 05, 2007, 23:04:02 »
У меня проблема на подобии этой. У меня notebook и при переключении сетей возникает проблема смены irq адресов. Приходится перезагружать комп в систему windows, потому что там очень легко его сменить.  


   Кто нибудь знает хотябы название проги позволяющей менять irq.


Пробовал через переписание файлов в Lunyx, но не получается обойти внутреннюю защиту.

Offline ctrl777

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #8 on: June 06, 2007, 02:42:44 »
Господа, долгими мытарствами над проблемой, в частности передача ядру команд типа:
pci=bios,biosirq,noacpi pirq=3,4,10,11 и т.д. и выставления в биосе конкретных IRQ на слоты я так и нифига и не добился, сетевухи тока переезжали на другой IRQ но не разделялись. Я так и не нарыл как сделать так чтоб конкретно задать устройству свой IRQ.

Ну дак вот проблема решилась, тока конечно я не понял почему, я взял просто сетевeху и переткнул из 2 слота в сервере в 3 и все. Бог знает че за фигня, но сетевухи заняли свои IRQ раздельно.

Но думаю вопрос еще в силе и интересен, мучаю другой форум по этому поводу.
« Last Edit: June 06, 2007, 02:44:07 by ctrl777 »

Offline ctrl777

  • Newbie
  • *
  • Posts: 11
  • Karma: +0/-0
развод двух сетевух с одного IRQ
« Reply #9 on: June 06, 2007, 02:55:13 »
Quote from: cginen
У меня проблема на подобии этой. У меня notebook и при переключении сетей возникает проблема смены irq адресов. Приходится перезагружать комп в систему windows, потому что там очень легко его сменить.  
   Кто нибудь знает хотябы название проги позволяющей менять irq.
Пробовал через переписание файлов в Lunyx, но не получается обойти внутреннюю защиту.


Вариант такой, в биосе выставить PNP OS = no, далее если возможно выставить IRQ свободные на слоты и если есть опция в биосе со словами ESCD то ее тоже включить.

Далее вариант с линуксом такой, передать ядру пару параметров, надо с ними поковырять попробовать разные варианты:

pci=biosirq,bios pnpbios=on

это укажет линуху что нужно спросить прерывания у биоса, может поможет. Так же есть рекомендация выключить в машине все что не нужное и занимающее IRQ.

Можно туды к ядру приколдовать и такой параметр:

pirq=<irq PCI slot1>,<irq PCI slot2>,<irq PCI slot3>,<irq PCI slot4>

у меня это дело вызвало смешение номеров прерывания (указанные прерывания принудительно отошли к PCI шине), также можно колдануть (тока в крайнем случае) параметром pci=noacpi

На крайняк в документации к ядру линуха есть документация и есть фалйк что-то типа kernel-parametres.txt там указаны все параметры ядра их можно покрутить тоже ))))

Если все это дело не пашет, то пересобрать ядро с поддержкой IRQ sharing, ток же как у меня две сетевухи сядут на один IRQ и работать скорее всего будут.

Если в системе несколько винтов IDE то мона колдануть при пересборке ядра установить PCI EIDE sharing


Конкретное решение не могу сказать, сам шарю в потемках (