Tomsk Sysadmins Forum
Unix => Администрирование => Topic started by: ctrl777 on June 05, 2007, 02:10:57
-
Есть проблема нужно развести две сетевухи занимающие один 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
-
Чем плохо что две сетевых на одном IRQ?
Неверится что это както существенно (>1%) сказывается на производительности.
А перестановка в другие PCI слоты не помагает ?
Попутно возник вопрос, что это за память такая у сетевых?
...
Memory at fe6fc000 (32-bit, non-prefetchable) [size=16K]
...
Memory at fe6fbc00 (32-bit, non-prefetchable) [size=256]
...
-
Чем плохо что две сетевых на одном 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]
...
-
На Plug'n'Play сетевых картах IRQ менять нельзя кажется , тем более модуль говорит что нету у него такой опции, поэтому единственный вариант как мне кажется попробовать в другой слот PCI вставить в надежде что другой irq назначится сетевой карте, но почемуто есть такое подозрение что перемена PCI слота на номер IRQ ника не повлияет.
-
На Plug'n'Play сетевых картах IRQ менять нельзя кажется , тем более модуль говорит что нету у него такой
^^^^ нафиг тогда плаг енд плай вообще, ядро же назначает IRQ и I/O address, а не сетевуха, у меня например на моей рабочей тачке тоже две сетевухи, встроенная и PCI, и ничего, Линукс дает каждой по своему IRQ. Тут даже не знаю в чем проблема, ничего не помогает.
опции, поэтому единственный вариант как мне кажется попробовать в другой слот PCI вставить в надежде что другой irq назначиться сетевой карте, но почемуто есть такое подозрение что перемена PCI слота на номер IRQ никак не повлияет.
^^ вот это точно не повлияет, пробовал даже в биосе поставить на слоты прерывания принудительно, и ядру передавал параметр pci=biosirq толку тока никакого (
-
Попутно: сколько железных прерываний в системе существует в нынешнее время?
Отсюда все ясно станет.
-
Попутно: сколько железных прерываний в системе существует в нынешнее время?
Отсюда все ясно станет.
без APIC их всего 15, чего в общем-то сейчес и нет, просто трудно найти машину без APIC
а вот с APIC их 255
Думаю системе должно хватить?)
-
У меня проблема на подобии этой. У меня notebook и при переключении сетей возникает проблема смены irq адресов. Приходится перезагружать комп в систему windows, потому что там очень легко его сменить.
Кто нибудь знает хотябы название проги позволяющей менять irq.
Пробовал через переписание файлов в Lunyx, но не получается обойти внутреннюю защиту.
-
Господа, долгими мытарствами над проблемой, в частности передача ядру команд типа:
pci=bios,biosirq,noacpi pirq=3,4,10,11 и т.д. и выставления в биосе конкретных IRQ на слоты я так и нифига и не добился, сетевухи тока переезжали на другой IRQ но не разделялись. Я так и не нарыл как сделать так чтоб конкретно задать устройству свой IRQ.
Ну дак вот проблема решилась, тока конечно я не понял почему, я взял просто сетевeху и переткнул из 2 слота в сервере в 3 и все. Бог знает че за фигня, но сетевухи заняли свои IRQ раздельно.
Но думаю вопрос еще в силе и интересен, мучаю другой форум по этому поводу.
-
У меня проблема на подобии этой. У меня 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
Конкретное решение не могу сказать, сам шарю в потемках (