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 1299AC369D3 for ; Fri, 25 Apr 2025 16:27:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F64B6B0007; Fri, 25 Apr 2025 12:27:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 07D196B000C; Fri, 25 Apr 2025 12:27:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E5E356B000D; Fri, 25 Apr 2025 12:27:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C73E46B0007 for ; Fri, 25 Apr 2025 12:27:08 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0B653141C8C for ; Fri, 25 Apr 2025 16:27:09 +0000 (UTC) X-FDA: 83373095778.05.50223B9 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf21.hostedemail.com (Postfix) with ESMTP id 916DB1C0004 for ; Fri, 25 Apr 2025 16:27:06 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=a36N1mx4; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf21.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745598426; a=rsa-sha256; cv=none; b=zOWvpV5cIhUL6MzgPWVpDI7ac+oUvS9MBcYsfsBOnp0P9Cl30x2pa/XAqcdOgToCnOdo8P 3fjKs/5sHuxaB/HkmzA7lH3Hbc1xnM/m5A66iB69S9ZXeZeTTSATFPcvRyOy//qY/V5biz bxfjN86COseVmiDPgbKjxi3pu5ZYvqw= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=a36N1mx4; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf21.hostedemail.com: domain of peterx@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745598426; 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=/MhH+JzUZ4LUQs+r61lBHwV7dFz4bYUCQFljM9RbcvE=; b=azmA2slmw2LidnLEjqz0imUgihssEWwPvY7tiEtZoTNB19V0iVU6+LlngKLt9VrYDiWnxk eYNdUGuq6qilGNQdYI5QfjMuZ5EwX4R21wDxmWacAs3cmlbyh18vxWDDzqAnPU50F1NEDT 49BqPVfsaN9ID9aGyAwwh3ldis+V2s0= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1745598426; h=from:from: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; bh=/MhH+JzUZ4LUQs+r61lBHwV7dFz4bYUCQFljM9RbcvE=; b=a36N1mx4d8FQWgQoAhR56gmxC5EMgZzSi0m0cbP7mXzWtzAy8IyiEKbowXpPfUcg74LtAq nzuNpmb86MCg+B3AHvjZ4CBJOcI7FlJfzlYvs0bB34hRwUA5IJoAySp1DB0uMpus0OdNnX bpS85LWNZ9boMtn8fIQAA/SK9Nyj6uU= Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-515-L2LizLHNOq67uaycxtx-rQ-1; Fri, 25 Apr 2025 12:27:04 -0400 X-MC-Unique: L2LizLHNOq67uaycxtx-rQ-1 X-Mimecast-MFC-AGG-ID: L2LizLHNOq67uaycxtx-rQ_1745598424 Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-6eb2480028cso40982016d6.3 for ; Fri, 25 Apr 2025 09:27:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745598424; x=1746203224; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/MhH+JzUZ4LUQs+r61lBHwV7dFz4bYUCQFljM9RbcvE=; b=Ekh9QBlvqPCKJoaQEVjl+e7mmEs5y4fx5SF4Plai8xgcEj1Z9xH2Hlw3ZXdxLuBToI RJCyEuuTEx39dYbMdmshfefR0KWhRix3G8TvH8HAJKks6bddmVMj6+O6MPmZIYYILObN Tu1PpZ9B6Jn2INKcw5iq3zXVu/twZFeryARScnb4idZoco0uYSYvlEuxXjMFTtidrd2u Fq4d3lCVBgNMFq1RprdCZ1V28ddcpH5SGiXI0i4kLNDRr2xI7aNEbZmLTUzrxOlybSVc +EDLgB9PiURzGYTEiwZjJAd5PwKNtgxgcFWicsEvPKtD8ouaiGt51a5xJHmc4gA8A9aO UuMg== X-Forwarded-Encrypted: i=1; AJvYcCWbToh4APYfkes6VqApHRzK2Fs5E+SU0I/jIictlQVyJn1sLy1Jrmb+20qldS7Eu2LKc/pvjj+xwQ==@kvack.org X-Gm-Message-State: AOJu0YwVnhDk+hEBtvy2o2EfD0zy9dT1rmJ6rAQR1iNDt8ss1FxVGy40 TLZlEBrsZ3RCYpu0F/DrlOtOMH/6Ac7iJ5fkni+o7xVLsskdaWddBjw5WoDX0yleKGG46xDIEYh AMYxZCMmCoUPNUvaVa5G9TbFxSzGvn/OwayUOV88jDSl3Y7mv X-Gm-Gg: ASbGncv1VwMqcJf66xVKBCuDUkSK91w5uXYf1bY3uIMLt3SWErGo4HWU4Arx4DHLRd8 cxqUsEBqG7nWyzfUQdrOPMISSkyS1kJ03N4/bZ/zD12P8ERZmp5Z9yJsPB3YBv1QKObBGIj5o+a fFNYCgGvgw4JE0d9CEeF9nypwLy6XOSIPNyBenOhuyzMck3pOahIMUpBSjZ3Ziu3CXKveSiBfpx K2Qr1qGCF1GGTQ33+qLHWCuYjpv+e0sLFe5+42QOZny4vOqzcOaSmGFNNm4kK7jFndMrJ6nh+GI Efc= X-Received: by 2002:a05:6214:c2a:b0:6e6:65a6:79a4 with SMTP id 6a1803df08f44-6f4d1f9e216mr223296d6.44.1745598424266; Fri, 25 Apr 2025 09:27:04 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGrsTAOZevjGCechpgS5uQE6KpTPiMl2lEp9QFsRSucLuWkkusPkRPE26kdYaQ3TBFsbWONiw== X-Received: by 2002:a05:6214:c2a:b0:6e6:65a6:79a4 with SMTP id 6a1803df08f44-6f4d1f9e216mr222976d6.44.1745598423934; Fri, 25 Apr 2025 09:27:03 -0700 (PDT) Received: from x1.local ([85.131.185.92]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f4c08ef0cdsm23874656d6.18.2025.04.25.09.27.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Apr 2025 09:27:03 -0700 (PDT) Date: Fri, 25 Apr 2025 12:27:00 -0400 From: Peter Xu To: James Houghton Cc: David Hildenbrand , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Mike Rapoport , Suren Baghdasaryan , Axel Rasmussen , Andrew Morton , linux-stable , Andrea Arcangeli Subject: Re: [PATCH 1/2] mm/userfaultfd: Fix uninitialized output field for -EAGAIN race Message-ID: References: <20250424215729.194656-1-peterx@redhat.com> <20250424215729.194656-2-peterx@redhat.com> <23e2d207-58ac-49d3-b93e-4105a0624f9d@redhat.com> MIME-Version: 1.0 In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: X4MsQv1FgWslavFAlU4aiVjACXxhvxOzeDSkTcShiUY_1745598424 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 916DB1C0004 X-Stat-Signature: otp8pothasgyrfzc8ryy446i5mdiae8n X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1745598426-666969 X-HE-Meta: U2FsdGVkX1/9wXi3BzfCsKseS5jlG+RO+s7JwnmABj/TQaGwN9+DNEn/S90QjTDB0L0HbBF9wwB/66C50cQxX2fN9NJ8pTVK0fDb607hiEMoZm4hxrmttAtHn2S9YJfqePo0RgBuZGCeJyWJ4odABQ9rrcWAhrC6udnMZ9iM4O87QetQItSkgzqBm9LagelbjXF12HX0Kv+FTlvcNyD7IfXqQuvEpqBp8DalaU9bpq7Y0sLo2vwXgiHwoF+8eiH1Do2gQbD8FnU26SvTKgtFU7hoikR/GAObQKK4dhvfTET6MmynLpgFniNjmKQDEwaIndvLb6FD5f4iSUr9y7tkuzEbO9VnZ9UvUlb42boSQ0mcDAxYJuAsctoBTfX1CSbl/N+w1MoNWspZ1+YEVMRDtADemNW0KRK1qL57UcNMah+qpEnQ4g++woiGZNLvperbkODTq8iDNbI89GFxDiJdyB7rhuguPO+3W/tPbj7jRF+8YMft7atpgidkrHkCotZ2UTVhfCm91jiXl6Hq3IIapk9IC8Tv5rLAPkmJrDqLNwtjghvACP+an0HYJqR7dxQugIN33QgeOFvSohv36emQZRHZ+9LHJKAkkWQieM9Lo2qaRoIbe4fCfFOWzNEnKNJLLaM8vVD6HMBrtaDHLX/t65Wd75raCBv+RCSVYhcf1nvdWtVL5mXzgzPqmsnI3eNsZiDqPlc1oO14z4q7BMDTJz9gU0tYDJZa4/wD5Ueo4SW2kVv69Arc1UaFT1Ipg3P5zo93fgqCKDCt5UmOrhRhiDHJ0kepTPwHhIn4PXvi/Ga/B1OXsNb1tHurCAGCTccgnCQCGdMqynrBL7JF/YYucq+8OiB6TfrEs/vsJ6mrsIFQNAchqrMQj+4Z5hB3wbklQXsD4QZGoyqUn4TGFJQEcN3RVuFHZoGQw1GyIrJKynTa6rMokaDfpN6hQR5xBSh7v3awgxgPE5zB9f6/Z+b cutoj+xV oBMqRW0t2I8+5Sg8sk2JZ4pm7SjNZXHUEyqq15CEPQe1lLybq1NtVzkCPlhJZeGWrrCRxYXk3nSXWoZSkXRS0Z4j90wDtdtpMkQn2oENym2yZJm6i10xfFtSQnjtu2o3JFdPa2xqi65Gv6V+BtGTJzSWuBO08douIbdrGaFnS5/429WnMcZy1E0qFWd0E8BvCLRWYzaMyTPQJQFfRhX4lvt1Y2f9hEJiuMAgkeS6CSQ1U1ajSxbCJFeP8y7tcrY/v6DFJdqIKlKRuRM4ZgccDlU5GN5hMDe08jbwwXlUlVMFuvolrEAdlEGdvWiRoWWFDrzgCI+URFKedHhzcSURlVhUxOfvokWdn/Rh2QKweWoVxbhDdb47g080K/VOqXeswhzfgqoeNw0cDEzw= 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 Fri, Apr 25, 2025 at 11:54:47AM -0400, James Houghton wrote: > On Fri, Apr 25, 2025 at 11:12 AM David Hildenbrand wrote: > > > > On 24.04.25 23:57, Peter Xu wrote: > > > While discussing some userfaultfd relevant issues recently, Andrea noticed > > > a potential ABI breakage with -EAGAIN on almost all userfaultfd ioctl()s. > > > > I guess we talk about e.g., "man UFFDIO_COPY" documentation: > > > > "The copy field is used by the kernel to return the number of bytes that > > was actually copied, or an error (a negated errno-style value). The > > copy field is output-only; it is not read by the UFFDIO_COPY operation." > > > > I assume -EINVAL/-ESRCH/-EFAULT are excluded from that rule, because > > there is no sense in user-space trying again on these errors either way. > > Well, there are cases where we would store -EFAULT, when we receive it > > from mfill_atomic_copy(). > > > > So if we store -EAGAIN to copy.copy it says "we didn't copy anything". > > (probably just storing 0 would have been better, but I am sure there was > > a reason to indicate negative errors in addition to returning an error) > > IMHO, it makes more sense to store 0 than -EAGAIN (at least it will > mean that my userspace[1] won't break). > > Userspace will need to know from where to restart the ioctl, and if we > put -EAGAIN in `mapped`/`copy`/etc., userspace will need to know that > -EAGAIN actually means 0 anyway. Yes agreed, the API might be easier to follow if the kernel will only update >=0 values to copy.copy and only if -EAGAIN is returned, so that errno will be the only source of truth on the type of error that userapp must check first. For now, we may need to stick with the current API. -- Peter Xu