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 190ADE95A67 for ; Sun, 8 Oct 2023 22:23:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 879D36B01A0; Sun, 8 Oct 2023 18:23:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 829D46B01A1; Sun, 8 Oct 2023 18:23:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7189A6B01A2; Sun, 8 Oct 2023 18:23:31 -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 625D86B01A0 for ; Sun, 8 Oct 2023 18:23:31 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3493B1CA1E5 for ; Sun, 8 Oct 2023 22:23:31 +0000 (UTC) X-FDA: 81323721822.07.190318A Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf24.hostedemail.com (Postfix) with ESMTP id D8C29180016 for ; Sun, 8 Oct 2023 22:23:28 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=glxiyO+h; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of alx@kernel.org designates 145.40.73.55 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=1696803809; 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=3KN5HElQLtzDobTR0EDt2vyhfT3w4p+szfX7RRQZ9as=; b=Ag3Jgw4fa4f4Ro2Vc5bLwL0JI2YVPYSjbKdra9i/WEsMefjIQXA1fsFHA7pzgSXFNiXcNJ WdklSeAs29VdWloJjA6kVOuEkgJMlv9o33u1nb+KOT/1vLWq/Owbnm4qKvMeNB//NywkPa wY5htuelbfidp/ErTYhyvd3yvEzwGFU= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=glxiyO+h; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of alx@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=alx@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696803809; a=rsa-sha256; cv=none; b=d2afs0ZWWScOnkSkTl2NLBr/UshOII2uYPFhOUAT0dvOO/gIz9shClnkR0C8CJWXpECdI+ h9Up6SP/YqCPUN26rkS2ewrH2gL4rjsWfWf5VIIHXs+xk3VgHNZtjel2hQ12ltvvXunmfh d6ZOPpXU8GOaRLaVI2j68uLO+bze4h0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 10431CE0B64; Sun, 8 Oct 2023 22:23:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 27648C433C8; Sun, 8 Oct 2023 22:23:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1696803804; bh=rkgdAawlIj34svqn91frk1NZL12cc28ZYOTA1wfaCcA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=glxiyO+hsm8tbiC1OrW0oAB8T0EvLvgfJv2ICJ3rEYrxuLUZdEHB360xVPeYdjhYm XpNu7CqSkAbCbVeTjStYSCXNY1YAF5NEoWrp1fGv48XeFQkaafQwK+B6YV7j0f7syY 0lOL8WTzSEQQzZybDiWJOrs8Ed/ixvOvGNTdmorsBGErue+TeB1h1V/JR96bbt1kRU VQMxMSOGOksucDrQUfCwbHp4QXLoUj3LDJj0IvX/bMPK8tw/pRe4iCeCEuQn96/HBR oQGjQblKD0Uy/R9gUqGQZbJUQLc6zWZBps2yaLCIircawk5s+8E9NR0i499zLYn+jj JDL6y3HnqOvLQ== Date: Mon, 9 Oct 2023 00:23:20 +0200 From: Alejandro Colomar To: Axel Rasmussen Cc: Peter Xu , linux-man@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 5/5] ioctl_userfaultfd.2: document new UFFDIO_POISON ioctl Message-ID: References: <20231003194547.2237424-1-axelrasmussen@google.com> <20231003194547.2237424-6-axelrasmussen@google.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="1Kfpe6wlbD0Pas4S" Content-Disposition: inline In-Reply-To: <20231003194547.2237424-6-axelrasmussen@google.com> X-Rspamd-Queue-Id: D8C29180016 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: fwbzf44bjkzhuhfsm1u468fm9fp6sf4c X-HE-Tag: 1696803808-488160 X-HE-Meta: U2FsdGVkX1+5XpTI7XBCKR8EMS5UGBxJYIBu/8MZhJnke2Nauw25JLeLKcQ6oxVzwENcNaE23Tf8JFuWiHgXPmB6JpRA/Z60q02j7Blmgwm50nPnYh+IKYDaEpfj4068+nttBZupH1OIDOKzJp7dt9faSnblVvq09aZp9+XoDJj592l6bn33x9qVsZxphblfJKVroAskd21J3k5fkvs+kEZhKD1YV2YcT2VT8u1/STPmL/wLCHHgWVJwsxEG3aTCRYoV7sNjOVzEQ5k66cs2R9Y+NFz+O9RS3TgnrfTQBV4q0a+g//kKFFWHfo2DvqVCiBdsTiNQvIDTo2oOOcB0vHk4/x45ihAPKytn9RlPaLROYfu6Ghwiz0l264Fp3gY+LjAvmOHM8yO7gHY/9rx6iS//krCfqV9dO56qccFe7E3Pwp9L9rfFUBP2ownzXyVi11z9ycwsU2v+sZ61FzpciisOpg2LHZSRE+4Dwor5w3b6B5NSWNQzOUW8EbzgpnL5eSefLCv8FgHHLFNfbk50KRz6GpWwNemFTcnyc7HRLJeUSQ0wmFzIMU2PBLayR2tfDcNTywWRELYBC9PRpPcrYK70CxVTzf1w6QIP1/W7npPK2M1jRaebPS0YAWJb99Rt8HdiEXWo8on7c9qTCOy2j5w6I9jM6Iy6MgP76o0Tqx+2OcuonoLGGBsT1uhoaryBwJlviq7RC1PVyo+ylOQZ+C51ycge8U+K8W2tA+vWoieYqNmCLVaMGU7l+fgNERc32RplFEC26+SDXn/ImXn4paReDeG1O5d0rT8ucRoQwW/hgoz490rYd5irhu2+IG6r+es9dcxAQINbXonQ+nxOCSogg5sM4+z13bDTlpYrEY2wqoynRyxUzB0PWqdtJ/s00mPbbfSRsu+6wQzfe9SjdYPxf7kT4BctCARr9yiesBEoY/pnJWtRfDmkoRto+jXSHl4kx5Vd71GtdBN3R0c DpTFX6Cm D5oCZ602hfT/lUTl2wx+RY4B8cfQs1I0KEuPs/ivpMoBFoStzMvkPTO9lFOC7BfbGOq0NXVuZaHudnKicymrPCPOXin7CHcr9JaBouejtX3dOojsNcIzAhyYVDtkQe4N7mlsyqU1jEYeqHCP1pzM22IsiMYQ2znSA3NnisUsOZoJa8Ml351P1ZkYoL5hbtQbk5xkZZLXX/Ac4U0Gi0BOjWjmRZkBQeA4lG8OZjAUoNlq08Jmqf34SBGmisoyW3//HExaWgutOzcW9H50A5NpbQfnFMepticCj5mDcfsl0KnZLcS3LMYkogC+ye7H7qLfQrVRAIQ29YUqDFMvNIV9wrjHuF3sL96emKVYfy6t9+J4hhr9NNCpD2g1oR+qPCHJqhudv8cvXTn7CHDk2KC9cgP7RCsA2WRIEiB57amatYNePYKk= 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: --1Kfpe6wlbD0Pas4S Content-Type: text/plain; protected-headers=v1; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Date: Mon, 9 Oct 2023 00:23:20 +0200 From: Alejandro Colomar To: Axel Rasmussen Cc: Peter Xu , linux-man@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 5/5] ioctl_userfaultfd.2: document new UFFDIO_POISON ioctl Hi Axel, On Tue, Oct 03, 2023 at 12:45:47PM -0700, Axel Rasmussen wrote: > This is a new feature recently added to the kernel. So, document the new > ioctl the same way we do other UFFDIO_* ioctls. >=20 > Also note the corresponding new ioctl flag we can return in reponse to a > UFFDIO_REGISTER call. >=20 > Signed-off-by: Axel Rasmussen > --- > man2/ioctl_userfaultfd.2 | 112 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 112 insertions(+) >=20 > diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 > index 95d69f773..6b6980d4a 100644 > --- a/man2/ioctl_userfaultfd.2 > +++ b/man2/ioctl_userfaultfd.2 > @@ -380,6 +380,11 @@ operation is supported. > The > .B UFFDIO_CONTINUE > operation is supported. > +.TP > +.B 1 << _UFFDIO_POISON > +The > +.B UFFDIO_POISON > +operation is supported. > .PP > This > .BR ioctl (2) > @@ -890,6 +895,113 @@ The faulting process has exited at the time of a > .B UFFDIO_CONTINUE > operation. > .\" > +.SS UFFDIO_POISON > +(Since Linux 6.6.) > +Mark an address range as "poisoned". > +Future accesses to these addresses will raise a > +.B SIGBUS > +signal. > +Unlike > +.B MADV_HWPOISON > +this works by installing page table entries, > +rather than "really" poisoning the underlying physical pages. > +This means it only affects this particular address space. > +.PP > +The > +.I argp > +argument is a pointer to a > +.I uffdio_continue > +structure as shown below: > +.PP > +.in +4n > +.EX > +struct uffdio_poison { > + struct uffdio_range range; > + /* Range to install poison PTE markers in */ > + __u64 mode; /* Flags controlling the behavior of poison */ > + __s64 updated; /* Number of bytes poisoned, or negated error */ > +}; > +.EE > +.in > +.PP > +The following value may be bitwise ORed in > +.I mode > +to change the behavior of the > +.B UFFDIO_POISON > +operation: > +.TP > +.B UFFDIO_POISON_MODE_DONTWAKE > +Do not wake up the thread that waits for page-fault resolution. > +.PP > +The > +.I updated > +field is used by the kernel > +to return the number of bytes that were actually poisoned, > +or an error in the same manner as > +.BR UFFDIO_COPY . > +If the value returned in the > +.I updated > +field doesn't match the value that was specified in > +.IR range.len , > +the operation fails with the error > +.BR EAGAIN . > +The > +.I updated > +field is output-only; > +it is not read by the > +.B UFFDIO_POISON > +operation. > +.PP > +This > +.BR ioctl (2) > +operation returns 0 on success. > +In this case, > +the entire area was poisoned. > +On error, \-1 is returned and > +.I errno > +is set to indicate the error. > +Possible errors include: > +.TP > +.B EAGAIN > +The number of bytes mapped > +(i.e., the value returned in the > +.I updated > +field) > +does not equal the value that was specified in the > +.I range.len > +field. > +.TP > +.B EINVAL > +Either > +.I range.start > +or > +.I range.len > +was not a multiple of the system page size; or > +.I range.len > +was zero; or the range specified was invalid. > +.TP > +.B EINVAL > +An invalid bit was specified in the > +.I mode > +field. > +.TP > +.B EEXIST Any reasons for this order, or should we use alphabetic order? Thanks, Alex > +One or more pages were already mapped in the given range. > +.TP > +.B ENOENT > +The faulting process has changed its virtual memory layout simultaneousl= y with > +an outstanding > +.B UFFDIO_POISON > +operation. > +.TP > +.B ENOMEM > +Allocating memory for page table entries failed. > +.TP > +.B ESRCH > +The faulting process has exited at the time of a > +.B UFFDIO_POISON > +operation. > +.\" > .SH RETURN VALUE > See descriptions of the individual operations, above. > .SH ERRORS > --=20 > 2.42.0.609.gbb76f46606-goog >=20 --=20 --1Kfpe6wlbD0Pas4S Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEE6jqH8KTroDDkXfJAnowa+77/2zIFAmUjK9gACgkQnowa+77/ 2zLzhhAAiXf9jyMvFOnEEfGZOVXVvSOtaicOOLxPFLJE8QhanJrGTwQRTrB/qeKE TWwYkm234QaEwZxg4CgYf7P8eIRZc8PbcxMXvQX1fnym4myW9TMBIpiZmn8DpFDZ Mxfy/pKkoz5tAlL2/QsDSTs8RDq5P3qhSen+D772xbV5VwE+Vt9Ggqk/I0V7lV57 2KmE17L0l0WY/KLiUuqf3c3mGQjKsLfz0GDxBHVAx5/OXqQhv5FtJN935E8UeNpR yyUyo0KBhyc6xAliOyPTRyukIuRhSqhilEESYZrtpWlVrisBLXKsF6JfLE8nwYVK 0u7TLCA3/vfCQF69ejtXIg/GE4IS/S3dr8KaDyXFiOWcR9p2xRu40UNEqBMsrCB3 5VvHbz4Ekc2stpABJ7VFhMcWl7mRhNopioqXfks2X6dUTfEvGfe6v/fzayjUjNHk WuZMZWSfpqKRXh6yBdp2KTAmByZwPszrmZBEDWzM2rKuoL39ssshInKmnRgNfUyO sWYMf7mvVTXw3Rgo/wPTTntsL4BzSKp3ErIf4g/+/SKCfOkjKg2Z6FIcAIIxar9P 7p1nBdhgNPWrBgCFEmfjkAR8eMpB068ORneFLpY+eAHGur4hQ9fdraK1nlgDEIr/ XKDX76jy1RSJ0JE1MSXJZGMJ5AzU+Vin23kCzzOdDfX87537ARY= =zIMJ -----END PGP SIGNATURE----- --1Kfpe6wlbD0Pas4S--