From: Bruce Ashfield <bruce.ashfield@windriver.com>
To: David Mulder <dmulder@lasx.com>
Cc: "yocto@yoctoproject.org" <yocto@yoctoproject.org>
Subject: Re: Can I disable RT throttling?
Date: Mon, 11 Mar 2013 20:14:17 -0400 [thread overview]
Message-ID: <513E7359.6060205@windriver.com> (raw)
In-Reply-To: <19F0379280417C4A8FE3BD23AA7298E501347F87@EXMBX202A.mmeprod.cbeyond>
On 13-03-11 2:13 PM, David Mulder wrote:
>>> Will that work on a core that's offline?
>>
>> Nope. Only with an online core controlled by the Linux scheduler.
>> If you do end up trying to get AMP working, you need to plumbing
>> to load the other OS/kernel in a reserved memory location, set the
>> program counter and start the OS.
>>
>> But that secondary OS has to know how to behave in a system that
>> it doesn't control, and you'll need ways to communicate with it
>> from Linux.
>>
>> remoteproc/rpmsg can solve some of the issues that I mention, but
>> it is far from out of the box.
>>
>> That's why there's more interest in running a single task with
>> exclusive CPU in userspace. The work and scaffolding required to
>> get an AMP system up and running is non trivial.
>
> I kinda thought so, but I was hopeful.
>
> After speaking with some co-workers, I have a new perspective on these delays: yes, we are trying to do a 10us control loop, but if we miss a step or two occasionally we can accept that. And looking online I see people indicating context switch times well below 10us (Core-i cpus), which is better than I had anticipated, and should be workable. So I'm going to approach this problem by just trying to squeeze the kernel as much as I can. Some things that I see to squeeze are /dev/cpu_dma_latency (should be 0) or max_cstate (should be as low as possible (0, maybe 1)), possibly idle=poll. Are there other kernel parameters that can minimize kernel interference/time? And perhaps hints about how to set them in Yocto or menuconfig?
There's nothing "out of the box" that I can recommend, outside of saying
"it depends on your platform". It's a matter of knowing your devices,
their interrupts, and the configuration of your kernel. Using things
like CONFIG_NOHZ will remove the timer tick, and hence ticks that you
may not need, you want to move device interrupts off your core, except
for the one that you want. Use cgroups/cpusets to control resources and
the scheduler off your core with "other" tasks. pin/lock memory to
avoid page faults, etc.
If you check out the preempt-rt wiki page on kernel.org, a lot of the
information there applies to making sure that your prioritized thread
gets the most run time that it can.
As we progress with the meta-realtime layer, scripts for the above,
system configuration, services and will be part of the layer and might
be of use.
Cheers,
Bruce
>
> Thanks!
> Dave
next prev parent reply other threads:[~2013-03-12 0:14 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-08 22:36 Can I disable RT throttling? David Mulder
2013-03-09 3:28 ` Bruce Ashfield
2013-03-09 17:12 ` Vin Shelton
2013-03-10 3:09 ` Bruce Ashfield
2013-03-11 16:15 ` David Mulder
2013-03-11 17:32 ` Trevor Woerner
2013-03-11 17:38 ` David Mulder
2013-03-11 17:45 ` Bruce Ashfield
2013-03-11 18:13 ` David Mulder
2013-03-12 0:14 ` Bruce Ashfield [this message]
2013-03-10 11:42 ` Fredrik Markström
2013-03-10 18:00 ` Bruce Ashfield
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=513E7359.6060205@windriver.com \
--to=bruce.ashfield@windriver.com \
--cc=dmulder@lasx.com \
--cc=yocto@yoctoproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.