[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Динамически включать-выключать CPU



> #!/usr/bin/python
> f=open("/dev/cpuset/tasks")
> tasks=f.readlines()
> f.close()
> 
> for task in tasks:
>   try:
>     f=open("/dev/cpuset/syscpuset/tasks","w")
>     f.write(task)
>     f.close()
>   except IOError:
>     pass
> 
> Я конечно вижу, что это грязно, в общем случае на /usr нельзя
> рассчитывать и надо на Си писать, но влом. Или этот же эффект как-то
> достигается на shell+busybox?
>

for task in `cat /dev/cpuset/tasks`
do
    echo $task > /dev/cpuset/syscpuset/tasks
done

Правда, я не смог посмотреть, что там пишется - у меня такого файла нет.  Если
в /dev/cpuset/tasks больше одного слова на задачу, то надо более тщательно
строить цикл.

> А теперь вопрос - как бы мне выяснить, что это у меня за 20 задач,
> которые не переносятся? Проверил у нескольких /proc/$pid/cmdline -
> пусто. Но там и у kswapd0 пусто, а top как-то знает, что это именно
> он. Как мне-то узнать?

/proc/$PID/stat

> Гугль не помог :( Особенно это будет важно,
> если выяснится что весь этот хак не работает, а isolcpus работает.

Скорее всего, треды ядра.  К которым, собственно, относится и kswapd.

-- 
Если ты не боишься синего экрана, то почему боишься черного?
 -- Д.Белявский


Reply to: