From: Subrata Modak <[email protected]>
Subject: Re: [LTP] [PATCH] pselect01 & nanosleep02: Warnings about Syscall 
Execution Time
Date: Mon, 16 Mar 2009 14:03:08 +0530

> Hi,
> 
> On Fri, 2009-03-13 at 13:36 +0800, CAI Qian wrote: 
>> Hi,
>> 
>> This patch addes warnings in pselect01 and nanosleep02 test cases that
>> the certain failures may due to the limitation of the way it calculates
>> the system call execution time. For example, in pselect01 test case,
>> 
>>   start = time(&t);
>>    retval = pselect(0, &readfds, NULL, NULL, (struct timespec *)&tv,NULL);
>>   end = time(&t);
>> 
>>   /* Changed total_sec compare to an at least vs an exact compare */
>> 
>>   if(((end - start) >= total_sec) && ((end - start) <= total_sec + 1))
>>   tst_resm(TPASS,"Sleep time was correct");
>>   else
>>   tst_resm(TFAIL,"Sleep time was incorrect:%d != %d",total_sec,(end - 
>> start));
>>  }
>> 
>> "end - start" is not the actual syscall execution time. It could sleep
>> a little bit more, and the task can be preempted before
>> "end = time(&t)". "end - start" maybe even bigger if the system is under
>> load.
>> 
>> In addition, looks like pselect01_64 test case does not exist anymore,
>> so I have removed it from the runtest file. Is it correct?
>> 
>> Signed-off-by: CAI Qian <[email protected]>
>> 
>> --- runtest/syscalls.orig    2009-03-12 22:18:35.000000000 +0800
>> +++ runtest/syscalls 2009-03-13 13:32:45.000000000 +0800
>> @@ -700,7 +700,6 @@
>>  profil01 profil01
>> 
>>  pselect01 pselect01
>> -pselect01_64 pselect01_64
> 
> Not sure whey these should be removed, when i see it build/install/run
> properly.
>

You are correct.

Thanks,
CAI Qian
 
>> 
>>  ptrace01 ptrace01
>>  ptrace02 ptrace02
>> --- testcases/kernel/syscalls/pselect/pselect01.c.orig       2009-03-12 
>> 22:19:50.000000000 +0800
>> +++ testcases/kernel/syscalls/pselect/pselect01.c    2009-03-13 
>> 13:33:03.000000000 +0800
>> @@ -129,9 +129,13 @@
>>    /* Changed total_sec compare to an at least vs an exact compare */
>> 
>>    if(((end - start) >= total_sec) && ((end - start) <= total_sec + 1))
>> -  tst_resm(TPASS,"Sleep time was correct");
>> -  else
>> -  tst_resm(TFAIL,"Sleep time was incorrect:%d != %d",total_sec,(end - 
>> start));
>> +    tst_resm(TPASS,"Sleep time was correct");
>> +  else {
>> +    tst_resm(TWARN,"This test could fail if the system was under load");
>> +    tst_resm(TWARN,"due to the limitation of the way it calculates the");
>> +    tst_resm(TWARN,"system call execution time.");
>> +    tst_resm(TFAIL,"Sleep time was incorrect:%d != %d",total_sec,(end - 
>> start));
>> +  }
>>   }
>>   cleanup();
>>  return 0;
>> --- testcases/kernel/syscalls/nanosleep/nanosleep02.c.orig   2009-03-12 
>> 22:29:44.000000000 +0800
>> +++ testcases/kernel/syscalls/nanosleep/nanosleep02.c        2009-03-13 
>> 13:32:56.000000000 +0800
>> @@ -214,6 +214,9 @@
>>         elapsed = (ntime.tv_sec - otime.tv_sec) * 1000000 + ntime.tv_usec - 
>> otime.tv_usec;
>> 
>>         if (rem - (req - elapsed) > USEC_PRECISION) {
>> +               tst_resm(TWARN,"This test could fail if the system was under 
>> load");
>> +               tst_resm(TWARN,"due to the limitation of the way it 
>> calculates the");
>> +               tst_resm(TWARN,"system call execution time.");
>>                 tst_resm(TFAIL, "Remaining sleep time %lu usec doesn't "
>>                          "match with the expected %lu usec time",
>>                       rem, (req - elapsed));
>> @@ -255,6 +258,9 @@
>>                 req = timereq.tv_sec * 1000000 + timereq.tv_nsec / 1000;
>>                 elapsed = (ntime.tv_sec - otime.tv_sec) * 1000000 + 
>> ntime.tv_usec - otime.tv_usec;
>>                 if (elapsed - req > USEC_PRECISION) {
>> +                    tst_resm(TWARN,"This test could fail if the system was 
>> under load");
>> +                    tst_resm(TWARN,"due to the limitation of the way it 
>> calculates the");
>> +                    tst_resm(TWARN,"system call execution time.");
>>                      tst_resm(TFAIL, "Child execution not "
>>                                  "suspended for %d seconds %lu nanoseconds",
>>                                  timereq.tv_sec, timereq.tv_nsec);
> 
> However, these changes are fine and hence merged.
> 
> Regards--
> Subrata
> 
>> 
>> ------------------------------------------------------------------------------
>> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
>> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
>> easily build your RIAs with Flex Builder, the Eclipse(TM)based development
>> software that enables intelligent coding and step-through debugging.
>> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
>> _______________________________________________
>> Ltp-list mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/ltp-list
> 

------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to