Barrier Manager cross-node behaviour
Jerzy J
yuralogplus at gmail.com
Fri Jan 28 13:15:24 UTC 2022
Hi Joel,
Thank you for your help and clarification, this is exactly what i needed!
In terms of submitting this to the community, the situation is exactly as
mentioned by Andrew.
>If that statement and any others like it were deleted,
>would this issue go away?
I think if it's consistent and either doesn't mention nodes at all or does
so on all of the directives it would definitely be more clear!
>Please point out all the places where the barrier documentation
>uses language from a distributed multiprocessing and shouldn't.
As far as I'm aware, I've only seen nodes mentioned in Classic API Guide,
in Barrier Manager Directives section:
-
https://docs.rtems.org/branches/master/c-user/barrier/directives.html#rtems-barrier-create
-
https://docs.rtems.org/branches/master/c-user/barrier/directives.html#rtems-barrier-ident
-
https://docs.rtems.org/branches/master/c-user/barrier/directives.html#rtems-barrier-delete
Hope that helps and all the best,
Jerzy
pt., 28 sty 2022 o 12:00 Andrew.Butterfield at scss.tcd.ie <
Andrew.Butterfield at scss.tcd.ie> napisał(a):
> Hi Joel,
> Jerzy is doing a Dissertation on this topic, and we have every plan to
> feed this back into the community. The is an academic spin-off from the ESA
> sponsored activity that ran for the last two years or so.
>
> I know that the precise way we integrate this stuff back into the
> community needs to be figured out, and discussion is underway about aspects
> of this on the devel mailing list.
>
> Sebastian and I hope to come to you all with a proposal regarding the
> Formal Methods part - I'll let him lead that as he has a better feel for
> what would fit best with community guidelines.
>
> Regards,
> Andrew
>
> --------------------------------------------------------------------
> Andrew Butterfield Tel: +353-1-896-2517 Fax: +353-1-677-2204
> Lero at TCD, Head of Software Foundations & Verification Research Group
> School of Computer Science and Statistics,
> Room G.39, O'Reilly Institute, Trinity College, University of Dublin
> http://www.scss.tcd.ie/Andrew.Butterfield/
> --------------------------------------------------------------------
>
>
> -----Original Message-----
> From: users <users-bounces at rtems.org> on behalf of Joel Sherrill <
> joel at rtems.org>
> Reply to: "joel at rtems.org" <joel at rtems.org>
> Date: Thursday 27 January 2022 at 23:39
> To: Jerzy J <yuralogplus at gmail.com>
> Cc: "rtems-users at rtems.org" <users at rtems.org>
> Subject: Re: Barrier Manager cross-node behaviour
>
> On Thu, Jan 27, 2022 at 5:04 PM Jerzy J <yuralogplus at gmail.com> wrote:
> >
> > Hi,
> >
> > I'm using RTEMS 6 and I'm trying to model the Barrier Manager
> behaviour
> > using Promela.
>
> Cool! Have you modeled anything else? Is this something which could be
> submitted to the community and used openly?
>
> Just thinking anything that grows formal verification for RTEMS
> hopefully
> helps if there is the potential for more input. Not that I am likely
> the one to
> build the formal model.
>
> > However, there's one unclear thing to me which I couldn't find an
> exact
> > explanation of in the documentation.
> >
> > While the `rtems_barrier_ident` directive can only search on the
> local
> > node, if a task already had an id of the barrier from a different
> node,
> > would it be able to call the `rtems_barrier_wait` directive on that
> > barrier, or would it get INVALID_ID return code?
> > In other words, can a task from one node, call directives on a
> barrier from
> > another node if it had an id of the barrier?
>
> The concept of node only applies when RTEMS is built for
> distributed multiprocessing. This is completely different from
> the SMP support.
>
> For distributed multiprocessing, the system model is multiple
> CPUs cards on a shared bus like VMEbus with an area
> of shared memory. In a distributed multiprocessing configuration,
> each node is a complete RTEMS executable with an assigned
> node number in the system.
>
> For SMP, the cores are tightly integrated, share a memory
> image, etc. This is considered one "node".
>
> There is no mixing of models.
>
> With the distributed multiprocessing, a subset of Classic API
> services allow an object instance to be created with global visibility.
> If global, then the ident service can be used to look up the id
> for a name. For example, a task can be global. If created on
> node 1, a task on node 2 can change its priority.
>
> I doubt you really care about the distributed multiprocessing
> configuration but even if you did, barriers are local only and
> can't be accessed by other nodes in a distributed
> processing configuration.
>
> > I would also assume that behaviour would be consistent for `delete`
> and
> > `release` directives as well? Although it is mentioned in the
> `delete`
> > directive constraints that only local tasks can delete a barrier, in
> other
> > directives it is not listed as a constraint.
>
> That is probably just an artifact of copying the starting point for
> the documentation from another API class that did support
> being global.
>
> If that statement and any others like it were deleted,
> would this issue go away?
>
> Please point out all the places where the barrier documentation
> uses language from a distributed multiprocessing and shouldn't.
>
> Thanks.
>
> --joel
>
> > Thanks you in advance and all the best,
> > Jerzy
> > _______________________________________________
> > 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
>
>
More information about the users
mailing list