From patchwork Tue Oct 5 19:34:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: DJ Delorie X-Patchwork-Id: 45908 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B247B385BF9C for ; Tue, 5 Oct 2021 19:35:16 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B247B385BF9C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1633462516; bh=1OT5jhfkpII/BrCyAkrNAEodqhNo/Sa0VDlXxL4Nj8Y=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=EI9nAu2l7AbaradBfpJFuO0RaNYjcEZJ3htVN+nh/tEmkfjaqey95ufFS0BHC+MhK /oHVAoeIhh9pynRU8lrdN2edFOiMmKArKFGmWLibiRN2M7DGjfHPzAQzV71KCCBNPy +QrCsJ9YGpe38l7o+9+nzgHQyPHpA4/gafXk4Q5M= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by sourceware.org (Postfix) with ESMTP id 355B3385802D for ; Tue, 5 Oct 2021 19:34:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 355B3385802D Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-505-Fj0Idzo9MkKbls2pdWzTsg-1; Tue, 05 Oct 2021 15:34:53 -0400 X-MC-Unique: Fj0Idzo9MkKbls2pdWzTsg-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A640B652 for ; Tue, 5 Oct 2021 19:34:52 +0000 (UTC) Received: from greed.delorie.com (ovpn-112-2.rdu2.redhat.com [10.10.112.2]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7924260936 for ; Tue, 5 Oct 2021 19:34:52 +0000 (UTC) Received: from greed.delorie.com.redhat.com (localhost [127.0.0.1]) by greed.delorie.com (8.15.2/8.15.2) with ESMTP id 195JYp3J1111007 for ; Tue, 5 Oct 2021 15:34:51 -0400 Date: Tue, 05 Oct 2021 15:34:51 -0400 Message-Id: To: libc-alpha@sourceware.org Subject: Remove unreliable parts of rt/tst-cpuclock2 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-Patchwork-Original-From: DJ Delorie via Libc-alpha From: DJ Delorie Reply-To: DJ Delorie Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" This is a follow-up to the tst-cpuclock1.c change here: 9a29f1a2ae3d4bb253ee368e0d71db0ca9494120 This test, like tst-cpuclock1, may fail on heavily loaded VM servers (and has occasionally failed on the 32bit trybot), so tests that rely on "wall time" have been removed. Reviewed-by: Adhemerval Zanella diff --git a/rt/tst-cpuclock2.c b/rt/tst-cpuclock2.c index eebc3609d0a..32a1b75c2f3 100644 --- a/rt/tst-cpuclock2.c +++ b/rt/tst-cpuclock2.c @@ -62,22 +62,9 @@ chew_cpu (void *arg) return NULL; } -static unsigned long long int -tsdiff (const struct timespec *before, const struct timespec *after) -{ - struct timespec diff = { .tv_sec = after->tv_sec - before->tv_sec, - .tv_nsec = after->tv_nsec - before->tv_nsec }; - while (diff.tv_nsec < 0) - { - --diff.tv_sec; - diff.tv_nsec += 1000000000; - } - return diff.tv_sec * 1000000000ULL + diff.tv_nsec; -} - -static unsigned long long int +static void test_nanosleep (clockid_t clock, const char *which, - const struct timespec *before, int *bad) + int *bad) { const struct timespec sleeptime = { .tv_nsec = 100000000 }; int e = clock_nanosleep (clock, 0, &sleeptime, NULL); @@ -85,13 +72,13 @@ test_nanosleep (clockid_t clock, const char *which, { printf ("clock_nanosleep not supported for %s CPU clock: %s\n", which, strerror (e)); - return 0; + return; } if (e != 0) { printf ("clock_nanosleep on %s CPU clock: %s\n", which, strerror (e)); *bad = 1; - return 0; + return; } struct timespec after; @@ -100,16 +87,7 @@ test_nanosleep (clockid_t clock, const char *which, printf ("clock_gettime on %s CPU clock %lx => %s\n", which, (unsigned long int) clock, strerror (errno)); *bad = 1; - return 0; - } - - unsigned long long int diff = tsdiff (before, &after); - if (diff < sleeptime.tv_nsec || diff > sleeptime.tv_nsec * 2) - { - printf ("clock_nanosleep on %s slept %llu (outside reasonable range)\n", - which, diff); - *bad = 1; - return diff; + return; } struct timespec sleeptimeabs = sleeptime; @@ -126,7 +104,7 @@ test_nanosleep (clockid_t clock, const char *which, printf ("absolute clock_nanosleep on %s CPU clock: %s\n", which, strerror (e)); *bad = 1; - return diff; + return; } struct timespec afterabs; @@ -135,28 +113,10 @@ test_nanosleep (clockid_t clock, const char *which, printf ("clock_gettime on %s CPU clock %lx => %s\n", which, (unsigned long int) clock, strerror (errno)); *bad = 1; - return diff; - } - - unsigned long long int sleepdiff = tsdiff (&sleeptimeabs, &afterabs); - if (sleepdiff > sleeptime.tv_nsec) - { - printf ("\ -absolute clock_nanosleep on %s %llu past target (outside reasonable range)\n", - which, sleepdiff); - *bad = 1; + return; } - unsigned long long int diffabs = tsdiff (&after, &afterabs); - if (diffabs < sleeptime.tv_nsec || diffabs > sleeptime.tv_nsec * 2) - { - printf ("\ -absolute clock_nanosleep on %s slept %llu (outside reasonable range)\n", - which, diffabs); - *bad = 1; - } - - return diff + diffabs; + return; } @@ -290,37 +250,12 @@ do_test (void) printf ("self thread after sleep => %ju.%.9ju\n", (uintmax_t) me_after.tv_sec, (uintmax_t) me_after.tv_nsec); - unsigned long long int th_diff = tsdiff (&before, &after); - unsigned long long int pdiff = tsdiff (&process_before, &process_after); - unsigned long long int my_diff = tsdiff (&me_before, &me_after); - - if (th_diff < 100000000 || th_diff > 600000000) - { - printf ("live thread before - after %llu outside reasonable range\n", - th_diff); - result = 1; - } - - if (my_diff > 100000000) - { - printf ("self thread before - after %llu outside reasonable range\n", - my_diff); - result = 1; - } - - if (pdiff < th_diff) - { - printf ("process before - after %llu outside reasonable range (%llu)\n", - pdiff, th_diff); - result = 1; - } - - process_after.tv_nsec += test_nanosleep (th_clock, "live thread", - &after, &result); - process_after.tv_nsec += test_nanosleep (process_clock, "process", - &process_after, &result); + test_nanosleep (th_clock, "live thread", + &result); + test_nanosleep (process_clock, "process", + &result); test_nanosleep (CLOCK_PROCESS_CPUTIME_ID, - "PROCESS_CPUTIME_ID", &process_after, &result); + "PROCESS_CPUTIME_ID", &result); pthread_cancel (th);