thread-safety of rtems_cpu_usage_report
Till Straumann
strauman at slac.stanford.edu
Fri Feb 13 20:30:08 UTC 2009
Joel Sherrill wrote:
> Till Straumann wrote:
>> I look at rtems_cpu_usage_report() and it
>> seems to me that the code merrily scans
>> the _Objects_Information_table and accesses
>> the Thread_Control blocks it finds there
>> w/o using any kind of protection.
>>
>> What happens, e.g., if the _Objects_Information_table
>> gets extended or otherwise modified by another
>> thread while the code is scanning the table?
>>
>> Am I missing something?
>>
> no. :(
>
> I had always wanted to change it to a loop
> from min to max id around a "get cpu use"
> task id based information call. Then it
> can fail on each one.
>
> But anything using iterate over all tasks is
> not thread safe. Perhaps it would be best
> to put that call in an allocation critical section.
> Then the set cannot change since there are
> no create/delete's allowed.
Definitely deserves some thought.
E.g., 'sync' looks quite a bit scary...
T.
>> -- Till
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.com
>> http://rtems.rtems.org/mail
>>
>
>
More information about the users
mailing list