SMP related question

Joel Sherrill 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:
>>>
>>> https://docs.rtems.org/branches/master/c-user/configuring_a_
>>> system.html#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
>
> https://docs.rtems.org/branches/master/c-user/configuring_a_
> system.html#classic-api-initialization-tasks-table-configuration
>
> 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
solution.


>
> 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.

--joel


>
>> Chris
>>
>> ----- Am 10. Aug 2018 um 14:10 schrieb Passas, Stavros
>>> stavros.passas at intel.com:
>>>
>>> Hi,
>>>>
>>>> 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,
>>>>    Stavros
>>>> --------------------------------------------------------------
>>>> 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
>>>> is
>>>> strictly prohibited. If you are not the intended recipient, please
>>>> contact the
>>>> sender and delete all copies.
>>>>
>>>> _______________________________________________
>>>> users mailing list
>>>> users at rtems.org
>>>> http://lists.rtems.org/mailman/listinfo/users
>>>>
>>> _______________________________________________
>>> users mailing list
>>> users at rtems.org
>>> http://lists.rtems.org/mailman/listinfo/users
>>>
>>> _______________________________________________
>> users mailing list
>> users at rtems.org
>> http://lists.rtems.org/mailman/listinfo/users
>>
>
> --
> 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
> http://lists.rtems.org/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20180820/2b11a0f7/attachment-0002.html>


More information about the users mailing list