Bug 26959 - irqbalance 0.56-alt1 не работает на материнской плате Intel S5500BC
Summary: irqbalance 0.56-alt1 не работает на материнской плате Intel S5500BC
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: irqbalance (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-02-17 23:53 MSK by Sergey Y. Afonin
Modified: 2012-02-20 22:56 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Y. Afonin 2012-02-17 23:53:26 MSK
откат до irqbalance-0.55-alt3 ситуацию исправляет. Ядро 2.6.32-ovz-el-alt40.M60P.2

Надо заметить, что S5500BC - первая плата от Intel, из тех, что когда-либо попадали мне в руки, у которой прерывания от устройств, если ничего не предпринимать, обрабатываются только на CPU0. До этого было всегда хоть какое-то распределение по разным ядрам/процессорам.
При этом, с ядром 2.6.18 (пробовал ставить 5.1 и ядро оттуда) некоторое распределение прерываний по ядрам присутствует тоже (без irqbalance, само по себе).

Если посмотреть strace-ом, то видно, что irqbalance 0.55 в smp_affinity пишет маски, соответствующие одиночным процессорам:

open("/proc/irq/65/smp_affinity", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f236de3e000
write(3, "00000002", 8)                 = 8
close(3)                                = 0
munmap(0x7f236de3e000, 4096)            = 0
open("/proc/irq/70/smp_affinity", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f236de3e000
write(3, "00000001", 8)                 = 8
close(3)                                = 0
munmap(0x7f236de3e000, 4096)            = 0
open("/proc/irq/69/smp_affinity", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f236de3e000
write(3, "00000004", 8)                 = 8
close(3)                                = 0

В случае irqbalance 0.56 пишется маска 00ffffff:

open("/proc/irq/65/smp_affinity", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f85b1474000
write(3, "00ffffff", 8)                 = 8
close(3)                                = 0
munmap(0x7f85b1474000, 4096)            = 0
open("/proc/irq/70/smp_affinity", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f85b1474000
write(3, "00ffffff", 8)                 = 8
close(3)                                = 0
munmap(0x7f85b1474000, 4096)            = 0
open("/proc/irq/69/smp_affinity", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f85b1474000
write(3, "00ffffff", 8)                 = 8
close(3)                                = 0
Comment 1 Slava Dubrovskiy 2012-02-19 10:09:09 MSK
Оказывается они на гуглекод переехали. Собрал последнюю версию.
Попробуйте http://git.altlinux.org/tasks/64846/
Comment 2 Sergey Y. Afonin 2012-02-19 14:25:31 MSK
(In reply to comment #1)

> Оказывается они на гуглекод переехали. Собрал последнюю версию.
> Попробуйте http://git.altlinux.org/tasks/64846/

Почему-то только по CPU0/CPU1 раскидывает. 0.55 раскидывает по всем. Там никаких ограничений нет по-умолчанию ?
Comment 3 Slava Dubrovskiy 2012-02-19 20:59:35 MSK
Может ну его эти костыли в виде irqbalance?

Если убрать
CONFIG_HOTPLUG_CPU=y
то ядро должно само распределять прерывания по всем ядрам и никакое ручное управление не понадобится
Comment 4 Sergey Y. Afonin 2012-02-19 23:45:00 MSK
На других материнках что-то распределяет прерывания и так. Тут, скорее, исключение S5500BC. Можно попробовать дождаться выхода нового RHEL и посмотреть, как Intel с RH договариваться будут. :-)

А обновить irqbalance, думаю, стоит: два ядра - всё не одно. Михаила только дождаться, раз он тоже пользуется. А то, вдруг, у него что-то обнаружится.
Comment 5 Michael Shigorin 2012-02-20 12:37:05 MSK
(In reply to comment #1)
> Оказывается они на гуглекод переехали. Собрал последнюю версию.
> Попробуйте http://git.altlinux.org/tasks/64846/
Закидывай.

(In reply to comment #4)
> А обновить irqbalance, думаю, стоит: два ядра - всё не одно. Михаила только
> дождаться, раз он тоже пользуется. А то, вдруг, у него что-то обнаружится.
Если бы было критично, стоял бы более жёсткий ACL, наверное :)
Comment 6 Repository Robot 2012-02-20 22:56:33 MSK
irqbalance-1.0.3-alt1 -> sisyphus:

* Sun Feb 19 2012 Slava Dubrovskiy <dubrsl@altlinux> 1.0.3-alt1
- new version from new URL location
- migrate to git source, update spec
- add BuildRequires for libcap-ng-devel libnuma-devel
- add service for systemd
- fix (ALT #26959 26962)