The Final one also Merged.
Thanks--
Subrata
On Thu, 2008-02-14 at 13:37 +0100, Sebastien Dugue wrote:
> The 'period missed' check of the thread first loop should not depend on the
> thread starting time. This is especially visible on 'slow' platforms where
> one cannot run the test if thread creation takes a long time.
>
> Fix it by removing this dependency. All delays are now calculated relative
> to when the thread starts.
>
> Signed-off-by: Sebastien Dugue <[EMAIL PROTECTED]>
> Cc: Darren Hart <[EMAIL PROTECTED]>
> Cc: Tim Chavez <[EMAIL PROTECTED]>
> Cc: Matthieu CASTET <[EMAIL PROTECTED]>
> ---
> .../realtime/func/sched_latency/sched_latency.c | 13 ++++++-------
> 1 files changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/testcases/realtime/func/sched_latency/sched_latency.c
> b/testcases/realtime/func/sched_latency/sched_latency.c
> index b7ba74b..8500525 100644
> --- a/testcases/realtime/func/sched_latency/sched_latency.c
> +++ b/testcases/realtime/func/sched_latency/sched_latency.c
> @@ -121,12 +121,11 @@ void *periodic_thread(void *arg)
> int i;
> nsec_t delay, avg_delay = 0, start_delay, min_delay = -1ULL, max_delay
> = 0;
> int failures = 0;
> - nsec_t next = 0, now = 0, sched_delta = 0, delta = 0, prev = 0;
> + nsec_t next = 0, now = 0, sched_delta = 0, delta = 0, prev = 0,
> iter_start;
>
> - prev = start;
> - next = start;
> now = rt_gettime();
> start_delay = (now - start)/NS_PER_US;
> + iter_start = next = now;
>
> debug(DBG_INFO, "ITERATION DELAY(US) MAX_DELAY(US) FAILURES\n");
> debug(DBG_INFO, "--------- --------- ------------- --------\n");
> @@ -147,9 +146,9 @@ void *periodic_thread(void *arg)
> printf(" actual delta: %8llu us\n", delta/1000);
> printf(" latency: %8llu us\n",
> (delta-sched_delta)/1000);
> printf("---------------------------------------\n");
> - printf(" previous start: %8llu us\n",
> (prev-start)/1000);
> - printf(" now: %8llu us\n",
> (now-start)/1000);
> - printf(" scheduled start: %8llu us\n",
> (next-start)/1000);
> + printf(" previous start: %8llu us\n",
> (prev-iter_start)/1000);
> + printf(" now: %8llu us\n",
> (now-iter_start)/1000);
> + printf(" scheduled start: %8llu us\n",
> (next-iter_start)/1000);
> printf("next scheduled start is in the past!\n");
> ret = 1;
> break;
> @@ -167,7 +166,7 @@ void *periodic_thread(void *arg)
> } while (now < next);
>
> /* start of period */
> - delay = (now - start - (nsec_t)(i+1)*period)/NS_PER_US;
> + delay = (now - iter_start - (nsec_t)(i+1)*period)/NS_PER_US;
> dat.records[i].x = i;
> dat.records[i].y = delay;
> if (delay < min_delay)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list