SMP related question
joel at rtems.org
Mon Aug 20 16:39:12 UTC 2018
On Mon, Aug 20, 2018 at 1:23 AM, Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:
> On 12/08/18 00:41, Chris Johns wrote:
>> On 10/08/2018 22:30, Sebastian Huber wrote:
>>> Hello Stavros,
>>> you can do this with a custom clustered scheduler configuration:
>>> I had a brief look over the documentation you provided but could not see
>> how to
>> achieve the result you are saying.
> Stavros, asked for two things.
> 1. A way to change properties of the initialization task which are not
> covered by configuration options
> before the initialization task runs. To do this some user provided code
> must execute after the initialization task is created and before it runs.
> My suggestion to use a device driver initialization function for this
> doesn't work. The initialization task is created after the device driver
> initialization. It can be done via a system initialization handler using
> the undocumented RTEMS_SYSINIT_ITEM(). Maybe also a high priority
> constructor, however, in this case the task already runs.
The high priority constructor is too late if the goal is to avoid any
activity except core 0.
RTEMS_SYSINIT_ITEM() would work but adding a confdefs.h item for SMP
configurations to pin the thread to a single core seems like a simple
> 2. A way to pin a task to a particular processor. There are two options to
> do this in RTEMS. One is a clustered scheduler configuration, the other is
> the use of a thread to processor affinity.
I think being able to pin the Init thread to a single core would be a nice
confdefs.h feature. Not specifying a full cpuset, just the core number.
I don't think this use case is enough by itself to force a user to
clustered scheduling with core 0 an instance by itself.
>> Alternatively, on a recent version the default SMP scheduler supports a
>>> one-to-one affinity. You can set it in a device driver.
>> Is there an example of how to do this?
As Sebastian points out, you can't do it in a device driver. But no, there
is no example specifically for the Init thread.
There are smptests which do this but likely no proper example of setting
affinity, scheduler, etc.
>> ----- Am 10. Aug 2018 um 14:10 schrieb Passas, Stavros
>>> stavros.passas at intel.com:
>>>> In my local SMP enabled RTEMS, I notice core1 starting the Init()
>>>> function of
>>>> the user application.
>>>> Is there a way to enforce RTEMS to run the Init() in the boot
>>>> processor, when
>>>> SMP is enabled?
>>>> Best Regards,
>>>> Intel Research and Development Ireland Limited
>>>> Registered in Ireland
>>>> Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
>>>> Registered Number: 308263
>>>> This e-mail and any attachments may contain confidential material for
>>>> the sole
>>>> use of the intended recipient(s). Any review or distribution by others
>>>> strictly prohibited. If you are not the intended recipient, please
>>>> contact the
>>>> sender and delete all copies.
>>>> users mailing list
>>>> users at rtems.org
>>> users mailing list
>>> users at rtems.org
>> users mailing list
>> users at rtems.org
> Sebastian Huber, embedded brains GmbH
> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> Phone : +49 89 189 47 41-16
> Fax : +49 89 189 47 41-09
> E-Mail : sebastian.huber at embedded-brains.de
> PGP : Public key available on request.
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
> users mailing list
> users at rtems.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the users