|
|
3.9, Аноним (-), 00:52, 17/03/2008 [^] [^^] [^^^] [ответить]
| +/– |
неа, man cpuset
DESCRIPTION
The cpuset command can be used to assign processor sets to processes, run
commands constrained to a given set or list of processors, and query
information about processor binding, sets, and available processors in
the system.
| |
|
|
1.2, eee (??), 00:27, 14/03/2008 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Может такое подойдет для serial портов? Информация теряется, нехватает реал-тайма.
Я уже rtlinux хотел ставить.
| |
1.4, i (??), 08:54, 14/03/2008 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
у меня от этих манипуляций некоторые процессы перешли в состояние uninterrapt sleep :(
| |
1.5, pavlinux (ok), 13:35, 14/03/2008 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
#!/bin/bash
#########
DEV_IRQ='ps -eL | grep IRQ | awk '{printf $1" "$2" "}''
for i in $DEV_IRQ
do
chrt -r -p 99 $i;
done
##########
SOFT_IRQ='ps -eL | grep softirq | awk '{printf $1" "$2" "}''
for i in $SOFT_IRQ
do
chrt -r -p 99 $i
done
##########
NET_SOFT_IRQ='ps -A | grep softirq-net | awk '{print $1}''
for i in $NET_SOFT_IRQ
do
chrt -f -p 99 $i
done
########
unset CPU_1_CORE_1 CPU_1_CORE_2 CPU_2_CORE_1 CPU_2_CORE_2
PROC=/proc/irq
CPU_1_CORE_1=1
CPU_1_CORE_2=2
CPU_2_CORE_1=3
CPU_2_CORE_2=4
VIDEO='find $PROC -name nvidia | cut -b 11-13';
ETH0='find $PROC -name eth0 | cut -b 11-13';
SCSI='find $PROC -name aic79xx | cut -b 11-13';
ATA='find $PROC -name libata | cut -b 11-13';
AUDIO='find $PROC -name "NVidia CK804" | cut -b 11-13';
echo $CPU_1_CORE_1 > /proc/irq/$VIDEO/smp_affinity;
echo $CPU_1_CORE_2 > /proc/irq/$ETH0/smp_affinity;
echo $CPU_1_CORE_1 > /proc/irq/$SCSI/smp_affinity;
echo $CPU_2_CORE_1 > /proc/irq/$AUDIO/smp_affinity;
for i in $ATA
do
echo $CPU_2_CORE_2 > /proc/irq/$i/smp_affinity;
done
| |
|
2.6, pavlinux (ok), 13:52, 14/03/2008 [^] [^^] [^^^] [ответить]
| +/– |
1. Установить патчик http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.24.3-rt3.bz2
2. Смотреть мануал на своб материнку, чипсет, и т.п. на предмет кто на каком CPU работает.
(этот пример для вот этой матери - http://tyan.com/product_board_detail.aspx?pid=151)
3. User-space приложения лучше не chrt_аймить, ну если надо, то не более -f -p 2 'pidof foo', смотреть на nice level, демоны не связанные с железом тоже не надо, artsd - можно.
| |
2.10, Rush (??), 08:59, 02/03/2010 [^] [^^] [^^^] [ответить]
| +1 +/– |
>CPU_1_CORE_1=1
>CPU_1_CORE_2=2
>CPU_2_CORE_1=3
>CPU_2_CORE_2=4
Я, конечно, дико извиняюсь, но ИМХО должно быть что то вроде
CPU_1_CORE_1=1
CPU_1_CORE_2=2
CPU_2_CORE_1=4
CPU_2_CORE_2=8
Соответственно, чтобы привязать прерывания, например, к 1-му процессору (невзирая на ядро)
CPU_1=3
и, соответственно
CPU2=12
Я ещё раз прошу прощения, информация чисто только что практически выдумана мной, ибо тысячу лет назад, на заре появления SMP я видел код планировщика, который стопудов по маске смотрел, а не по порядковому номеру. Возможно сейчас всё изменилось (но вряд ли).
| |
|
3.11, pavlinux (ok), 14:09, 02/03/2010 [^] [^^] [^^^] [ответить]
| +/– |
>Я, конечно, дико извиняюсь, но ИМХО должно быть что то вроде
>CPU_1_CORE_1=1
>CPU_1_CORE_2=2
>CPU_2_CORE_1=4
>CPU_2_CORE_2=8
>
>Соответственно, чтобы привязать прерывания, например, к 1-му процессору (невзирая на ядро)
>CPU_1=3
>и, соответственно
>CPU2=12
Я взирал на ядра :)
У меня например, на 2-х процессорной матери стоят двух ядерные процы...
2 сетевушки, EHCI_USB и OHCI_USB, 1 сетевуха конектится на 1 проц, 2 на второй,
тоже самое с USB, так почему бы не разогнать прерывания от USB и Ethernet по разным
ядрам...
CPU_1_CORE_1 = eth0
CPU_1_CORE_2 = uhci_usb
CPU_2_CORE_1 = eth1
CPU_2_CORE_2 = ehci_usb
P.S. Клаву и часы лучше оставить на 0 ядре
| |
|
4.12, Rush (??), 15:46, 02/03/2010 [^] [^^] [^^^] [ответить]
| +/– |
Вообще наши админы тоже затрахали с этими процессорами и ядрами - ну какая разница сколько там микросхем стоит - ведь, когда объём памяти спрашивают, имеют ввиду совсем не количество планок :) Главное - ядра(чистыйизумруд) !
>CPU_1_CORE_1=1
>CPU_1_CORE_2=2
>CPU_2_CORE_1=3
>CPU_2_CORE_2=4
>Я взирал на ядра :)
Ядра(чистыйизумруд), и это бесспорно, но я имел ввиду ошибку в скрипте: не 1,2,3,4 а 1,2,4,8 ибо это маска, а не номер процессора/ядра :)
П.С.: читать "изумруд" как "кремний" :)
| |
|
5.13, pavlinux (ok), 17:56, 02/03/2010 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
>ядра(чистыйизумруд) !
>
>>CPU_1_CORE_1=1
>>CPU_1_CORE_2=2
>>CPU_2_CORE_1=3
>>CPU_2_CORE_2=4
>>Я взирал на ядра :)
>
>Ядра(чистыйизумруд), и это бесспорно, но я имел ввиду ошибку в скрипте: не
>1,2,3,4 а 1,2,4,8 ибо это маска, а не номер процессора/ядра :)
А,... ну да, я их вечно пустаю с утилью taskset
| |
|
|
|
|
1.14, Иван (??), 11:05, 10/09/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Спасибо
Теперь понятно как в Linux привязать процесс к конкретному CPU
Но мне еще важно чтобы этот процесс использовал это CPU монопольно то есть чтобы все остальные процессы использовали другие CPU.
Не подскажете как это сделать ?
| |
|