lkml.org 
[lkml]   [2012]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [v7 0/8] Reduce cross CPU IPI interference
From
Date
On Fri, 2012-02-10 at 22:13 +0200, Gilad Ben-Yossef wrote:
> My current understanding is that if I have a real time task and wish it
> have a deterministic performance time, you should call mlockall() to lock
> the program data and text into physical memory so that a less often taken
> branch or access to a new data region will not result in a page fault.
>
> You still have to worry about TLB misses on non hardware page table
> walk architecture, but at least everything is in the page tables
>
> If there is a better way to do this? I'm always happy to learn new
> ways to do things. :-)

A rt application usually consists of a lot of non-rt parts and a usually
relatively small rt part. Using mlockall() pins the entire application
into memory, which while on the safe side is very often entirely too
much.

The alternative method is to only mlock the text and data used by the rt
part. You need to be aware of what text runs in your rt part anyway,
since you need to make sure it is in fact deterministic code.

One of the ways of achieving this is using a special linker section for
your vetted rt code and mlock()'ing only that text section.

On thread creation, provide a custom allocated (and mlock()'ed) stack
etc..

Basically, if you can't tell a-priory what code is part of your rt part,
you don't have an rt part ;-)



\
 
 \ /
  Last update: 2012-02-10 21:31    [W:0.253 / U:1.116 seconds]
©2003-2014 Jasper Spaans. Advertise on this site