Uh, hold on a sec before we call it good...

On Tue, Mar 2, 2010 at 11:03 PM, Rishikesh K Rajak
<[email protected]> wrote:
> On Wed, Mar 03, 2010 at 11:30:42AM +0530, naresh kamboju wrote:
>> On Wed, Mar 3, 2010 at 10:26 AM, Rishikesh K Rajak
>> <[email protected]> wrote:
>> > On Tue, Mar 02, 2010 at 08:38:20PM +0530, naresh kamboju wrote:
>> >> On Tue, Mar 2, 2010 at 2:20 PM, Rishikesh K Rajak
>> >> <[email protected]> wrote:
>> >> > I feel before getting semaphore value, we need to sync first so here
>> >> > sleep is require,though your point is valid that there is no use of
>> >> > using sleep inside while loop.
>> >> I agree with you.
>> >> AFAIU, we should call sleep() before calling getting semaphore
>> >> value.when we don't have while loop here. Because while loop condition
>> >> is depends on val so when ever we call sem_getvalue() it will get
>> >> latest value of val.
>> >> In addition to this, we are ensuring val is decremented before we do
>> >> unlock the sem by while loop condition.
>> >>
>> >> Having sleep() in while loop will not effect the final output. IIUC
>> >>
>> >
>> > Hi Naresh,
>> >
>> > I am not able to apply your patch against ltp next branch. can you
>> > please send me patch against next branch of ltp ?
>> Here I have posted and attached to this e-mail.
>
>
> Apllied to next branch . Thanks for your patch, i will test in
> production environment, if it is not creating any regression will merge
> with master branch and it will available to next month release.
>
> Thanks
> -Rishi
>>
>> Signed-off-by: Naresh Kamboju < [email protected] >
>>
>> ---
>>  testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
>> |   15        8 +     7 -     0 !
>>  1 file changed, 8 insertions(+), 7 deletions(-)
>>
>> Index: b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
>> ===================================================================
>> --- a/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
>> +++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
>> @@ -161,7 +161,6 @@ int main()
>>       }
>>       fprintf(stderr, "P: child_1:%d forked\n", c_1);
>>
>> -     sleep(1);
>>       c_2 = fork();
>>       if (c_2 == 0)
>>       {
>> @@ -176,13 +175,13 @@ int main()
>>       }
>>       fprintf(stderr, "P: child_2: %d forked\n", c_2);
>>
>> +        /* Step 3 Implementation */
>>       /* Make sure the two children has been waiting */
>> -     /*do {
>> -             sleep(1);
>> +     do {
>>               sem_getvalue(sem_1, &val);
>>               //printf("val = %d\n", val);
>>       } while (val != 1);
>> -     */

Please provide another patch with a limit to this -- I get annoyed
with tests that have infinite loops in them because the underlying
functionality is broken. Some architectures like mips* will
potentially be affected by this depending on how buggy their
implementation of POSIX semaphores is (this was definitely a problem
with my previous group and certain semctl calls being made on Cavium
hardware with our version of glibc / linux kernel).

>> +
>>       c_3 = fork();
>>       if (c_3 == 0)
>>       {
>> @@ -191,13 +190,15 @@ int main()
>>       }
>>       fprintf(stderr, "P: child_3: %d forked\n", c_3);
>>
>> +        /* Step 3 Implementation */
>>       /* Make sure child 3 has been waiting for the lock */
>> -     /*do {
>> -             sleep(1);
>> +     do {
>>               sem_getvalue(sem_1, &val);
>>               //printf("val = %d\n", val);
>>       } while (val != 0);
>> -     */
>> +

Same as above.

>> +     /* Synchronization required before release the lock */
>> +     sleep(1);
>>       /* Ok, let's release the lock */
>>       fprintf(stderr, "P: release lock\n");
>>       sem_post(sem);

Thanks,
-Garrett

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to