[Решено]Страдания по IRQ
Добрый день!
Вот мое хозяйство:
cat /proc/interrupts CPU0 CPU1 0: 15255 36507 IO-APIC-edge timer 1: 2 6 IO-APIC-edge i8042 7: 1 0 IO-APIC-edge 8: 2 76 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 14: 31 39 IO-APIC-edge pata_atiixp 15: 0 0 IO-APIC-edge pata_atiixp 16: 0 2 IO-APIC-fasteoi ohci_hcd:usb3, ohci_hcd:usb4 17: 0 0 IO-APIC-fasteoi ehci_hcd:usb1 18: 4 27 IO-APIC-fasteoi ohci_hcd:usb5, ohci_hcd:usb6 19: 12537 136311 IO-APIC-fasteoi ehci_hcd:usb2, eth0, wcte12xp0 NMI: 0 0 Non-maskable interrupts LOC: 28129 10051 Local timer interrupts SPU: 0 0 Spurious interrupts RES: 7296 6899 Rescheduling interrupts CAL: 16 29 Function call interrupts TLB: 845 602 TLB shootdowns ERR: 1 MIS: 0
Как видите:
19: 12537 136311 IO-APIC-fasteoi ehci_hcd:usb2, eth0, wcte12xp0
две самые мои ресурсоемкие железки на одном прерывании плюс USB.
Второй день гуглю как дать каждой железке свое прерывание, ну или хотябы одной из них. На эту тему везде пессимизм. Нашел интересную оптимистичную статью. В биосе счастья нет. Также нашел таблицу опций загрузки для ядра. Пробовал отключать acpi и apic. При отключении apic прерываний действительно становится 16, но irq sharing не отключается и опять девайсы как гирлянда на одном прерывании. Еще нашел интересный материал, но мне не удается редактировать, например, /proc/irq/19/smp_affinity. Может поменялось с тех пор что-то, центос 4.5 уже старая, или у нас в генту по-другому.
1. Как отключить IRQ sharing кто-нибудь знает?
2. Имел ли кто опыт в подобных вещах, поделитесь :)
- Для комментирования войдите или зарегистрируйтесь
осталось понять зачем это
осталось понять зачем это делать ?
П.С Линух не DOS :)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
позвольте угадать? :) у вас
позвольте угадать? :) у вас обоих (как и у меня) athlon. а вы видели cat /proc/interrupts на многоядерном интеле? там почти симметрично :)
а тут в РАЗЫ нагрузка на ядра отличается.
вероятно, особенность SMP в исполнении AMD. других мыслей нет. :)
походу, одно ядро на атлонах "сачкует" :)
P.S.: Linux - это красная таблетка :-) Windows - синяя...
.
...да мы не только intel и amd видели.
P.S. intel, Debian 2.6.33.3-grsec, up 1 day, это что то проясняет?
P.P.S. во втором случае мы видим, что два ядра из четырех тупо простаивают, MicroTick RouterOS и все тот же винтел
ws ~ # cat /proc/interrupts
?
uptime ~2 дня
А можно я, можно?
А можно я, можно?
Это за 105 дней.
P.S. Имхо, использование этих значений для чего-то окромя попялится и порадоватся на непонятные цифорки - несколько неразумное занятие =)
Я тоже хочу. Аптайм 4 часа.
Я тоже хочу. Аптайм 4 часа.
x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 5200+
slepnoga написал(а): осталось
Не хватает прерывания. dahdi_test не проходит, если это о чем-то Вам расскажет :)
Да, у меня AMD Turion(tm) X2 Ultra Dual-Core Mobile ZM-84
А по вопросу есть мысли? :)
.
Дык у коллег бы с forum.nag.ru и asteriskforum.ru поинтересовались данным вопросом, не? (:
я же отметил "в исполнении
я же отметил "в исполнении AMD" :)
ставил Eкакой-то там. 4 ядра по два треда. cat /proc/interrupts показывает практически равномерную загрузку.
а мысли - образованный товарищ рекомендовал почитать теорию SMP. а то что у вас 2 ядра из четырех простаивают - может ядро пересобрать? либо система недогружена? :)
Просто одно ядро ведущее, остальные - ведомые. т.е. первым прерывание ловит одно ядро, потом планировщик смотрит, какое ядро на данный момент менее загружено, и отдает обработку ему.
P.S.: По вопросу - Яндекс отказались от Цисок в пользу Linux. Только они ядро допиливали. Но, т.к. для себя пилили, в основную ветку эти патчи не попали. Кстати, пару месяцев назад такая тема здесь уже поднималсь.
P.P.S.: emerge -v sys-apps/irqbalance - оно работает!!!!!!!
P.S.: Linux - это красная таблетка :-) Windows - синяя...
То есть irqbalance — это
То есть irqbalance — это некий костыль над ядром?
.
Две сетевых карты, система нагружена под завязку. Получаемая картина зависит от чипа сетевого интерфейса. 82571EB/82572EI имеют по 2 независимых TX/RX очереди и поддерживают MSI-X, соответственно каждая очередь может быть посажена на отдельный CPU. Подробнее здесь.
Yandex "допиливали" не ядро linux, это все слухи (обс - одна баба сказала).
тык
P.S. переключите "Настройки просмотра комментариев" на "Древовидный-развернутый" и смотрите, кому и на что вы отвечаете.
Спасибо за советы, хотелось
Спасибо за советы, хотелось бы вернуться к моей проблеме. Гугл навел меня на realtime. Понимание пока пришло не до конца, читаю. Кто имеет опыт? rtirq - написано, что это средство для изменения таблицы DSDT, сформированной BIOS. realtime и rtirq помогут мне?
Возможно, что написанное ниже
Возможно, что написанное ниже прозвучит глупо... Но тем не менее, я рискну.
Насколько я понял, wctel2xp0 - это некое железное устройство, вставленное в PCI-слот?
eth0 - это что-то встроенное, или тоже вставленное в PCI-слот?
Мне довольно давно приходилось решать подобную задачу, с другими устройствами, но это неважно. На некоторых мат. платах PCI-слоты сидят на одном прерывании, а иногда встроенное железо сидит на одном прерывании с каким-нибудь из PCI-слотов. Может, имеет смысл попробовать расставить платы в другие слоты, и в BIOS-е отключить все, что не нужно (например, контроллер флоппи, LPT, что там еще...
Не знаю, что за железка этот wctel, но гугль выдал в первом же результате: "Help with IRQ conflict between wct2xxp and eth0", и первый же отвечающий посоветовал то же, что и я, только по-английски.
Спасибо за ответ. Да, я так и
Спасибо за ответ. Да, я так и делаю в обычных случаях. В этом же случае есть только один PCIe слот и в биосе нужных фич c IRQ нет, а eth0 не выключишь. Машина такая.
А поддерживает ли это железо
А поддерживает ли это железо MSI-(X)?
Спасибо, включил MSI в ядре,
Спасибо, включил MSI в ядре, пожертвовал EHCI и все получилось:
Получается, что распределение
Получается, что распределение прерываний по ядрам процессора зависит от поддержки чего-то там в ядре? У меня debian squeeze был на ядре 2.6.32-3, прерывания красиво распределялись по 4 ядрам, после обновления ядра до 2.6.32-5 все прерывания повисли на первом ядре :(. Пришлось откатываться