[PATCH 01/10] score: Add get/set affinity to Scheduler Framework.

Jennifer Averett Jennifer.Averett at OARcorp.com
Tue Apr 1 13:50:10 UTC 2014



> -----Original Message-----
> From: gedare at gwmail.gwu.edu [mailto:gedare at gwmail.gwu.edu] On
> Behalf Of Gedare Bloom
> Sent: Tuesday, March 25, 2014 7:08 AM
> To: Sebastian Huber
> Cc: Jennifer Averett; RTEMS Devel
> Subject: Re: [PATCH 01/10] score: Add get/set affinity to Scheduler
> Framework.
> 
> On Tue, Mar 25, 2014 at 3:20 AM, Sebastian Huber
> <sebastian.huber at embedded-brains.de> wrote:
> > On 2014-03-24 19:39, Jennifer wrote:
> >>
> >> @@ -184,6 +205,43 @@ void _Scheduler_default_Start_idle(
> >>     Per_CPU_Control *processor
> >>   );
> >>
> >> +#if defined(__RTEMS_HAVE_SYS_CPUSET_H__) &&
> defined(RTEMS_SMP)
> >> +
> >> +  /**
> >> +   * @brief Get affinity for the default scheduler.
> >> +   *
> >> +   * @param[in] thread The associated thread.
> >> +   * @param[in] cpusetsize The size of the cpuset.
> >> +   * @param[out] cpuset Affinity set containing all CPUs.
> >> +   *
> >> +   * @retval 0 Successfully got cpuset
> >> +   * @retval -1 The cpusetsize is invalid for the system
> >> +   */
> >> +  int _Scheduler_default_Get_affinity(
> >> +    Thread_Control *thread,
> >> +    size_t          cpusetsize,
> >> +    cpu_set_t      *cpuset
> >> +  );
> >> +
> >> +  /**
> >> +   * @brief Set affinity for the default scheduler.
> >> +   *
> >> +   * @param[in] thread The associated thread.
> >> +   * @param[in] cpusetsize The size of the cpuset.
> >> +   * @param[in] cpuset Affinity new affinity set.
> >> +   *
> >> +   * @retval 0 Successful
> >> +   *
> >> +   *  This method always returns successful and does not save
> >> +   *  the cpuset.
> >> +   */
> >> +  int _Scheduler_default_Set_affinity(
> >> +    Thread_Control *thread,
> >> +    size_t          cpusetsize,
> >> +    cpu_set_t      *cpuset
> >> +  );
> >> +#endif
> >
> >
> > I would rather use bool or an enum for the return status instead of
> > this int.
> >
> > The default set affinity operation should accept only CPU sets that
> > specify the complete set of available processors, e.g. for a three
> > processor system it should be bits 0, 1, and 2 set, all other bits
> > cleared (e.g. (1 << CPU
> > count) - 1).
> >
> > The default get affinity operation should return the CPU sets
> > reflecting all available processors.
> >
> I agree with the logic for the defaults Sebastian suggests.

Actually no scheduler should be allowed to set the affinity to 
A cpu that the system doesn't support.  Currently those checks
are called from the API methods.

> > --
> > 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.
> >
> > _______________________________________________
> > rtems-devel mailing list
> > rtems-devel at rtems.org
> > http://www.rtems.org/mailman/listinfo/rtems-devel




More information about the devel mailing list