Re: Раздача IRQ
Hello!
At Thu, 22 Mar 2007 15:49:29 +0300,
Max Dmitrichenko wrote:
>> Есть роутер под приличной нагрузкой. Основная нагрузка лежит на 2
>> сетевухи: eth0 и eth1
>> # cat /proc/interrupts
>> CPU0
>> 0: 39276550 XT-PIC timer
>> 1: 44 XT-PIC i8042
>> 2: 0 XT-PIC cascade
>> 5: 62000376 XT-PIC VIA686A, eth1
>> 6: 2 XT-PIC floppy
>> 7: 0 XT-PIC parport0
>> 8: 1 XT-PIC rtc
>> 10: 0 XT-PIC uhci_hcd:usb1, uhci_hcd:usb2, eth2
>> 11: 82591804 XT-PIC acpi, eth0, eth3
>> 12: 14786 XT-PIC i8042
>> 14: 333266 XT-PIC ide0
>> NMI: 0
>> LOC: 0
>> ERR: 0
>> MIS: 0
>> Как видно eth0 и eth1 сидят на своих IRQ вместе с другими устройствами.
>> Возможно ли как-то монопольно посадить eth0 на одно IRQ, а eth1 на
>> другое, всё остальное можно в кучу?
>> Кто вообще рассаживает устройства по IRQ?
> Есть IRQ, которые отведены под legacy устройства, а есть IRQ, которые отведены
> под остальные устройства.
> Legacy устройства не могут разделять одно IRQ, так как они генерируют прерывание
> по фронту (Edge interrupt). К ним относятся прерывания таймера, последовательных
> и параллельных портов, флоппи, клавиатуры, RTC. Поэтому прерывания 0, 1, 2, 3, 4,
> 6, 7, 8, 12 забиты под эти устройства и никем не могут больше использоваться.
> Теоретически некоторые номера прерываний можно поменять, но делает это как правило
> BIOS, так как этот процесс весьма зависит от LPC контроллера, припаянного на мать.
> К сожалению не помню точно, что касается IDE, а искать сейчас лень, но по-моему их
> тоже нельзя шарить, то есть отпадают ещё 14ое и 15ое (у тебя видимо на IDE1 никого
> нет, но его все равно не поюзаешь).
> Контроллер прерывания у тебя PIC i8259A; на нем всего может быть 16 IRQ с номерами
> от 0 до 15. Таким образом остаются незадействованными прерывания 5, 9, 10, 11 и 13.
В принципе, 3, 4, 5, 7, 9, 10, 11, 12, 14, 15 использовать можно на pci или даже на
isa. Irq 13 предназначется сопроцессору, 6 может роутиться на isa (за pci не скажу),
если отключен встроенный fdc. Возможность шарить существует и в случае срабатывания по
фронту, только железки должны быть соответствущие, их, кстати, не очень мало. Другое
дело, что legacy хоть и забирают по целому прерыванию, но в данном случае совсем не
мешают, еще не все прочие устройства могут садиться на отличное от 9-12, у них так
унутри устроено.
Btw идею отправить eth0 в пустой слот на irq 9 поддерживаю, не факт, что eth3
успешно подсядет на irq 5 к ac97 вместо eth1, и это всего одна перестановка. А eth0
не встроенная случайно?
Michael
Reply to: