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 28611E95A97 for ; Mon, 9 Oct 2023 09:10:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id ACD2E8D0033; Mon, 9 Oct 2023 05:10:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A56D28D0031; Mon, 9 Oct 2023 05:10:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8F7558D0033; Mon, 9 Oct 2023 05:10:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 7F4378D0031 for ; Mon, 9 Oct 2023 05:10:52 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 583F7120196 for ; Mon, 9 Oct 2023 09:10:52 +0000 (UTC) X-FDA: 81325353144.14.D15121D Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf26.hostedemail.com (Postfix) with ESMTP id 0D1C1140015 for ; Mon, 9 Oct 2023 09:10:49 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=fz+BE5xu; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of rppt@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696842650; a=rsa-sha256; cv=none; b=HNVnBrVa2dtHCSAx/Op6rpnbIpktKuTrOm6vChwbdLbWH865IRRcFYVAE/QvzWEb4k9sKg h2yzPAutBbMDwIXK5Uo+IRMh0293rL80+Uy0bN5zrvdrA1FCy2lWIBh3Pu56Rt0kfdEZ/c Q0ow7PY4w6iE0l1ZU4hTFUWYfdgFyiQ= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=fz+BE5xu; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf26.hostedemail.com: domain of rppt@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696842650; 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=DUMBCI5WRGXCCis+CcAoaDiVpCJEfHwZVkh1mqOJwVU=; b=sJrhNrIbou+GW7HrKNj1Pu4+DC2qSR8bPaKR1m3d3J4vC5BoNAYyO14uZnZrXsmDG9Le09 i5svzyYqqNwi8isEnTaCYTS2IcSqH7tH0V4LT/PRT/od7Yae/rOjdKJpVPcZYnoyO6cR7u y073Xr8DhkpoyD7EsbSXYWDoi0fAeTg= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 2AE79CE1122; Mon, 9 Oct 2023 09:10:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41527C433C7; Mon, 9 Oct 2023 09:10:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1696842645; bh=f5CUYsknjVmhnuTqhXtkJxqt3bb4YSHlTfNzYrnpBuU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=fz+BE5xuLV3Yh0jSKKwKBi28SNwZP6ko5HrzaOLCMXAY3v0jAslsCOFIJyBQlOWa3 3+peKOxVHoeX+jBrhdicviDhC3uZ9e58+jIh5tCIfOXjup1W5xSe02ogt/NWiBvoB9 tVz/7Vc6CvgLRNXOevRFKX7Tlkqzps/0zBUYC/cpIPJdMHL79vvx8zhneWLsOcdBti /vT5vOdZKJndel926GduNNEBI0b4yt/VyEOv+oNBZDmdZZHRAe0lWV7MoMIkJUH71Y YJ5YUnvafWnMJpU8TCmbEQguN6pCHXUYQRb5LGiO9E80bB5pQ4pU5/Aa9QJ3uDq09b ygzDjga+86edw== Date: Mon, 9 Oct 2023 12:09:51 +0300 From: Mike Rapoport To: Axel Rasmussen Cc: Alejandro Colomar , Peter Xu , linux-man@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 10/10] ioctl_userfaultfd.2: document new UFFDIO_POISON ioctl Message-ID: <20231009090951.GM3303@kernel.org> References: <20230919190206.388896-1-axelrasmussen@google.com> <20230919190206.388896-11-axelrasmussen@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230919190206.388896-11-axelrasmussen@google.com> X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 0D1C1140015 X-Stat-Signature: h5yscendhiowgcbd1jo9wmrjhqqr8qc6 X-HE-Tag: 1696842649-342331 X-HE-Meta: U2FsdGVkX1+AXePr54Nkg1f3Diwa0pC4J/RVO3ED8OTpAb3USJE3oEq7qP1HSiFafePMT8bmwdQ/v3MTH4eqeMPSpQZ/43UKGfY+PldfjSq8/AE7c4RQfIFlRnUcjDJFp7VRM39u894mwpKdB2M02WASQk3xkiC+ii4p28YOUnTecGmjtxLXkJmp1we8UipU7JYLl84If1Zm/49cCQagJusB/baBDCBPJGWHEmf7fOJutz2nTYa6SzBr8VgbWOplR0X2RFLD7uhe75+8lRXP2uKarIdUUpTJJ+AvcR+jk1d55dTsXiCx14TG5eSzrmcgn7Itn9kMRidpJEtrIdCJBnTfYus+t2/0qTHBqFbQNDKQfC8x1QATrcCI8V74BrBpASH2Ypf0S9l/zAp4xPhCLoH+FmSDOtVqLg1bdZ0+N8rwX2tkMfIByovOZh8wIgH9hbEA6kbBRU0QnjayicBLWUV+TcWH4E6qm6w7O2DIyuSMbbHUcaaBRkAYifhseWjrCjRMlYwogaXsxQgX0C4t4Ra2a7ikd7J2KzVQpaYg2v7WWWmagr2g8qye5JDhYfxK3w9bogkFR9GbSp4riWQvMzZMGvl/qCqSPJDQCSdUZOwMqKdifq53saLAt86T2wC+h0fh06TX0LSVzTCh19cYDKMwMRtJ2MT6U7EeasPhFKoM+38WqnP+1Da4Q9zl71u2+JaYciZ8EDjtW4mWOtq0ss7/TzwplMeqNk9W1cB/kiBdCYos0icEoi6DyooLf7Zr2FgDLfaQyGyvQvD24ffZ00Cym+ySGVXV40xKWYabDVmrMWzSFSver0OVOf6plCthsFc4z7uFGIrzrxj0YdixtcQ0ERul47vRsSzHRBALIMeG8eLHbH0AgK6X8a/3xWKC7umP8iBNEEge8gOdajA9u8VhFZ/+my+AoHCbUs2JmP8M8QF9cYKjjw1ZEHpa5dCslRKjwaL24Az5E0N1BTr hLr1KJb+ P2GySFVQ0A0j8+jBxBD20xwyK+qiPXs3A7hw8L3SkMoKKv/u7NW7wrtBW51Vtr64N5dXSTuDOnsTpRKTnkQs5wINvzazgusUP7wWcCDFlHV3Pgghb+4NZaLnleXJ1WJrM4p6DXnwATzRdXYdXHcP9HoGrUTsYsrQZ1uEUDEw/FIbYgyboIPWPdC5K4WN8AgNPrfB2r/dKxbKXJYBGRav6/XCGLdT0L3zks3gHU1D0aAo0/5BXwpS99pmdlNJULsCJEZYVkF9PElAkcmPFisTcce+3saLds9v1GOSCeHVhxZAmwLZ6P/IlfIZc8U/2QqxeHJ0i 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: On Tue, Sep 19, 2023 at 12:02:06PM -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. > > Also note the corresponding new ioctl flag we can return in reponse to a > UFFDIO_REGISTER call. > > Signed-off-by: Axel Rasmussen With a small correction Reviewed-by: Mike Rapoport (IBM) > --- > man2/ioctl_userfaultfd.2 | 112 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 112 insertions(+) > > diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 > index afe3caffc..1282f63e1 100644 > --- a/man2/ioctl_userfaultfd.2 > +++ b/man2/ioctl_userfaultfd.2 > @@ -405,6 +405,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) > @@ -916,6 +921,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 Did you mean uffdio_poison? > +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 > +One or more pages were already mapped in the given range. > +.TP > +.B ENOENT > +The faulting process has changed its virtual memory layout simultaneously 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 > -- > 2.42.0.459.ge4e396fd5e-goog > > -- Sincerely yours, Mike.