Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Русскоязычное Linux-сообщество ([info]lj_ru_linux)
@ 2014-10-08 08:29:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Распределение IRQ на ARM платформах
"А мужики-то не знают" (с)

С неким удивлением узнал, что на ARM платформах irqbalance не только бесполезен, ибо все прерывания повешены на CPU0, но также этот самый irqbalance сильно тупит и за пару дней способен отожрать всю память.

Ссылки:

https://lkml.org/lkml/2012/8/4/51
http://comments.gmane.org/gmane.linux.ports.arm.kernel/102251
https://groups.google.com/d/msg/linux.kernel/pNyi-qX9uz8/r3ouEhRxwPMJ

График памяти с рестартом irqbalance по расписанию раз в сутки:



Под катом также лог и частичный костыль:

# cat /proc/interrupts	

               CPU0       CPU1      
     29:   31828467   20846645       GIC  arch_timer
     30:          0          0       GIC  arch_timer
     32:          0          0       GIC  axp_mfd
     33:        209          0       GIC  serial
     37:      29810          0       GIC  RemoteIR
     39:   56968226          0       GIC  sunxi-i2c.0
     40:          0          0       GIC  sunxi-i2c.1
     41:          0          0       GIC  sunxi-i2c.2
     54:          0          0       GIC  timer0
     55:         12          0       GIC  aw_clock_event
     56:          0          0       GIC  sunxi-rtc alarm
     59:          0          0       GIC  dma_irq
     60:          0          0       GIC  sunxi-gpio
     64:   26340917          0       GIC  sunxi-mmc
     71:  173325506          0       GIC  ehci_hcd:usb1
     72:   26892046          0       GIC  ehci_hcd:usb3
     76:   82951670          0       GIC  sunxi lcd0
     77:          0          0       GIC  sunxi lcd1
     78:          0          0       GIC  g2d
     79:   41450949          0       GIC  sunxi scaler0
     80:          0          0       GIC  sunxi scaler1
     88:          0          0       GIC  sw_ahci
     92:          0          0       GIC  ace_dev
     96:          0          0       GIC  ohci_hcd:usb2
     97:          0          0       GIC  ohci_hcd:usb4
    101:          0          0       GIC  mali_gp_irq_handlers
    102:          0          0       GIC  mali_mmu_irq_handlers
    103:          0          0       GIC  mali_pp_irq_handlers
    104:          0          0       GIC  mali_mmu_irq_handlers
    106:          0          0       GIC  mali_pp_irq_handlers
    107:          0          0       GIC  mali_mmu_irq_handlers
    120:          0          0       GIC  sunxi-i2c.3
    IPI0:          0          0  Timer broadcast interrupts
    IPI1:   11828993   31203597  Rescheduling interrupts
    IPI2:          0          0  Function call interrupts
    IPI3:        569        549  Single function call interrupts
    IPI4:          0          0  CPU stop interrupts
    IPI5:          0          0  CPU backtrace
    Err:          0


В моём случае пришлось вручную вешать USB веб камеру на CPU1:
echo 2 >/proc/irq/$(cat /proc/interrupts | grep 'ehci_hcd:usb1' | cut -f 1 -d ":" | tr -d " ")/smp_affinity

А irqbanace нафиг вырубить через /etc/default/irqbalance и "ENABLED=0"
Платформа: dual core Allwinner A20 "BananaPi"

Спасибо за внимание
via


(Читать комментарии) (Добавить комментарий)