From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03D51D3C533 for ; Thu, 17 Oct 2024 21:57:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 88D336B007B; Thu, 17 Oct 2024 17:57:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7EE506B0082; Thu, 17 Oct 2024 17:57:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 668426B0083; Thu, 17 Oct 2024 17:57:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 4AE246B007B for ; Thu, 17 Oct 2024 17:57:30 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 110BDA03AE for ; Thu, 17 Oct 2024 21:57:09 +0000 (UTC) X-FDA: 82684456050.11.442B90D Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2046.outbound.protection.outlook.com [40.107.243.46]) by imf11.hostedemail.com (Postfix) with ESMTP id CC22840017 for ; Thu, 17 Oct 2024 21:57:14 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=pagocNeS; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.243.46 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729202100; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=A2vc54QON+QBSymTqx8rPHAf8xkd39haMsLOmhcBUfA=; b=8jlh0Mw/PS6eaWKgazsNUcZbTRV9Wy1Vy+JK3uQyT9XRak68rZfJpsGc27855KxZzySUCX QjaEn0JthzE1xJnYRf1xUGFCGbMqVWaHh1VgjkUOePaYWY0IHVxPgOVoOwW5TN56HD+Wbj UEksKSO3LhABAeM329gk6ey+bxdwUS4= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1729202100; a=rsa-sha256; cv=pass; b=t0xLr9rwEHooDxD+MJk+Vb3Q+ea38MiJc5oaOrYUVql4jkTad1ERDSesN/zaonGKuWPVkc P3WggGVwETuv/wz9Q5NADojdBK33NAk/p2g2aV0ojkcvNhLKyKUVdF4ZT0/XMhDVozK43Q Iq8/DcX1IBcSoPGASbtb8FmVWkNXRvQ= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=pagocNeS; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of jhubbard@nvidia.com designates 40.107.243.46 as permitted sender) smtp.mailfrom=jhubbard@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VyiF7oeWDpaLhzPSeK0cciO3YX7Rf6Lysy8xPz5aM/Nj04DlDaSpXOfqg9C8lOzvXzUvooFd06C7VivxuLjbQpyfxGKnxZWL9kMyvWlrWc34OJiPUJpnWzYHQYODx9T84AJZZt+sdUxtTyu3YdAcSSQqpNsdLtR6JNCAnlfYPw7Eko95uP43mTQ8obvpcb6mlRhXmy+fJj2BP64OLSXQEFWmUVoLDGumyhZsqM9bSmBeg6jSMGg9+w8mqpRFJdxVLydF9AbwBT7AdvjRlbV8reNaquFNvmCr83O2kazat4S0EYNauQsWrAruWbaTD340Av58beHvSiyOSLggS5WJTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=A2vc54QON+QBSymTqx8rPHAf8xkd39haMsLOmhcBUfA=; b=TYOo9Os+ztJ5/uGnIMaXJ8VKBzsTBhMNv2p5wEFNpdP2xZeFZvOPQHE9IqMezJxkujnes/Z9HTFUEWoVqv1tsg/vGeN9prRODKJzg/U8owqrDnoU2knHjyGyTl0spttQsCRUMtQH2pactmNNNbiQj+zposZh0EA4hEn7X4+jUKT2h83WvCDiW6kXGtzRCSD9ah5WlskVhzMcsFDLEML6pA2kJnFdlb4FO9qw32cOevHUcPGtXmP7MaYOVOWbPYa1x3v5A4wClTScQ0Alk8L0ZsmvnROY1gl7ZmEpCPTFz0beGYi5k7tA4rK92CpvmJMs2FNcVEqM/0WelPqZllEkUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=redhat.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A2vc54QON+QBSymTqx8rPHAf8xkd39haMsLOmhcBUfA=; b=pagocNeSuYH2QqNqahA694JJYVadiwIBNGpQaEVNJelShfuM38Xb+xvP9khNAwwlqV7oIxtibDxsvzLaR4RxXwIEcxBR9R9LK2FZkSSR05EoWxybxrSdzVjk0c9vzRLvXeKiWKbyaB6GM7yR4N7llQenhFtSC4ZsaNt6dFBudytv+zQJFz1RKMWWYnCFBSVxse2L7YcnEGVgP58TYzPjR+kETUe4d+zpuJZ7C3Fe4hl4IBgUBqxAX9ZrIsZ+2PlPY99H92Xx+8JlXamy08Vy6E41da2L9zfxebgxqVMAbyXwaJWF8idfJNm87ir4y7opoTgGyWeTeW2Mt2aju2iQzQ== Received: from BL1PR13CA0209.namprd13.prod.outlook.com (2603:10b6:208:2be::34) by CH3PR12MB7689.namprd12.prod.outlook.com (2603:10b6:610:14d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.19; Thu, 17 Oct 2024 21:57:22 +0000 Received: from BL6PEPF0001AB77.namprd02.prod.outlook.com (2603:10b6:208:2be:cafe::d5) by BL1PR13CA0209.outlook.office365.com (2603:10b6:208:2be::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8093.7 via Frontend Transport; Thu, 17 Oct 2024 21:57:21 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL6PEPF0001AB77.mail.protection.outlook.com (10.167.242.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.17 via Frontend Transport; Thu, 17 Oct 2024 21:57:21 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 17 Oct 2024 14:57:07 -0700 Received: from [10.110.48.28] (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 17 Oct 2024 14:57:06 -0700 Message-ID: Date: Thu, 17 Oct 2024 14:57:05 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/gup: stop leaking pinned pages in low memory conditions To: David Hildenbrand , Alistair Popple CC: Andrew Morton , LKML , , Shigeru Yoshida , Jason Gunthorpe , Minchan Kim , Pasha Tatashin References: <20241016202242.456953-1-jhubbard@nvidia.com> <1f8dcae1-416e-43cf-8dda-5440e0db4c00@redhat.com> <87v7xqmmxt.fsf@nvdebian.thelocal> <52bd4862-d6ce-48f6-9bc2-0f7376a56115@redhat.com> Content-Language: en-US From: John Hubbard In-Reply-To: <52bd4862-d6ce-48f6-9bc2-0f7376a56115@redhat.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF0001AB77:EE_|CH3PR12MB7689:EE_ X-MS-Office365-Filtering-Correlation-Id: ff6dca29-d67e-40c0-b597-08dceef6ad57 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QzVNWE1hYWFwUWtGQXFLQk53NjV1bVBjU3BtcW8rWXErQTlNcVlDQW1yR3Rn?= =?utf-8?B?ZG5tYkhMY0VMZTl3TktaR0htMUpBU01oT0VvR0YzMmNUbSs3RGZ2QysyNzNP?= =?utf-8?B?MDduS3RReVFGTXN0QWRPRjhUdERyNXAyNVMzUWovVXRUMU5nNk91dUwrQnlj?= =?utf-8?B?bGo4VklyWWMwb1VYM3NKZG1zR3YvQmZuQjhxV3hDblBONEZmUFd4QWFvWjhC?= =?utf-8?B?dytkSS9ESUE5cFFKNlVTdVJrdjRmVVdPemcwV2kydTQwR3ZQQTJCeHpCb2p4?= =?utf-8?B?OUZBUWpCSnBPU2xXeVdVdnBUT1RKaDVMN3Z2MyttNndhdmtkZGtMNEdTbFRJ?= =?utf-8?B?WXhWWHRiV01xZm1OMmFLQzlGMjlpSGgrb1I4ZWV5eGhrSUs5cWZnWEQxS0t5?= =?utf-8?B?UzErWFl4bVpTL2R3REI3SG1hN2lvc1JNVE9NNmVhaHdoWDJXRWd2YzFQZytE?= =?utf-8?B?Vk9UR2JrNkZYcTF1aFkzT3ZYbnJDbHBET2I4RGpJZ2FRMFdyenN0ajNJYXZv?= =?utf-8?B?enNpQ2hSSERZQ1pkYm10Z3JMMDBTVytiZWlpaWRWMkh5Q0p6Z3U2d0lpM1Z1?= =?utf-8?B?dk5DRzVxamZTeUE1cGJLZHhvbkpzenFFVmdBVDV4KzhmdzhXcFEzR1lJVW9X?= =?utf-8?B?blVyWUNvTGRzUkNmUmFzMlMwNWo4aU1SbmxPa21wc2ExcjlzL3B0WWtBUHdG?= =?utf-8?B?eWVBZDRmSEZwMzg1S3MvVlNxS1NvdjN1UG81ZXIzSTlTcEEvZUlpSHdLeVpp?= =?utf-8?B?Q3htMWJqNTd3ZnBrUUZXK1VpbjE3RzZkdTN0d08xZ05XRDNXYWJyc1Y5amJB?= =?utf-8?B?N01RSFNYQTZ0cElibXJhQUFmeExPUWJRdEQ1cnlIVGI5c1c0R0tGZWx6TWRE?= =?utf-8?B?RWwyR0oxUDFra2xXRTd6aWQ5czE5MlZIM0QzSkhRVGpCbVRmQTVWazZsRlJZ?= =?utf-8?B?TGZXMHNQTjlQU2JULzluRDZtQXZ4dTRhQkVOM1p3UWtBWkIxVk9CYTZRVUJF?= =?utf-8?B?NUtGT3ZObERvYlQ3V3R0cFNPeTRWYk5mTDEwSkRZNlFPV3JucTZSZ2k2UHY5?= =?utf-8?B?eWpIL2hXSHFkdEY3K1I2VHc4K0g1R2R6NFRrUnhONnRwOUpkWVlKN0JuWThv?= =?utf-8?B?YXhUOVJ5RjdxZERCU05ZeGlmSEp2RDlJd2JrVk9FMGMvMWxIR2dzeTNITThU?= =?utf-8?B?L0ZsY2VTeHBZNlJ4QmhOV3JTVi85K1YxbFhEbGVXd1h2QXE3VXNuRHl6RWRj?= =?utf-8?B?WXZKMWdqVzJoR0pNQk5Wc1I4eGswNEQ3aHFDSTZ1eXdXTVM1RW1EaEVkQ0RD?= =?utf-8?B?cHpkN0JTdlJyRWV2Q0ZDd05hR0pGb2NhMlFlbUJNZktpQ05uTTJLdG1hQmpC?= =?utf-8?B?eGo0ek1MNGtTNVdBZ1dXUisxUjl4VGpOYmtUSjFaOG1adTNCei84eXlzZ1VZ?= =?utf-8?B?ZUJERXRId2NuNnpjSEVpVVgvVllBVWtEUVFvS3VKQ0xPdnZpemx5MjB6Qnc4?= =?utf-8?B?R0R0SDkzWEpMcVQxR1BCMGp5TVpBSUpkZDVkNlpFWG1hZDlXa29IM3BaakZD?= =?utf-8?B?b1gxWVR0MFMzMCtEOG5jdkVMMk5xQUxjNHMxeC9XKy9UZnExd2VQdzhqOVVr?= =?utf-8?B?bmJpR3BaZVlrQ1NVTjVUa2piTXFES0pKMnFjNXJ4UlUycitKZ1RhVHFXQ3Jm?= =?utf-8?B?djRjQWMydk43Ync5MGdNQnJFNUduUU1tUmtXTVluYXR0VTJPSzRnRlRzci8v?= =?utf-8?B?QTFlR2lPRjA2SEtQMFRWK010a1BCbEN5RllpcmtOZTRWL1YrdmFlT2QzU3J6?= =?utf-8?B?Q002RTdHOVByQ0ZxMlJobnRjQTc2V25Kc3oreHd6dDk0SWZ5eG9OZjNET01D?= =?utf-8?B?Z0VCdVdIVVdnanJaRGZQTHVTQUxqTGNLbVJuby85emp2dXc9PQ==?= X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2024 21:57:21.5464 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff6dca29-d67e-40c0-b597-08dceef6ad57 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF0001AB77.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7689 X-Stat-Signature: 8bym4wukwn7was9zyepybkkomurccqni X-Rspamd-Queue-Id: CC22840017 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1729202234-812143 X-HE-Meta: U2FsdGVkX1+cWw9SAZj8Df+x6Wdr0k8xfdYdgyVteOmgF6FSLC4fMwe30tGjGJkhCPabxNGj1z1w5c/mS1GCxvxtyeY5232B6p3Bkyxw/84pfBJFGhPj+J3i9f6bql8NBOaMxuTClB/bBA1NpuwQvE644YwBVHbfMgOGYKh9i/bWXHd3DF84vLN3mUfGUTTUx1XyK7COngSQI9R3I6eGIbJO+DoLqxxWPNPO6a+qzIBi6W7kT8C6PDAeXK1wwXe9h3UnlXf/4JWrG+ueX7sNm0gF7nnujspDZkFBi85uwyK2fS0ltfOSr9Nqglm6t/pWqJlyyjvwB8xI/Hp1nzGfNsndj57WcYkKeCdd6ZFnxqAQGGrBV9O6neAKtL2x3XbuEKnSWhJ7JYkygZAXSEj/lBYIS/Lofdo1BNQEMN3EamfI21SuEVKGiS4IKpJoDb+ppOzILbuD6NA1CbRPZ52ZbotVkStWLuuoFo8mGHKZ3zAZK6IcGIqVogdAmusDuOVD//V9Jr5P6qX14+AJ2+uZxKIoQEbPhnhhtvfHDoPaAX8v7qZcDQIDVsG3JSw5NYCr+7RbdZUI1EWbmwVSiQumqRNS0CRkNy/qjBj2QSPv/DF04RrA6rSLxA1hFGTDf9wa1ZgqwPts/Su8LayBpF25F8D7+lgwsNWtrU6m7oVWceCQwoubnOh1mRJRNzAuF3tt+MkLs7o31nIOfXWpgUQhr/hzzv604QR93PpFRxRygDenxKP+YfbVyBawfSG6BCF/pFH3ws57KnYKGnPMRqheBAQm90WYET9Sa+nWF1LTAunLfgV6IFrC+KlCn4yE4RgiAI5ncIBRh5d25I37fcwlKIOOYWGk7J3y46PY+6nsFB/ERguONLkB6ygYgoz5RNAsCdqxuv44kZ+4VWCfHyGuxkJdDgthM67ch8Y3LZllIjq7Xb2/Z+L3dV1iOjSGBBdZVSkFGrqT7kzshy6BeUG V+QItfSI iQSdJiyY1ldymcUtL0ev1mCcFWEDq+9axdKTOHlqU1FIoy+PUM+iDjDwi6nUTdKyscdykmhURXwn5iXZBMkf3wXtaveIm/fwIy66GfyWQxFnu0NZUZP9a3wEEP6C1XdFQhbAHZ2JSZMEuO/aWtAFDgiz5/+EWGYW/JlMBSq2/d3cOStm6Y/jcDHRJVQZBMCuFIHqQ0/qd9oicwjL6Zn3iYoeY9vu7LlRGBALoIANyUUG/THuGLUBOk+bl66B/Wc8AkawBgOfTdbcdRSVqeubMOHFRQi7OAjz+VK/7qzULY1hjd+AX1nrEfxUBKNPn2EtduGivuc1sMhGttmz/XEO/RwJcQaTHv6SSAMgQSWd/qfM0EWvd8z8j3XHjr4BotCB+J1rFBDFQzxJUig4UxngeGuI7As/ZiH4/SH3lutTnq/x35b1ItZFfn7uLAtZBcw5nytwYqS1EeZs6ZBJ3zJ/P1hU+iEu1+duDFhjBOppsdejQfq22ystzHPyOGm2LmMjHXzoccBw4jxFb85KaEqF8QUc26Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 10/17/24 2:47 PM, David Hildenbrand wrote: > On 17.10.24 23:28, Alistair Popple wrote: >> David Hildenbrand writes: >>> On 16.10.24 22:22, John Hubbard wrote: ... >>>> +        if (rc != -EAGAIN && rc != 0) >>>> +            unpin_user_pages(pages, nr_pinned_pages); >>>> + >>>>        } while (rc == -EAGAIN); >>> >>> Wouldn't it be cleaner to simply have here after the loop (possibly >>> even after the memalloc_pin_restore()) >>> >>> if (rc) >>>     unpin_user_pages(pages, nr_pinned_pages); >>> >>> But maybe I am missing something. >> >> I initially thought the same thing but I'm not sure it is >> correct. Consider what happens when __get_user_pages_locked() fails >> earlier in the loop. In this case it will have bailed out of the loop >> with rc <= 0 but we shouldn't call unpin_user_pages(). doh. yes. Thanks for catching that, Alistair! I actually considered it during the first draft, too, but got tunnel vision during the review, sigh. > > Ah, I see what you mean, I primarily only stared at the diff. > > We should likely avoid using nr_pinned_pages as a temporary variable that > can hold an error value. > OK, I still want to defer all the pretty refactoring ideas into some future effort, so for now, let's just leave v1 alone except for fixing the typo in the comment, yes? I'll still send out a 2-patch series with that, plus a suitably modified fix for the memfd case too. thanks, -- John Hubbard