From: Rolando Martins <rolando.martins@gmail.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: cgroup, RT reservation per core(s)?
Date: Tue, 10 Feb 2009 17:32:34 +0000 [thread overview]
Message-ID: <b6a2d2e20902100932i475c1ee8va99de6e433a6d89a@mail.gmail.com> (raw)
In-Reply-To: <1234281602.23438.96.camel@twins>
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
next prev parent reply other threads:[~2009-02-10 17:32 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-09 19:30 Rolando Martins
2009-02-09 19:52 ` Peter Zijlstra
2009-02-09 20:04 ` Rolando Martins
2009-02-10 13:06 ` Peter Zijlstra
2009-02-10 14:46 ` Rolando Martins
2009-02-10 16:00 ` Peter Zijlstra
2009-02-10 17:32 ` Rolando Martins [this message]
2009-02-10 19:53 ` Peter Zijlstra
2009-02-11 11:33 ` Rolando Martins
2009-02-11 11:42 ` Peter Zijlstra
2009-02-11 11:53 ` Balbir Singh
2009-02-11 12:00 ` Peter Zijlstra
2009-02-11 12:10 ` Rolando Martins
2009-03-03 12:58 ` Rolando Martins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b6a2d2e20902100932i475c1ee8va99de6e433a6d89a@mail.gmail.com \
--to=rolando.martins@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®