[Bug 1791] DispatchDisableLevel is not smp safe

bugzilla-daemon at rtems.org bugzilla-daemon at rtems.org
Wed May 11 21:32:19 UTC 2011


--- Comment #2 from Joel Sherrill <joel.sherrill at oarcorp.com> 2011-05-11 16:32:19 CDT ---
I'll catch some of these and let jennifer catch the rest.

(In reply to comment #1)
> +   * The following declares the a smp spinlock to be used to control
> typo: s/the a/a
> +  SCORE_EXTERN SMP_lock_spinlock_nested_Control
> _Thread_Dispatch_smp_spin_lock;
> I'm not sold on the name, unless this is the only lock that will be associated
> with any _Thread_Dispatch handler.  We should develop a consistent convention
> for lock names.

Agree on naming convention.  But for now, there are only two planned.  One for
dispatch disable critical sections and one for interrupt disable critical

I am implementing the latter now.  So suggestions appreciated.

> cpukit/score/inline/rtems/score/thread.inl:
> Function prototypes should be in .h files. Why aren't these functions inline in
> the SMP version?

Too complicated to inline.

> _Thread_Dispatch_set_disable_level(): This function confuses me. Why looping up
> and then down?

Since you lock/unlock as you go up and down, Jennifer thought this was the
safest level.  I don't know how many places it is actually used and would like
to analyse each one.  It is a replacement for direct assignments of a disable
level to the variable.  Makes one wonder if it could be enable/disable or
initialize in places.

Configure bugmail: https://www.rtems.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.

More information about the bugs mailing list