lkml.org 
[lkml]   [2009]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: cgroup, RT reservation per core(s)?
From
On 2/10/09, Peter Zijlstra <peterz@infradead.org> wrote:
> On Tue, 2009-02-10 at 14:46 +0000, Rolando Martins wrote:
> >
> > > I've never actually tried anything like this, let me know if it
> > > works ;-)
> > >
> >
> > Thanks Peter, it works!
>
> > I am thinking for different strategies to be used in my rt middleware
> > project, and I think there is a limitation.
> > If I wanted to have some RT on the B cpuset, I couldn't because I
> > assigned A.cpu.rt_runtime_ns = root.cpu.rt_runtime_ns (then subdivided
> > the A cpuset, with 2,3,4, each one having A.cpu.rt_runtime_ns/3).
>
>
> Try it, you can run RT proglets in B.
>
> You get n*utilization per schedule domain, where n is the number of cpus
> in it.
>
> So you still have 200% left in B, even if you use 200% of A.
>
>
> > This happens because there is a
> > global /proc/sys/kernel/sched_rt_runtime_us and
> > /proc/sys/kernel/sched_rt_period_us.
>
>
> These globals don't actually do much (except provide a global cap) in
> the cgroup case.
>
>
> > What do you think about adding a separate tuple (runtime,period) for
> > each core/cpu?
>
>
> > Does this make sense? ;)
>
> That's going to give me a horrible head-ache trying to load-balance
> stuff.
>
Sorry Peter, but I didn't think before typing;)
I was looking at the cgroups as more integrated (rigid;) ) infrastructure,
and therefore using only a mount point for all the operations... :x

Now I got everything working properly! Thanks for the support.

For helping others:

mkdir /dev/cpuset
mount -t cgroup -o cpuset none /dev/cpuset
cd /dev/cpuset
echo 0 > cpuset.sched_load_balance
mkdir A
echo 0-1 > A/cpuset.cpus
echo 0 > A/cpuset.mems
mkdir B
echo 2-3 > B/cpuset.cpus
echo 0 > B/cpuset.mems


mount -t cgroup -o cpu none /dev/sched_domain
cd /dev/sched_domain
mkdir 1
echo cpu.rt_runtime_ns > 1/cpu.rt_runtime_ns
mkdir 1/2
echo 33333 > 1/2/cpu.rt_runtime_ns
mkdir 1/3
echo 33333 > 1/3/cpu.rt_runtime_ns
mkdir 1/4
echo 33333 > 1/3/cpu.rt_runtime_ns

For example, setting the current shell to a specific cpuset(A) and sched(1/2):

echo $$ > /dev/cpuset/A/tasks
echo $$ > /dev/sched_domain/1/2/tasks
"execute program"


Peter, can you confirm this code? ;)

Thanks!
Rol


\
 
 \ /
  Last update: 2009-02-10 18:35    [W:0.278 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site