[PATCH] Remove rtems_rate_monotonic_postponed_job_count() Add a variable named "count" in rtems_rate_monotonic_period_status structure Revise rtems_rate_monotonic_get_status() for the postponed job count.

Gedare Bloom gedare at rtems.org
Wed Jan 25 16:16:13 UTC 2017


On Wed, Jan 25, 2017 at 9:16 AM, Kuan Hsun Chen <c0066c at gmail.com> wrote:
> Hi Sebastian,
>
> Okay. I will clarify it.
>
> I used git format-patch -1 to generate the patch and git send-email --to
> devel at rtems.org *.patch to send out the mail.
> Could you tell me what I have missed?
>
https://devel.rtems.org/wiki/Developer/Git#GitCommits

This should likely be linked to / added in the
https://devel.rtems.org/wiki/Developer/Coding/Conventions

> Aha, it is 2017...
>
> Best,
> Kuan-hsun
>
> 2017-01-25 15:10 GMT+01:00 Sebastian Huber
> <sebastian.huber at embedded-brains.de>:
>>
>> Please use the standard Git commit message format.
>>
>>
>> On 25/01/17 15:04, Kuan-Hsun Chen wrote:
>>>
>>> sptests/sp69: Revise
>>> Add in the verification of the postponed job count for
>>> rtems_rate_monotonic_get_status().
>>> ---
>>>   cpukit/rtems/include/rtems/rtems/ratemon.h | 24
>>> +++++-------------------
>>>   cpukit/rtems/src/ratemongetstatus.c        |  2 ++
>>>   cpukit/rtems/src/ratemonperiod.c           | 14 --------------
>>>   testsuites/sptests/sp69/init.c             |  8 ++++++++
>>>   testsuites/sptests/sp69/sp69.doc           |  2 ++
>>>   testsuites/sptests/sp69/sp69.scn           |  5 +++--
>>>   6 files changed, 20 insertions(+), 35 deletions(-)
>>>
>>> diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h
>>> b/cpukit/rtems/include/rtems/rtems/ratemon.h
>>> index 54ddd05..59512c5 100644
>>> --- a/cpukit/rtems/include/rtems/rtems/ratemon.h
>>> +++ b/cpukit/rtems/include/rtems/rtems/ratemon.h
>>> @@ -182,6 +182,11 @@ typedef struct {
>>>      *  then this field has no meaning.
>>>      */
>>>     rtems_thread_cpu_usage_t             executed_since_last_period;
>>> +
>>> +  /** This is the number of postponed jobs. This number
>>> +   * is only increased by the corresponding watchdog,
>>> +   * and is decreased by RMS manager with the postponed job releasing.
>>> */
>>> +  uint32_t                             postponed_jobs_count;
>>>   }  rtems_rate_monotonic_period_status;
>>
>>
>> Number in comment vs. count in member. I prefer count. Please clarify this
>> a bit and avoid the watchdog. The watchdog is an implementation detail. The
>> mentioning of RMS manager is redundant.
>>
>>
>>>   /**
>>> @@ -417,25 +422,6 @@ rtems_status_code rtems_rate_monotonic_period(
>>>     rtems_interval  length
>>>   );
>>>   -/**
>>> - * @brief Return the number of postponed jobs
>>> - *
>>> - * This is a helper function for runtime monitoring to return
>>> - * the number of postponed jobs in this given period. This number
>>> - * is only increased by the corresponding watchdog,
>>> - * and is decreased by RMS manager with the postponed job releasing.
>>> - *
>>> - * @param[in] id is the period id
>>> - *
>>> - * @retval This helper function returns the number of postponed
>>> - * jobs with a given period_id.
>>> - *
>>> - */
>>> -uint32_t rtems_rate_monotonic_postponed_job_count(
>>> -  rtems_id        period_id
>>> -);
>>> -
>>> -
>>>   /**@}*/
>>>     #ifdef __cplusplus
>>> diff --git a/cpukit/rtems/src/ratemongetstatus.c
>>> b/cpukit/rtems/src/ratemongetstatus.c
>>> index 403c6ed..8bd3613 100644
>>> --- a/cpukit/rtems/src/ratemongetstatus.c
>>> +++ b/cpukit/rtems/src/ratemongetstatus.c
>>> @@ -9,6 +9,7 @@
>>>    *  COPYRIGHT (c) 1989-2009.
>>>    *  On-Line Applications Research Corporation (OAR).
>>>    *  Copyright (c) 2016 embedded brains GmbH.
>>> + *  Copyright (c) 2016 Kuan-Hsun Chen.
>>
>>
>> We have 2017.
>>
>>
>>>    *
>>>    *  The license and distribution terms for this file may be
>>>    *  found in the file LICENSE in this distribution or at
>>> @@ -43,6 +44,7 @@ rtems_status_code rtems_rate_monotonic_get_status(
>>>       period_status->owner = the_period->owner->Object.id;
>>>     period_status->state = the_period->state;
>>> +  period_status->postponed_jobs_count = the_period->postponed_jobs;
>>>       if ( the_period->state == RATE_MONOTONIC_INACTIVE ) {
>>>       /*
>>> diff --git a/cpukit/rtems/src/ratemonperiod.c
>>> b/cpukit/rtems/src/ratemonperiod.c
>>> index 97547e2..efcd121 100644
>>> --- a/cpukit/rtems/src/ratemonperiod.c
>>> +++ b/cpukit/rtems/src/ratemonperiod.c
>>> @@ -302,20 +302,6 @@ static rtems_status_code
>>> _Rate_monotonic_Block_while_expired(
>>>     return RTEMS_TIMEOUT;
>>>   }
>>>   -uint32_t rtems_rate_monotonic_postponed_job_count( rtems_id period_id
>>> )
>>> -{
>>> -  Rate_monotonic_Control *the_period;
>>> -  ISR_lock_Context        lock_context;
>>> -  uint32_t                jobs;
>>> -
>>> -  the_period = _Rate_monotonic_Get( period_id, &lock_context );
>>> -  _Assert( the_period != NULL );
>>> -
>>> -  jobs = the_period->postponed_jobs;
>>> -  _Rate_monotonic_Release( the_period, &lock_context );
>>> -  return jobs;
>>> -}
>>> -
>>>   rtems_status_code rtems_rate_monotonic_period(
>>>     rtems_id       id,
>>>     rtems_interval length
>>> diff --git a/testsuites/sptests/sp69/init.c
>>> b/testsuites/sptests/sp69/init.c
>>> index ac6f58c..c38beb8 100644
>>> --- a/testsuites/sptests/sp69/init.c
>>> +++ b/testsuites/sptests/sp69/init.c
>>
>>
>> Missing copyright?
>>
>>> @@ -162,6 +162,14 @@ rtems_task Init(
>>>            rtems_test_assert( statistics.missed_count == i );
>>>     }
>>> +
>>> +  /* Check the status */
>>> +  status = rtems_rate_monotonic_get_status( period_id, &period_status );
>>> +  directive_failed( status, "rate_monotonic_get_status" );
>>> +  puts(
>>> +    "rtems_rate_monotonic_get_status - verify value of a postponed jobs
>>> count"
>>> +  );
>>> +  rtems_test_assert( period_status.postponed_jobs_count == 3 );
>>>         TEST_END();
>>>   diff --git a/testsuites/sptests/sp69/sp69.doc
>>> b/testsuites/sptests/sp69/sp69.doc
>>> index fbf0e4e..e881a19 100644
>>> --- a/testsuites/sptests/sp69/sp69.doc
>>> +++ b/testsuites/sptests/sp69/sp69.doc
>>> @@ -1,5 +1,6 @@
>>>   #  COPYRIGHT (c) 1989-2009.
>>>   #  On-Line Applications Research Corporation (OAR).
>>> +#  COPYRIGHT (c) Kuan-Hsun Chen.
>>
>>
>> Missing year.
>>
>>
>>>   #
>>>   #  The license and distribution terms for this file may be
>>>   #  found in the file LICENSE in this distribution or at
>>> @@ -21,3 +22,4 @@ concepts:
>>>     a period is initiated.
>>>   + Verify the correctness of the status values returned on an active
>>> period.
>>>   + Ensure the missed period count is properly maintained.
>>> ++ Verify the correctness of the postponed job count.
>>> diff --git a/testsuites/sptests/sp69/sp69.scn
>>> b/testsuites/sptests/sp69/sp69.scn
>>> index 654eea0..e102d22 100644
>>> --- a/testsuites/sptests/sp69/sp69.scn
>>> +++ b/testsuites/sptests/sp69/sp69.scn
>>> @@ -2,8 +2,9 @@
>>>   rtems_rate_monotonic_get_status - verify values of an inactive period
>>>   rtems_rate_monotonic_get_status - check RTEMS_NOT_DEFINED
>>>   rtems_rate_monotonic_get_status - verify values of an active period
>>> -wall time should be ~600000000 is 609216000
>>> -cpu time should be ~100000000 is 109217000
>>> +wall time should be ~600000000 is 609402399
>>> +cpu time should be ~100000000 is 109612659
>>>   rtems_rate_monotonic_cancel -  OK
>>>   Testing statistics on missed periods
>>> +rtems_rate_monotonic_get_status - verify value of a postponed jobs count
>>>   *** END OF TEST 69 ***
>>
>>
>> --
>> 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.
>>
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel



More information about the devel mailing list