g+
g+ Communities
Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
<== Date ==> <== Thread ==>

Subject: Re: Utilities for EPICS on Multi-Core Linux
From: Ralph Lange <Ralph.Lange@gmx.de>
To: EPICS Tech-Talk <tech-talk@aps.anl.gov>
Date: Mon, 10 Dec 2012 10:21:43 +0100
Hi Jack,

On 09.12.2012 15:59, Jack Smith wrote:
>> On Fri, Nov 23, 2012 at 2:48 PM, Ralph Lange <Ralph.Lange@gmx.de> wrote:
>> MCoreUtils - Utilities for EPICS on Multi-Core Linux
>>
>> I recently started working on a collection of useful stuff for running IOCs
>> on multi-core (RT or not) Linux architectures. (*)
>>
>> The first two modules are now available on SourceForge [1]:
>>
>> Real-time threadShow routines
>> Enhanced threadShow functions that print LWP ID, scheduling policy, and CPU
>> affinity.
>>
>> Rule-based setting of real-time properties
>> Pattern matching engine that allows to set real-time properties of EPICS
>> threads (scheduling policy, priority, and CPU affinity) by regular
>> expression matching on thread names. Rules can be set in a config file or
>> from the iocShell, and will be applied to any thread started through the
>> libCom/OSI API of EPICS Base. This allows to restrict the complete IOC onto
>> a subset of CPUs, dedicate CPUs to specific (driver) threads, fine-tune
>> policies and priorities, etc.
>>
>> MCoreUtils need EPICS Base 3.15.0.1 or later, on a Linux platform.
>>
>> This project is in an early stage.
>> I know that more and more EPICS sites are using this family of platforms and
>> have to cope with similar things, so I would like to invite everybody to
>> step forward with ideas and suggestions (and code!). I hope we can manage to
>> minimize parallel developments, and combine efforts for a better real-time
>> behaviour and performance of EPICS.
>>
>> Cheers,
>> ~Ralph
>>
> I guess the purpose of MCoreUtils is to make Linux system (RT or not)
> more deterministic. Right?

Correct.
ITER's fast controllers run a RT-Linux (RHEL-based MRG-R), but the
general direction is a) to get more over-all deterministic behavior, and
b) to allow to run specific RT applications on dedicated cores, i.e.
restrict the IOC to a subset of the available cores.

> For EPICS base 3.14.x, how do the IOCs' threads use the CPU resources
> on a multi-core Linux system? Do the threads just randomly pick up any
> available CPU resource?

Basically, yes.
The default for EPICS Base is to not use Posix real-time scheduling, so
all EPICS IOC threads are using the Linux default scheduler, which will
distribute them onto available CPU resources according to its
implemented strategy. Which of course - strictly speaking - is not
randomly, but looks a lot like it... ;-)

There's a good page on the EPICS Wiki by Till Straumann [1], describing
how to switch an IOC to use Posix real-time scheduling under Linux.

Cheers,
~Ralph

[1]
https://wiki-ext.aps.anl.gov/epics/index.php/How_To_Use_Posix_Thread_Priority_Scheduling_under_Linux


Replies:
Re: Utilities for EPICS on Multi-Core Linux Shen, Guobao
References:
Utilities for EPICS on Multi-Core Linux Ralph Lange
Re: Utilities for EPICS on Multi-Core Linux Jack Smith

Navigate by Date:
Prev: Alcatel ACT 600T and 600TH turbo pumps Pierrick Hanlet
Next: Re: Tektronix 3014 Tracing Problem Nicholas P. DiMonte
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
Navigate by Thread:
Prev: Re: Utilities for EPICS on Multi-Core Linux Jack Smith
Next: Re: Utilities for EPICS on Multi-Core Linux Shen, Guobao
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·