From patchwork Thu Apr 22 09:18:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tobias Burnus X-Patchwork-Id: 1469126 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FQsKk3dPlz9sWH for ; Thu, 22 Apr 2021 19:18:33 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 08D953A0E819; Thu, 22 Apr 2021 09:18:31 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id A945239FC819; Thu, 22 Apr 2021 09:18:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A945239FC819 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Tobias_Burnus@mentor.com IronPort-SDR: p79Ixe8aw/vNXETpe7X4PbZQDH9uDGfPr/z7n5GE2qvDTvGR4hg6ZaKIbLXeJk/Xnppr00/cVS 2MzNka8CHyw3RwWxwxjN5L8D8gRPIyn6lsamhZjGmUUtzkGaCF4owCtzzAfnS1tKPF9pW/1luW jgNVJ0BPBu2/YvX0o0U3clKS1gI7IFHPbIwV7QOPXJUtEdaZeqlRM4vcCaUoAjEI6CU6BBd43B lCXBt8WAtCaau+bM7Q8qhRRvhQFC/DyPHaj/+znAuD8QiBN+qkM2zhD/tgReNdUkksqVeCXLYc qHo= X-IronPort-AV: E=Sophos;i="5.82,242,1613462400"; d="diff'?scan'208";a="60397206" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 22 Apr 2021 01:18:26 -0800 IronPort-SDR: 6/U/Yep8xKOp7+ux/3VIWz4QXN9l8h0rhILFavsTVaqgdFo+9zuMkVBecz+xk7CCei3eWNGg6t IX2w1GjL0qIV4qe3zIgtsrT42k1+sOpiMdoRXsZEJaFFpvpH0TeIdIr4hS9hVF+Vk+28SEBx0f cQBjQHQ+fDeQGmdECf1t6WPYVzM0FMwlYBjDeydxBKfLvxCJFmSkMEaz1QB5czrMYxL+qDNshw lHPEdmna5U0s2rXjk56R2/RjsTddKNRMnrToIO1PKGhHYIFncsR6pS391uVaHY7JY3asTOvK+p 1EY= To: gcc-patches , fortran From: Tobias Burnus Subject: [Patch, committed] gfortran.dg/pr68078.f90: Avoid increasing RLIMIT_AS Message-ID: <21214aca-e098-c582-91d5-1cba52a1e2b0@codesourcery.com> Date: Thu, 22 Apr 2021 11:18:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.9.1 MIME-Version: 1.0 Content-Language: en-US X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-09.mgc.mentorg.com (139.181.222.9) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" The test did fail when the virtual memory already had a hard limit != unlimited. Committed as r12-57-gfaf7d413a3f3337be1a3ac5cdf33e0e3b87b426e Tobias ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstrasse 201, 80634 München Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Frank Thürauf commit faf7d413a3f3337be1a3ac5cdf33e0e3b87b426e Author: Tobias Burnus Date: Thu Apr 22 11:05:17 2021 +0200 gfortran.dg/pr68078.f90: Avoid increasing RLIMIT_AS pr68078.f90 tests out-of-memory handling and calls set_vm_limit to set the soft limit. However, setrlimit was then called with hard limit RLIM_INFINITY, which failed when the current hard limit was lower. gcc/testsuite/ * gfortran.dg/set_vm_limit.c (set_vm_limit): Call getrlimit, use obtained hard limit, and only call setrlimit if new softlimit is lower. diff --git a/gcc/testsuite/gfortran.dg/set_vm_limit.c b/gcc/testsuite/gfortran.dg/set_vm_limit.c index 30c4b43e0ed..8344f6fd079 100644 --- a/gcc/testsuite/gfortran.dg/set_vm_limit.c +++ b/gcc/testsuite/gfortran.dg/set_vm_limit.c @@ -8,9 +8,20 @@ void set_vm_limit (int vm_limit) { - struct rlimit rl = { vm_limit, RLIM_INFINITY }; + struct rlimit rl; int r; + r = getrlimit (RLIMIT_AS, &rl); + if (r) + { + perror ("get_vm_limit"); + exit (1); + } + + if (vm_limit >= rl.rlim_cur) + return; + + rl.rlim_cur = vm_limit; r = setrlimit (RLIMIT_AS, &rl); if (r) {