From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id 6C65F3851C24 for ; Wed, 24 Mar 2021 20:14:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6C65F3851C24 Received: by mail-ot1-x336.google.com with SMTP id s11-20020a056830124bb029021bb3524ebeso7502637otp.0 for ; Wed, 24 Mar 2021 13:14:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Cf1D4pjVfn2COo7vZxlkCOpm9HJqxXMqv5nRMmPb9iI=; b=q9s8EKF1zQBY+odXG+BmZFnCuRAmXTaLFa7y1eDhW7LZsJ8yvy8zevb/Beyv1XYyVQ VoHZ3SDSDiXVedNoNohNh+PGdodcYPB1AhAiKy4eJ+m6usI9WWEYXDVizOJCwNTtxzjl lqxtd97c5BLNHMOX9KUs7I5DN28t3oIe1I6xY8xTAdTxwx8exptAjOOCrMRpE1iP2iX9 sFk1ovA0EzXDXo3x06IC6BXQj0xKvljsQPQ4N3rsfx+3eIg/SvMrAvJcXGeQh8hy04t5 xjfCD1lbE6ctxAKgjF+SGnHB89jK7mVj4ONPWbeM8P137FD2sxzw2c0APZaVh/EV14DL 2ryg== X-Gm-Message-State: AOAM533cl+nMIWQ02KuKVAhxVRSBfB9qGfIJvwaR60MZPNyMbUY5k6hB 1xKrHtLB6znESnYAn0eyJOy2JOP9YQs/gH1H6gCNufDrDyQ= X-Google-Smtp-Source: ABdhPJyuLkNhNkqHhj2y5yNluW8ddY2Z/AHA2e3/IbjEJr5fJvX9tXZZL0hqvaku7/hV6zpoyZXXY0oNuyjB7YIq+KU= X-Received: by 2002:a05:6830:90c:: with SMTP id v12mr4504646ott.179.1616616870857; Wed, 24 Mar 2021 13:14:30 -0700 (PDT) MIME-Version: 1.0 References: <20210314164625.9312-1-lukma@denx.de> <20210322123213.58775fbd@jawa> <39ac5960-73ef-f838-4409-20384c83b59d@linaro.org> In-Reply-To: <39ac5960-73ef-f838-4409-20384c83b59d@linaro.org> From: "H.J. Lu" Date: Wed, 24 Mar 2021 13:13:54 -0700 Message-ID: Subject: Re: [PATCH] tst: Provide test for select To: Adhemerval Zanella Cc: Lukasz Majewski , GNU C Library Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3035.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Mar 2021 20:14:32 -0000 On Wed, Mar 24, 2021 at 12:47 PM Adhemerval Zanella wrote: > > > > On 24/03/2021 16:17, H.J. Lu wrote: > > On Mon, Mar 22, 2021 at 4:33 AM Lukasz Majewski wrote: > >> > >> Dear Community, > >> > >>> This change adds new test to assess select()'s timeout related > >>> functionality (the rdfs set provides valid fd - stderr - but during > >>> normal program operation there is no data to be read, so one just > >>> waits for timeout). > >>> > >>> To be more specific - two use cases are checked: > >>> - if select() times out immediately when passed struct timeval has > >>> zero values of tv_usec and tv_sec. > >>> - if select() times out after timeout specified in passed argument > >> > >> Do you have any comments regarding this patch? > >> > > > > This test failed on machines with more than 40 cores: > > > > tst-select.c:54: 1616610088.851713938s not after 1616610089.851712804s > > (difference 0.999998866s) > > error: 1 test failures > > > > I was doing 3 "makec -j28 check" in parallel. > > I think the nanosecond precision of time accounting is triggering the > failure, since select only support timeval (the error indicates that > the nanosecond precision is what is triggering it). > > Maybe if we ignore the nanosecond precision: > > diff --git a/misc/tst-select.c b/misc/tst-select.c > index 7c310256c5..4b1791ac8a 100644 > --- a/misc/tst-select.c > +++ b/misc/tst-select.c > @@ -45,6 +45,8 @@ test_select_timeout (bool zero_tmo) > to.tv_sec = timeout; > ts = xclock_now (CLOCK_REALTIME); > ts = timespec_add (ts, (struct timespec) { timeout, 0 }); > + /* Ignore nanosecond precision since select only support microsecond. */ > + ts.tv_nsec = (ts.tv_nsec * 1000) / 1000; How does it work? It looks like a NOP to me. > /* Wait for timeout. */ > int ret = select (fds + 1, &rfds, NULL, NULL, &to); -- H.J.