[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.

Kuan Hsun Chen c0066c at gmail.com
Wed Jan 25 14:16:02 UTC 2017


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?

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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20170125/ca775b7c/attachment-0002.html>


More information about the devel mailing list