On 2014-04-01 15:50, Jennifer Averett wrote:
> >>+  /**
> >>+   * @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.


I thought this is check in the high level code is only a temporary solution? The responsibility for thread processor affinity management should move entirely to the scheduler.

--
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  : [email protected]
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to