public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Rishikesh K Rajak <risrajak@linux.vnet.ibm.com>
To: naresh kamboju <naresh.kernel@gmail.com>
Cc: ltp-list <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH] Synchronization required before release the lock: sem_post/8-1.c
Date: Mon, 22 Mar 2010 13:55:28 +0530	[thread overview]
Message-ID: <20100322082528.GF20606@linux.vnet.ibm.com> (raw)
In-Reply-To: <f5a7b3811003080257n43d1af67o2942f4d8de2dc5b1@mail.gmail.com>

On Mon, Mar 08, 2010 at 04:27:36PM +0530, naresh kamboju wrote:
> Hi Rishi and Garrett,
> 
> On Wed, Mar 3, 2010 at 7:15 PM, naresh kamboju <naresh.kernel@gmail.com> wrote:
> > On Wed, Mar 3, 2010 at 5:25 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> >> On Wed, Mar 3, 2010 at 3:49 AM, naresh kamboju <naresh.kernel@gmail.com> wrote:
> >>> On Wed, Mar 3, 2010 at 5:12 PM, Garrett Cooper <yanegomi@gmail.com> wrote:
> >>>> On Wed, Mar 3, 2010 at 3:33 AM, naresh kamboju <naresh.kernel@gmail.com> wrote:
> >>>>> On Wed, Mar 3, 2010 at 3:15 PM, Rishikesh K Rajak
> >>>>> <risrajak@linux.vnet.ibm.com> wrote:
> >>>>>> On Wed, Mar 03, 2010 at 01:18:50AM -0800, Garrett Cooper wrote:
> >>>>>>> Uh, hold on a sec before we call it good...
> >>>>>>
> >>>>>> oh ok, holiding on for bit.
> >>>>>>
> >>>>>> Naresh, can you please send a patch with incorporating garret's comment
> >>>>>> ?
> >>>>>>>>> +        /* 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 --
> >>>>>
> >>>>> Garrett,
> >>>>>
> >>>>> When sem_wait is called 'val' value will be decremented by one.
> >>>>> To ensure that sem_wait is called, we are checking 'val' value by
> >>>>> calling sem_getvalue(). in this case we don’t need to decrement the
> >>>>> values by --. IIUC.
> >>>>> (snip)
> >>>>> OTOH,
> >>>>>>> I get annoyed
> >>>>>>> with tests that have infinite loops in them because the underlying
> >>>>>>> functionality is broken.
> >>>>> I agree with you, having infinite loops in test case is not a good.
> >>>>> However, in this patch while loop is not infinite loop. It is a
> >>>>> conditional loop with finite value.
> >>>>>
> >>>>> Please let me know if you have any issues.
> >>>>
> >>>>    The problem was that it wasn't failing properly as stated in the
> >>>> manpage on mips* (was decrementing past 0) and it was blocking
> >>>> indefinitely. Hence I had to yank those tests from the default run.
> >>> do you mean, after applying above patch you have noticed these kind of behavior?
> >>
> >> Not with this patch; I've seen this kind of behavior in general under
> >> odd conditions with my former team's embedded setup running tests with
> >> POSIX semaphores, so I don't doubt that others could run into the
> >> similar functional issues given the right conditions.
> >
> > Hey Garrett,
> >
> > Thanks for you information :-)
> >
> > I have tested these on MIPS architecture and  reproduced infinite
> > waiting situation after applying this patch. (with strace no issue
> > found ex: #strace ./8-1.test)
> > As you said there may be issues in MIPS-POSIX library. it may take
> > some time to fix these issues or may not be fixed.
> > However, I’ll discuss this issue with MIPS folks in different thread.
> >
> > ATM, my patch is not a good idea for MIPS architectures.
> > So, after your comments I have modified my patch and tested.
> > Here in this latest patch i did not change any thing regarding while loop.
> > I replaced sleep() in an appropriate place.
> > It is working fine on X86, ARM and MIPS.
> 
> please review the patch.
> I have tested this patch on X86, ARM and MIPS and results are good.
> 
> If you feel ok. please commit. otherwise give me your comments.

Hi Naresh,

can you send your patch against today's git ?

-Rishi
> 
> Best regards
> Naresh Kamboju
> >
> > Signed-off-by: Naresh Kamboju < naresh.kernel@gmail.com >
> > ---
> >  testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
> > |    2  1 +     1 -     0 !
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > 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)
> >        {
> > @@ -198,6 +197,7 @@ int main()
> >                //printf("val = %d\n", val);
> >        } while (val != 0);
> >        */
> > +       sleep(1);
> >        /* Ok, let's release the lock */
> >        fprintf(stderr, "P: release lock\n");
> >        sem_post(sem);
> >
> >
> > please let me know if you have any issues.
> >
> > Best regards,
> > Naresh Kamboju
> >> Thanks,
> >> -Garrett
> >>
> >



-- 
Thanks & Regards
Rishi
LTP Maintainer
IBM, LTC, Bangalore
Please join IRC #ltp @ irc.freenode.net

------------------------------------------------------------------------------
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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  reply	other threads:[~2010-03-22  8:25 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-25 13:45 [LTP] [PATCH] Synchronization required before release the lock: sem_post/8-1.c naresh kamboju
2010-03-02  8:50 ` Rishikesh K Rajak
2010-03-02 15:08   ` naresh kamboju
     [not found]     ` <20100303045624.GB10185@linux.vnet.ibm.com>
2010-03-03  6:00       ` naresh kamboju
2010-03-03  7:03         ` Rishikesh K Rajak
2010-03-03  9:18           ` Garrett Cooper
2010-03-03  9:45             ` Rishikesh K Rajak
2010-03-03 11:33               ` naresh kamboju
2010-03-03 11:42                 ` Garrett Cooper
2010-03-03 11:49                   ` naresh kamboju
2010-03-03 11:55                     ` Garrett Cooper
2010-03-03 13:45                       ` naresh kamboju
2010-03-08 10:57                         ` naresh kamboju
2010-03-22  8:25                           ` Rishikesh K Rajak [this message]
2010-03-22 15:20                             ` naresh kamboju
2010-03-22 18:50                             ` naresh kamboju
2010-03-23  4:39                               ` Rishikesh K Rajak
2010-03-23  8:04                                 ` naresh kamboju

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100322082528.GF20606@linux.vnet.ibm.com \
    --to=risrajak@linux.vnet.ibm.com \
    --cc=ltp-list@lists.sourceforge.net \
    --cc=naresh.kernel@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox