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 B0BDDCDB482 for ; Tue, 17 Oct 2023 23:07:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 387D48D0118; Tue, 17 Oct 2023 19:07:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3392C8D0002; Tue, 17 Oct 2023 19:07:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 226DD8D0118; Tue, 17 Oct 2023 19:07:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 1246F8D0002 for ; Tue, 17 Oct 2023 19:07:44 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D5E141CBB2D for ; Tue, 17 Oct 2023 23:07:43 +0000 (UTC) X-FDA: 81356492406.02.1F421C1 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf29.hostedemail.com (Postfix) with ESMTP id 0961412001E for ; Tue, 17 Oct 2023 23:07:41 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MzSnZNak; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf29.hostedemail.com: domain of alx@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=alx@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697584062; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ourRoDn9ucMnxr5Xs5FvrnfBMF+4pQMUBKCv+c/WFtI=; b=0LgwsVFKKkPps4LBOA9Kqc34RHYrrZtaPlIiSuINKEuDNrPstcPiajJ3TvmS3acAd69vhr qekaCylhezN52sWIlGInBYb5eh3nkscmeUfNTiHvUMmlGhpAL30uW39nZhjo+FeTCO1XLl 8FpfGlmckg8+kSnEnRaVM7Likjk1up0= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=MzSnZNak; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf29.hostedemail.com: domain of alx@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=alx@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697584062; a=rsa-sha256; cv=none; b=TL3PbnHgW+yUE/JozzMnWAd9MOJyJyoAuWVz8TuY1Xh8/IfYKhlU8zpOsCs4nkpOy3yXAh SPrUNDtS8Mu9agsHT6fhy2RC1XOoRdh29WyYUTF3J1NyP7YioFqo65uZEXs4HOLdD+oBLV gCK/V4l7W7wFGSNLxMNv53OBY/1mRkw= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id 53F39B820D7; Tue, 17 Oct 2023 23:07:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B770C433C8; Tue, 17 Oct 2023 23:07:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1697584059; bh=dQ/jJ2xxWGs7cQZAVsrD6X/7JuhRJv3DnLJDerRLn6s=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=MzSnZNakYO8sxlX35q0nBc9AmKMn5dI0a6pJkwlfB0nEcckuChl5ROBBpYOW4pCma DqNe4DaBP8tlIDBh5/NSxkjIdi7XMMMtLTgzWoSfP6IuW4/enOk0pS5eQOAny7HcD6 tCdEdyvJJMmlCwTqGlNzdL/X4Ro3reKuH353yK3js2sD5rBBztwovdVVDftl+WWO+a 9ZR0BnICVepJxlniffGYEPS/ln7jQPsS51xhyOqBb+Mus909l6zyBWpobbVrOZl80Z dEaBQhO6VuEccEm5u7O6H+t7JAhlxLsycBWTf1kHXLBLtGJlpGHLQu6dgEkmN+QNLe HQ7MKTkJz0eSw== Date: Wed, 18 Oct 2023 01:07:35 +0200 From: Alejandro Colomar To: Axel Rasmussen Cc: Mike Rapoport , Peter Xu , linux-man@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 1/3] ioctl_userfaultfd.2: clarify the state of the uffdio_api structure on error Message-ID: References: <20231017230110.3170850-1-axelrasmussen@google.com> <20231017230110.3170850-2-axelrasmussen@google.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="B7otR/Eb6YTSxL7p" Content-Disposition: inline In-Reply-To: <20231017230110.3170850-2-axelrasmussen@google.com> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 0961412001E X-Stat-Signature: 16k8xnrz5wqk9313fnze113gye96t7ie X-Rspam-User: X-HE-Tag: 1697584061-774779 X-HE-Meta: U2FsdGVkX19etlteloxRvXYRzqTkHbkC/NYg3S8r1Jd40UPLY7oP5pM2mtf4QE+NKLAGo72z63P40jrYZYCIq+7IpYVQtcrmquVjOVOIH5fkVbCvVBswZEQ8Gh2+pCcrHS+JUINSCh3WqMNbqNvLCjtfIX4OqTJiabTnKjVtWGC4IeRF81bHh4gY6WZRjnmnsWQo1ZGofQCWyktHFDnVFMYNGqDD62HyZ1YzqmmY2TlVz9DKkKo+qnYjhyYRm7E22KfTjn1nH+7LMs+03T+ipmqr+PnVdnO+9NxUcV4ztXs5GE1bUTEoh2cpc0voXYtfpltu0hxhjoJgZvZoSfMZOG6fdtsH4WUYC04koEmkjLjJ3ZGYRJ7B5t7D7athIYJSdV3YLvOI8KO4cU50CXLsgBPXvWfwjnPRt6iQa/UZU8Gkq8hgjG8oRnRRRFKeWZbcwy47/gMd1OlGIyCNFBp0E6s3aly4h7VvAJZ8zlszsr3TZUAEkuglPFTNElbqQIfIPE7niPqJ7K8ZkQZ0zP067z+mYcgGKYKjknDKo3zCf+0zH7JqoaKhF7PngrWUyN9NoUOzGL2cv+u4LdPJwnx5DPQOLsWCx9iVWV7xYFcVx9oZXZnGoC4cQW/6KI2K9iwd4VNFxBSk0hctdNZPukfddoLePlb4ivTrCL6ZRw0EUpbhFi0iyNxmQCzBh3k9SfLk1FXokIaWZs7zRZQPZ7VALOFizCMg9H4HynpR/zMLxCeJ0TJcZRbOUJ9mg5KZoWSRJNvlcaAGRhtY8OCgTqWVhLqOBKiKFx0LnFHbodT3R57UwKcKAlNiKM577Ojdd3naOqjGwLL92pcYEpWBeAzMJ/i6QxNG3hiVqgw9cVIWe0NVfcC9I1VBeQ0U7tt6/iSeXkxTLSliebDlcCxCOBtEGgYjpZUCmMcgNRCoTxyBv8niGgp93vl8T7uPNiqdGIWxYHS7fjZdiJxcJy31T3D wRUY87xK 6cWmU9cBkNHqaMwnx3GJoIt8M2g+xK9Zp01IkpCvCPF/FwJDhGfC9VZDcmdz5oX2gEmp1xEYox9/zAYs9e3n8pwiHaCNJd3rlkaYnnkFAwPtMXGWfSzwsgAq+JzQaVHAnCSSQseIQ5ZeSka6aZs27l7lv0AUagJNkEhFuh4WS8qsUXR4pr5PA4DkfgOvwo8I+SRqTIkHAHdCDbabLXKuBr2oQFBJuPws90HDpKqFcOYnCyyJO8cCQ9CDCTQCjMkcbFgL0gVdu5CXKu8Ag2e6tN5tmLsUVIRf4gBCaq2l4umGiWcSAJVAAhiClae2BkMGI45IOWOt5kn+y/ucFt7uxHS/X8X+Dke4yPCJufMHzMD5CFGQMukhAMAg546FaKV3BB2bj2hLLR//mum0417loxkJSEwFRB+M/SNLtYSx7eisi3rv+HA0m/wv+EnKp3Whikc+++dfP+n3ULxUg64bH1WhaHw== 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: --B7otR/Eb6YTSxL7p Content-Type: text/plain; protected-headers=v1; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Date: Wed, 18 Oct 2023 01:07:35 +0200 From: Alejandro Colomar To: Axel Rasmussen Cc: Mike Rapoport , Peter Xu , linux-man@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 1/3] ioctl_userfaultfd.2: clarify the state of the uffdio_api structure on error On Tue, Oct 17, 2023 at 04:01:08PM -0700, Axel Rasmussen wrote: > The old FIXME noted that the zeroing was done to differentiate the two > EINVAL cases. It's possible something like this was true historically, > but in current Linux we zero it in *both* EINVAL cases, so this is at > least no longer true. >=20 > After reading the code, I can't determine any clear reason why we zero > it in some cases but not in others. So, some simple advice we can give > userspace is: if an error occurs, treat the contents of the structure as > unspecified. Just re-initialize it before retrying UFFDIO_API again. >=20 > Reviewed-by: Mike Rapoport (IBM) > Signed-off-by: Axel Rasmussen Hi Axel, Patch applied. Thanks, and thank you too Mike for the review. Cheers, Alex > --- > man2/ioctl_userfaultfd.2 | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) >=20 > diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 > index e68085262..82aee667c 100644 > --- a/man2/ioctl_userfaultfd.2 > +++ b/man2/ioctl_userfaultfd.2 > @@ -272,6 +272,14 @@ operation returns 0 on success. > On error, \-1 is returned and > .I errno > is set to indicate the error. > +If an error occurs, > +the kernel may zero the provided > +.I uffdio_api > +structure. > +The caller should treat its contents as unspecified, > +and reinitialize it before re-attempting another > +.B UFFDIO_API > +call. > Possible errors include: > .TP > .B EFAULT > @@ -305,14 +313,6 @@ feature was enabled, > but the calling process doesn't have the > .B CAP_SYS_PTRACE > capability. > -.\" FIXME In the above error case, the returned 'uffdio_api' structure is > -.\" zeroed out. Why is this done? This should be explained in the manual= page. > -.\" > -.\" Mike Rapoport: > -.\" In my understanding the uffdio_api > -.\" structure is zeroed to allow the caller > -.\" to distinguish the reasons for -EINVAL. > -.\" > .SS UFFDIO_REGISTER > (Since Linux 4.3.) > Register a memory address range with the userfaultfd object. > --=20 > 2.42.0.655.g421f12c284-goog >=20 --=20 --B7otR/Eb6YTSxL7p Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE6jqH8KTroDDkXfJAnowa+77/2zIFAmUvE7cACgkQnowa+77/ 2zIOhhAAjzb72Z6tKi3eHS6l+e35iLyzpvcPrNlSuUau0nB+QkBtcWHxa0Zkob4x rQ5LRqtu1D76dZT/v8jcYhgjaCmAPfKCuy31gZBm7ezxnGi3JLh5nGN6OaMtYMoV U7+XJPOcd1MezBHB+vIWRZ3KvpEpiBN7BiVAjogvUj6bXhchcOlTGTcI1Uc1XjQ2 JsB0a7N5VjI0tj1FAEtsmIY7tawA0AAzaZN/+CQQjOVarWFmG8w/1lOYMZLtY6o/ wtDMMwTTymKTUoJRlbGUS/HCQITcIu+xn+TbzZ4/hMR68Rtqvxb922fNavPpe16X 48h1MXKl38qfbEgX1HK/abwmBlTyA39FMLCCDlTYpZUBhEZl71ORdYoQFZdRXTKX UVSviOhjqd9Hj+u+fT60x1qO3cr/l+9l9GRn/Ow9NtGOWb/wtw+t4qiFaC0i9HQ/ dSv2Rtemyc4U6pL74Tvk/ZqW9qMJ3Zvr6sNtyxx8FX84dmEQkTNgOueUn85puOvB LNc4YYclgx0nrz50zz4rxyd24yjf/O4bI+hhmnmM7gFBd7GGkCEFvCM01B7ysOVU j+nu8XDcYUvfW69XgqYUqudjZNSBB1yNUjjiZMKOPEim2bWhccyrmLfgjOQVVpYW NVd5+wFUN1/oJbedwUb1zdMcrwtEoc3AJ/o03g59wse85LGbL7I= =A5RY -----END PGP SIGNATURE----- --B7otR/Eb6YTSxL7p--