* [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC @ 2023-10-17 15:01 Muhammad Usama Anjum 2023-10-17 15:01 ` [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL Muhammad Usama Anjum 2023-10-17 16:41 ` [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC Alejandro Colomar 0 siblings, 2 replies; 12+ messages in thread From: Muhammad Usama Anjum @ 2023-10-17 15:01 UTC (permalink / raw) To: alx; +Cc: Muhammad Usama Anjum, kernel, linux-man Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> --- man2/ioctl_userfaultfd.2 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 index e68085262..cdf90882a 100644 --- a/man2/ioctl_userfaultfd.2 +++ b/man2/ioctl_userfaultfd.2 @@ -244,6 +244,11 @@ If this feature bit is set, the kernel supports resolving faults with the .B UFFDIO_POISON ioctl. +.TP +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" +If this feature bit is set, +the write protection faults would be asynchronously resolved by the +kernel. .PP The returned .I ioctls -- 2.40.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL 2023-10-17 15:01 [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC Muhammad Usama Anjum @ 2023-10-17 15:01 ` Muhammad Usama Anjum 2023-10-17 17:12 ` Alejandro Colomar 2023-10-17 16:41 ` [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC Alejandro Colomar 1 sibling, 1 reply; 12+ messages in thread From: Muhammad Usama Anjum @ 2023-10-17 15:01 UTC (permalink / raw) To: alx; +Cc: Muhammad Usama Anjum, kernel, linux-man Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> --- man2/ioctl_pagemap_scan.2 | 183 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 man2/ioctl_pagemap_scan.2 diff --git a/man2/ioctl_pagemap_scan.2 b/man2/ioctl_pagemap_scan.2 new file mode 100644 index 000000000..4e096028d --- /dev/null +++ b/man2/ioctl_pagemap_scan.2 @@ -0,0 +1,183 @@ +.\" This manpage is Copyright (C) 2023 Collabora; +.\" Written by Muhammad Usama Anjum <usama.anjum@collabora.com> +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.\" Commit 84ceddb3c2b0c280936f28f450d65f46cb7411c6 +.\" +.TH ioctl_pagemap_scan 2 2023-10-17 "Linux man-pages (unreleased)" +.SH NAME +ioctl_pagemap_scan \- get and/or clear page flags +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.BR "#include <linux/fs.h>" " /* Definition of " struct " " pm_scan_arg ", " struct " " page_region " and " PAGE_IS_* " constants */" +.B #include <sys/ioctl.h> +.PP +.BI "int ioctl(int " pagemap_fd ", PAGEMAP_SCAN, struct pm_scan_arg *" arg ); +.fi +.SH DESCRIPTION +This +.BR ioctl (2) +is used to get and optionally clear some specific flags from page table entries. + +.SS Supported page flags +The following page table entry flags are support: +.TP +.BR PAGE_IS_WPALLOWED +Page has async-write-protection enabled +.TP +.BR PAGE_IS_WRITTEN +Page has been written to from the time it was write protected +.TP +.BR PAGE_IS_FILE +Page is file backed +.TP +.BR PAGE_IS_PRESENT +Page is present in the memory +.TP +.BR PAGE_IS_SWAPPED +Page is in swapped +.TP +.BR PAGE_IS_PFNZERO +Page has zero PFN +.TP +.BR PAGE_IS_HUGE +Page is THP or Hugetlb backed + +.SS Supported Operations +The get operation is always performed if the output buffer is specified. The other operations are as following: +.TP +.BR PM_SCAN_WP_MATCHING +Write protect the matched pages +.TP +.BR PM_SCAN_CHECK_WPASYNC +Abort the scan when a page which isn't registered with Userfaultfd Asynchronous Write protect + +.SS The struct pm_scan_arg Argument +.PP +.in +.EX +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask + __u64 return_mask; +}; +.EE +.in + +.TP +.BR size +The size of +.I arg +is specified in it. It'll help in future if extension is make to +.I struct pm_scan_arg +in future. +.TP +.BR flags +The operations to be performed are specified in it. +.TP +.BR start +The starting address of the scan is specified in it. +.TP +.BR end +The ending address of the scan is specified in it. +.TP +.BR walk_end +The kernel returns the scan's ending address in it. The +.IR walk_end +equal to +.IR end +means that scan has completed on the entire range. +.TP +.BR vec +The address of +.IR page_region +array for output +.PP +.in +8n +.EX +struct page_region { + __u64 start; + __u64 end; + __u64 categories; +}; +.EE +.in +.TP +.BR vec_len +The length of the +.IR page_region +struct array +.TP +.BR max_pages +Optional limit for number of output pages +.TP +.BR category_inverted +PAGE_IS_* categories which values match if 0 instead of 1 +.TP +.BR category_mask +Skip pages for which any category doesn't match +.TP +.BR category_anyof_mask +Skip pages for which no category matches +.TP +.BR return_mask +Page categories that are to be reported in +.IR page_region + +.SH RETURN VALUE +On error, \-1 is returned, and +.I errno +is set to indicate the error. +.SH ERRORS +Error codes can be one of, but are not limited to, the following: +.TP +.B EINVAL +Invalid arguments i.e., invalid +.I size +of the argument, invalid +.I flags +, invalid +.I categories +, the +.I start +address isn't aligned with +.BR PAGE_SIZE +or +.I vec_len +is specified when +.I vec +is +.BR NULL. +.TP +.B EFAULT +Invalid +.I arg +pointer, invalid +.I vec +pointer or invalid address range specified by +.I start +and +.I end +.TP +.B ENOMEM +No memory is available +.TP +.B EINTR +Fetal signal pending +.SH STANDARDS +Linux. +.SH SEE ALSO +.BR ioctl (2) -- 2.40.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL 2023-10-17 15:01 ` [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL Muhammad Usama Anjum @ 2023-10-17 17:12 ` Alejandro Colomar 2023-10-19 12:31 ` Muhammad Usama Anjum 0 siblings, 1 reply; 12+ messages in thread From: Alejandro Colomar @ 2023-10-17 17:12 UTC (permalink / raw) To: Muhammad Usama Anjum; +Cc: kernel, linux-man [-- Attachment #1: Type: text/plain, Size: 12824 bytes --] Hi Muhammad, On Tue, Oct 17, 2023 at 08:01:32PM +0500, Muhammad Usama Anjum wrote: > Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> Please link to the discussion where this feature is being discussed, in case someone needs to review it in the future. > --- > man2/ioctl_pagemap_scan.2 | 183 ++++++++++++++++++++++++++++++++++++++ > 1 file changed, 183 insertions(+) > create mode 100644 man2/ioctl_pagemap_scan.2 > > diff --git a/man2/ioctl_pagemap_scan.2 b/man2/ioctl_pagemap_scan.2 > new file mode 100644 > index 000000000..4e096028d > --- /dev/null > +++ b/man2/ioctl_pagemap_scan.2 > @@ -0,0 +1,183 @@ > +.\" This manpage is Copyright (C) 2023 Collabora; > +.\" Written by Muhammad Usama Anjum <usama.anjum@collabora.com> > +.\" > +.\" SPDX-License-Identifier: Linux-man-pages-copyleft > +.\" > +.\" Commit 84ceddb3c2b0c280936f28f450d65f46cb7411c6 > +.\" > +.TH ioctl_pagemap_scan 2 2023-10-17 "Linux man-pages (unreleased)" > +.SH NAME > +ioctl_pagemap_scan \- get and/or clear page flags > +.SH LIBRARY > +Standard C library > +.RI ( libc ", " \-lc ) > +.SH SYNOPSIS > +.nf > +.BR "#include <linux/fs.h>" " /* Definition of " struct " " pm_scan_arg ", " struct " " page_region " and " PAGE_IS_* " constants */" Please split the comment into several lines, so that the manual page can be read in an 80-column terminal without wrapping lines. > +.B #include <sys/ioctl.h> > +.PP > +.BI "int ioctl(int " pagemap_fd ", PAGEMAP_SCAN, struct pm_scan_arg *" arg ); > +.fi > +.SH DESCRIPTION > +This > +.BR ioctl (2) > +is used to get and optionally clear some specific flags from page table entries. > + Please use an empty roff(7) request instead of a empty input line. That is, use a line with just a '.', that is, s/^$/./ $ make lint build check --debug=print TROFF .tmp/man/man2/ioctl_pagemap_scan.2.cat.set ! (troff -wbreak -man -Tutf8 -rLL=78n -rCHECKSTYLE=3 -ww <.tmp/man/man2/ioctl_pagemap_scan.2.cat.troff 2>&1 >.tmp/man/man2/ioctl_pagemap_scan.2.cat.set \ | grep -v -f './share/lint/groff/man.ignore.grep' \ ||:; \ ) \ | grep ^ >&2 an.tmac:man2/ioctl_pagemap_scan.2:25: style: blank line in input ... > +.SS Supported page flags > +The following page table entry flags are support: s/support/supported/ > +.TP > +.BR PAGE_IS_WPALLOWED '.BR' is wrong here (it alternates bold and roman). It should be '.B', which is just bold. You can check groff_man(7) and groff_man_style(7). See these warnings: $ make lint build check --debug=print TROFF .tmp/man/man2/ioctl_pagemap_scan.2.cat.set ! (troff -wbreak -man -Tutf8 -rLL=78n -rCHECKSTYLE=3 -ww <.tmp/man/man2/ioctl_pagemap_scan.2.cat.troff 2>&1 >.tmp/man/man2/ioctl_pagemap_scan.2.cat.set \ | grep -v -f './share/lint/groff/man.ignore.grep' \ ||:; \ ) \ | grep ^ >&2 an.tmac:man2/ioctl_pagemap_scan.2:25: style: blank line in input an.tmac:man2/ioctl_pagemap_scan.2:29: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:32: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:35: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:38: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:41: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:44: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:47: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:49: style: blank line in input an.tmac:man2/ioctl_pagemap_scan.2:53: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:56: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:58: style: blank line in input an.tmac:man2/ioctl_pagemap_scan.2:79: style: blank line in input an.tmac:man2/ioctl_pagemap_scan.2:81: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:88: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:91: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:94: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:97: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:99: style: .IR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:101: style: .IR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:104: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:106: style: .IR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:119: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:121: style: .IR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:124: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:127: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:130: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:133: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:136: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:138: style: .IR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:139: style: blank line in input an.tmac:man2/ioctl_pagemap_scan.2:157: style: .BR expects at least 2 arguments, got 1 an.tmac:man2/ioctl_pagemap_scan.2:163: style: .BR expects at least 2 arguments, got 1 make: *** [share/mk/build/catman.mk:54: .tmp/man/man2/ioctl_pagemap_scan.2.cat.set] Error 1 make: *** Deleting file '.tmp/man/man2/ioctl_pagemap_scan.2.cat.set' > +Page has async-write-protection enabled Here and below: s/Page/The page/ > +.TP > +.BR PAGE_IS_WRITTEN > +Page has been written to from the time it was write protected > +.TP > +.BR PAGE_IS_FILE > +Page is file backed > +.TP > +.BR PAGE_IS_PRESENT > +Page is present in the memory > +.TP > +.BR PAGE_IS_SWAPPED > +Page is in swapped > +.TP > +.BR PAGE_IS_PFNZERO > +Page has zero PFN > +.TP > +.BR PAGE_IS_HUGE > +Page is THP or Hugetlb backed > + s/^$/./ > +.SS Supported Operations I think s/Operations/operations/ > +The get operation is always performed if the output buffer is specified. The other operations are as following: Please use semantic newlines. Input lines should never go past column 80, except for very good reasons. $ MANWIDTH=72 man man-pages | sed -n '/Use semantic newlines/,/^$/p' Use semantic newlines In the source of a manual page, new sentences should be started on new lines, long sentences should be split into lines at clause breaks (commas, semicolons, colons, and so on), and long clauses should be split at phrase boundaries. This convention, sometimes known as "semantic newlines", makes it easier to see the effect of patches, which often operate at the level of in‐ dividual sentences, clauses, or phrases. Also, see this warning: $ make lint build check --debug=print LINT (mandoc) .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch ! (mandoc -man -Tlint man2/ioctl_pagemap_scan.2 2>&1 \ | grep -v -f './share/lint/mandoc/man.ignore.grep' \ ||:; \ ) \ | grep ^ >&2 mandoc: man2/ioctl_pagemap_scan.2:51:111: STYLE: input text line longer than 80 bytes: The get operation is... mandoc: man2/ioctl_pagemap_scan.2:57:93: STYLE: input text line longer than 80 bytes: Abort the scan when ... mandoc: man2/ioctl_pagemap_scan.2:60:2: WARNING: skipping paragraph macro: PP after SS make: *** [share/mk/lint/man/man.mk:32: .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch] Error 1 > +.TP > +.BR PM_SCAN_WP_MATCHING > +Write protect the matched pages > +.TP > +.BR PM_SCAN_CHECK_WPASYNC > +Abort the scan when a page which isn't registered with Userfaultfd Asynchronous Write protect Semantic newlines. > + s/^$/./ > +.SS The struct pm_scan_arg Argument Types should go in italics. To do this inside SH or SS, do: .SS The \f[I]struct pm_scan_arg\f[] Argument. Also, why Argument and not argument? > +.PP This .PP is redundant. $ make lint build check --debug=print LINT (mandoc) .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch ! (mandoc -man -Tlint man2/ioctl_pagemap_scan.2 2>&1 \ | grep -v -f './share/lint/mandoc/man.ignore.grep' \ ||:; \ ) \ | grep ^ >&2 mandoc: man2/ioctl_pagemap_scan.2:51:111: STYLE: input text line longer than 80 bytes: The get operation is... mandoc: man2/ioctl_pagemap_scan.2:57:93: STYLE: input text line longer than 80 bytes: Abort the scan when ... mandoc: man2/ioctl_pagemap_scan.2:60:2: WARNING: skipping paragraph macro: PP after SS make: *** [share/mk/lint/man/man.mk:32: .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch] Error 1 > +.in > +.EX > +struct pm_scan_arg { > + __u64 size; > + __u64 flags; > + __u64 start; > + __u64 end; > + __u64 walk_end; > + __u64 vec; > + __u64 vec_len; > + __u64 max_pages > + __u64 category_inverted; > + __u64 category_mask; > + __u64 category_anyof_mask > + __u64 return_mask; > +}; > +.EE > +.in > + This blank line makes no sense. > +.TP > +.BR size > +The size of > +.I arg > +is specified in it. It'll help in future if extension is make to Semantic newlines. Also, I have a hard time understanding the second sentence. You may want to check the wording used in other pages for structures where the size is kind of a version marker. > +.I struct pm_scan_arg > +in future. > +.TP > +.BR flags > +The operations to be performed are specified in it. > +.TP > +.BR start > +The starting address of the scan is specified in it. > +.TP > +.BR end > +The ending address of the scan is specified in it. > +.TP > +.BR walk_end > +The kernel returns the scan's ending address in it. The Semantic newlines. > +.IR walk_end > +equal to > +.IR end > +means that scan has completed on the entire range. > +.TP > +.BR vec > +The address of > +.IR page_region > +array for output > +.PP > +.in +8n > +.EX > +struct page_region { > + __u64 start; > + __u64 end; > + __u64 categories; > +}; > +.EE > +.in > +.TP > +.BR vec_len > +The length of the > +.IR page_region Similarly, this should be I, not IR. > +struct array > +.TP > +.BR max_pages > +Optional limit for number of output pages > +.TP > +.BR category_inverted > +PAGE_IS_* categories which values match if 0 instead of 1 PAGE_IS_* should probably be in mixed bold/italics: .BI PAGE_IS_ * See groff_man_stlye(7): Use bold for ... ..., and for literals that are major topics of the subject under discussion; for example, this page uses bold for macro, string, and register names. In an .EX/.EE example of interactive I/O (such as a shell session), set only user input in bold. Use italics for ... ..., and anywhere a parameter requiring replacement by the user is encountered. ... > +.TP > +.BR category_mask > +Skip pages for which any category doesn't match > +.TP > +.BR category_anyof_mask > +Skip pages for which no category matches > +.TP > +.BR return_mask > +Page categories that are to be reported in > +.IR page_region > + s/^$/./ > +.SH RETURN VALUE > +On error, \-1 is returned, and > +.I errno > +is set to indicate the error. > +.SH ERRORS > +Error codes can be one of, but are not limited to, the following: > +.TP > +.B EINVAL > +Invalid arguments i.e., invalid > +.I size > +of the argument, invalid > +.I flags > +, invalid > +.I categories > +, the > +.I start > +address isn't aligned with > +.BR PAGE_SIZE > +or > +.I vec_len > +is specified when > +.I vec > +is > +.BR NULL. > +.TP > +.B EFAULT > +Invalid > +.I arg > +pointer, invalid > +.I vec > +pointer or invalid address range specified by > +.I start > +and > +.I end > +.TP > +.B ENOMEM > +No memory is available > +.TP > +.B EINTR > +Fetal signal pending > +.SH STANDARDS > +Linux. Please add a HISTORY section indicating at least the Linux version where it was (will be) introduced. Also, it would probably be useful to add an EXAMPLES section with a small example of use. Thanks, Alex > +.SH SEE ALSO > +.BR ioctl (2) > -- > 2.40.1 > -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL 2023-10-17 17:12 ` Alejandro Colomar @ 2023-10-19 12:31 ` Muhammad Usama Anjum 2023-10-19 12:51 ` Alejandro Colomar 0 siblings, 1 reply; 12+ messages in thread From: Muhammad Usama Anjum @ 2023-10-19 12:31 UTC (permalink / raw) To: Alejandro Colomar; +Cc: Muhammad Usama Anjum, kernel, linux-man Hi Alex, Thank you for taking time to review. I'll fix everything and run lint before sending next revision. On 10/17/23 10:12 PM, Alejandro Colomar wrote: > Hi Muhammad, > > On Tue, Oct 17, 2023 at 08:01:32PM +0500, Muhammad Usama Anjum wrote: >> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> > > Please link to the discussion where this feature is being discussed, in > case someone needs to review it in the future. > >> --- >> man2/ioctl_pagemap_scan.2 | 183 ++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 183 insertions(+) >> create mode 100644 man2/ioctl_pagemap_scan.2 >> >> diff --git a/man2/ioctl_pagemap_scan.2 b/man2/ioctl_pagemap_scan.2 >> new file mode 100644 >> index 000000000..4e096028d >> --- /dev/null >> +++ b/man2/ioctl_pagemap_scan.2 >> @@ -0,0 +1,183 @@ >> +.\" This manpage is Copyright (C) 2023 Collabora; >> +.\" Written by Muhammad Usama Anjum <usama.anjum@collabora.com> >> +.\" >> +.\" SPDX-License-Identifier: Linux-man-pages-copyleft >> +.\" >> +.\" Commit 84ceddb3c2b0c280936f28f450d65f46cb7411c6 >> +.\" >> +.TH ioctl_pagemap_scan 2 2023-10-17 "Linux man-pages (unreleased)" >> +.SH NAME >> +ioctl_pagemap_scan \- get and/or clear page flags >> +.SH LIBRARY >> +Standard C library >> +.RI ( libc ", " \-lc ) >> +.SH SYNOPSIS >> +.nf >> +.BR "#include <linux/fs.h>" " /* Definition of " struct " " pm_scan_arg ", " struct " " page_region " and " PAGE_IS_* " constants */" > > Please split the comment into several lines, so that the manual page can > be read in an 80-column terminal without wrapping lines. > >> +.B #include <sys/ioctl.h> >> +.PP >> +.BI "int ioctl(int " pagemap_fd ", PAGEMAP_SCAN, struct pm_scan_arg *" arg ); >> +.fi >> +.SH DESCRIPTION >> +This >> +.BR ioctl (2) >> +is used to get and optionally clear some specific flags from page table entries. >> + > > Please use an empty roff(7) request instead of a empty input line. That > is, use a line with just a '.', that is, s/^$/./ > > $ make lint build check --debug=print > TROFF .tmp/man/man2/ioctl_pagemap_scan.2.cat.set > ! (troff -wbreak -man -Tutf8 -rLL=78n -rCHECKSTYLE=3 -ww <.tmp/man/man2/ioctl_pagemap_scan.2.cat.troff 2>&1 >.tmp/man/man2/ioctl_pagemap_scan.2.cat.set \ > | grep -v -f './share/lint/groff/man.ignore.grep' \ > ||:; \ > ) \ > | grep ^ >&2 > an.tmac:man2/ioctl_pagemap_scan.2:25: style: blank line in input > ... > >> +.SS Supported page flags >> +The following page table entry flags are support: > > s/support/supported/ > >> +.TP >> +.BR PAGE_IS_WPALLOWED > > '.BR' is wrong here (it alternates bold and roman). It should be '.B', > which is just bold. You can check groff_man(7) and groff_man_style(7). > See these warnings: > > $ make lint build check --debug=print > TROFF .tmp/man/man2/ioctl_pagemap_scan.2.cat.set > ! (troff -wbreak -man -Tutf8 -rLL=78n -rCHECKSTYLE=3 -ww <.tmp/man/man2/ioctl_pagemap_scan.2.cat.troff 2>&1 >.tmp/man/man2/ioctl_pagemap_scan.2.cat.set \ > | grep -v -f './share/lint/groff/man.ignore.grep' \ > ||:; \ > ) \ > | grep ^ >&2 > an.tmac:man2/ioctl_pagemap_scan.2:25: style: blank line in input > an.tmac:man2/ioctl_pagemap_scan.2:29: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:32: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:35: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:38: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:41: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:44: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:47: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:49: style: blank line in input > an.tmac:man2/ioctl_pagemap_scan.2:53: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:56: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:58: style: blank line in input > an.tmac:man2/ioctl_pagemap_scan.2:79: style: blank line in input > an.tmac:man2/ioctl_pagemap_scan.2:81: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:88: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:91: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:94: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:97: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:99: style: .IR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:101: style: .IR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:104: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:106: style: .IR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:119: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:121: style: .IR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:124: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:127: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:130: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:133: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:136: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:138: style: .IR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:139: style: blank line in input > an.tmac:man2/ioctl_pagemap_scan.2:157: style: .BR expects at least 2 arguments, got 1 > an.tmac:man2/ioctl_pagemap_scan.2:163: style: .BR expects at least 2 arguments, got 1 > make: *** [share/mk/build/catman.mk:54: .tmp/man/man2/ioctl_pagemap_scan.2.cat.set] Error 1 > make: *** Deleting file '.tmp/man/man2/ioctl_pagemap_scan.2.cat.set' > >> +Page has async-write-protection enabled > > Here and below: > s/Page/The page/ > >> +.TP >> +.BR PAGE_IS_WRITTEN >> +Page has been written to from the time it was write protected >> +.TP >> +.BR PAGE_IS_FILE >> +Page is file backed >> +.TP >> +.BR PAGE_IS_PRESENT >> +Page is present in the memory >> +.TP >> +.BR PAGE_IS_SWAPPED >> +Page is in swapped >> +.TP >> +.BR PAGE_IS_PFNZERO >> +Page has zero PFN >> +.TP >> +.BR PAGE_IS_HUGE >> +Page is THP or Hugetlb backed >> + > > s/^$/./ > >> +.SS Supported Operations > > I think s/Operations/operations/ > >> +The get operation is always performed if the output buffer is specified. The other operations are as following: > > Please use semantic newlines. Input lines should never go past column > 80, except for very good reasons. > > $ MANWIDTH=72 man man-pages | sed -n '/Use semantic newlines/,/^$/p' > Use semantic newlines > In the source of a manual page, new sentences should be started > on new lines, long sentences should be split into lines at > clause breaks (commas, semicolons, colons, and so on), and long > clauses should be split at phrase boundaries. This convention, > sometimes known as "semantic newlines", makes it easier to see > the effect of patches, which often operate at the level of in‐ > dividual sentences, clauses, or phrases. > > Also, see this warning: > > $ make lint build check --debug=print > LINT (mandoc) .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch > ! (mandoc -man -Tlint man2/ioctl_pagemap_scan.2 2>&1 \ > | grep -v -f './share/lint/mandoc/man.ignore.grep' \ > ||:; \ > ) \ > | grep ^ >&2 > mandoc: man2/ioctl_pagemap_scan.2:51:111: STYLE: input text line longer than 80 bytes: The get operation is... > mandoc: man2/ioctl_pagemap_scan.2:57:93: STYLE: input text line longer than 80 bytes: Abort the scan when ... > mandoc: man2/ioctl_pagemap_scan.2:60:2: WARNING: skipping paragraph macro: PP after SS > make: *** [share/mk/lint/man/man.mk:32: .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch] Error 1 > >> +.TP >> +.BR PM_SCAN_WP_MATCHING >> +Write protect the matched pages >> +.TP >> +.BR PM_SCAN_CHECK_WPASYNC >> +Abort the scan when a page which isn't registered with Userfaultfd Asynchronous Write protect > > Semantic newlines. > >> + > > s/^$/./ > >> +.SS The struct pm_scan_arg Argument > > Types should go in italics. To do this inside SH or SS, do: > > .SS The \f[I]struct pm_scan_arg\f[] Argument. > > Also, why Argument and not argument? > >> +.PP > > This .PP is redundant. > > $ make lint build check --debug=print > LINT (mandoc) .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch > ! (mandoc -man -Tlint man2/ioctl_pagemap_scan.2 2>&1 \ > | grep -v -f './share/lint/mandoc/man.ignore.grep' \ > ||:; \ > ) \ > | grep ^ >&2 > mandoc: man2/ioctl_pagemap_scan.2:51:111: STYLE: input text line longer than 80 bytes: The get operation is... > mandoc: man2/ioctl_pagemap_scan.2:57:93: STYLE: input text line longer than 80 bytes: Abort the scan when ... > mandoc: man2/ioctl_pagemap_scan.2:60:2: WARNING: skipping paragraph macro: PP after SS > make: *** [share/mk/lint/man/man.mk:32: .tmp/man/man2/ioctl_pagemap_scan.2.lint-man.mandoc.touch] Error 1 > >> +.in >> +.EX >> +struct pm_scan_arg { >> + __u64 size; >> + __u64 flags; >> + __u64 start; >> + __u64 end; >> + __u64 walk_end; >> + __u64 vec; >> + __u64 vec_len; >> + __u64 max_pages >> + __u64 category_inverted; >> + __u64 category_mask; >> + __u64 category_anyof_mask >> + __u64 return_mask; >> +}; >> +.EE >> +.in >> + > > This blank line makes no sense. > >> +.TP >> +.BR size >> +The size of >> +.I arg >> +is specified in it. It'll help in future if extension is make to > > Semantic newlines. > > Also, I have a hard time understanding the second sentence. > You may want to check the wording used in other pages for structures > where the size is kind of a version marker. > >> +.I struct pm_scan_arg >> +in future. >> +.TP >> +.BR flags >> +The operations to be performed are specified in it. >> +.TP >> +.BR start >> +The starting address of the scan is specified in it. >> +.TP >> +.BR end >> +The ending address of the scan is specified in it. >> +.TP >> +.BR walk_end >> +The kernel returns the scan's ending address in it. The > > Semantic newlines. > >> +.IR walk_end >> +equal to >> +.IR end >> +means that scan has completed on the entire range. >> +.TP >> +.BR vec >> +The address of >> +.IR page_region >> +array for output >> +.PP >> +.in +8n >> +.EX >> +struct page_region { >> + __u64 start; >> + __u64 end; >> + __u64 categories; >> +}; >> +.EE >> +.in >> +.TP >> +.BR vec_len >> +The length of the >> +.IR page_region > > Similarly, this should be I, not IR. > >> +struct array >> +.TP >> +.BR max_pages >> +Optional limit for number of output pages >> +.TP >> +.BR category_inverted >> +PAGE_IS_* categories which values match if 0 instead of 1 > > PAGE_IS_* should probably be in mixed bold/italics: > > .BI PAGE_IS_ * > > See groff_man_stlye(7): > > Use bold for ... > ..., and for literals > that are major topics of the subject under discussion; > for example, this page uses bold for macro, string, and > register names. In an .EX/.EE example of interactive > I/O (such as a shell session), set only user input in > bold. > > Use italics for ... > ..., and anywhere a parameter requiring replacement > by the user is encountered. ... > > > >> +.TP >> +.BR category_mask >> +Skip pages for which any category doesn't match >> +.TP >> +.BR category_anyof_mask >> +Skip pages for which no category matches >> +.TP >> +.BR return_mask >> +Page categories that are to be reported in >> +.IR page_region >> + > > s/^$/./ > >> +.SH RETURN VALUE >> +On error, \-1 is returned, and >> +.I errno >> +is set to indicate the error. >> +.SH ERRORS >> +Error codes can be one of, but are not limited to, the following: >> +.TP >> +.B EINVAL >> +Invalid arguments i.e., invalid >> +.I size >> +of the argument, invalid >> +.I flags >> +, invalid >> +.I categories >> +, the >> +.I start >> +address isn't aligned with >> +.BR PAGE_SIZE >> +or >> +.I vec_len >> +is specified when >> +.I vec >> +is >> +.BR NULL. >> +.TP >> +.B EFAULT >> +Invalid >> +.I arg >> +pointer, invalid >> +.I vec >> +pointer or invalid address range specified by >> +.I start >> +and >> +.I end >> +.TP >> +.B ENOMEM >> +No memory is available >> +.TP >> +.B EINTR >> +Fetal signal pending >> +.SH STANDARDS >> +Linux. > > Please add a HISTORY section indicating at least the Linux version where > it was (will be) introduced. > > Also, it would probably be useful to add an EXAMPLES section with a > small example of use. > > Thanks, > Alex > >> +.SH SEE ALSO >> +.BR ioctl (2) >> -- >> 2.40.1 >> > -- BR, Muhammad Usama Anjum ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL 2023-10-19 12:31 ` Muhammad Usama Anjum @ 2023-10-19 12:51 ` Alejandro Colomar 0 siblings, 0 replies; 12+ messages in thread From: Alejandro Colomar @ 2023-10-19 12:51 UTC (permalink / raw) To: Muhammad Usama Anjum; +Cc: kernel, linux-man [-- Attachment #1: Type: text/plain, Size: 1155 bytes --] Hi Muhammad, On Thu, Oct 19, 2023 at 05:31:32PM +0500, Muhammad Usama Anjum wrote: > Hi Alex, > > Thank you for taking time to review. I'll fix everything and run lint > before sending next revision. Thanks. [...] > >> +.SH DESCRIPTION > >> +This > >> +.BR ioctl (2) > >> +is used to get and optionally clear some specific flags from page table entries. > >> + > > > > Please use an empty roff(7) request instead of a empty input line. That > > is, use a line with just a '.', that is, s/^$/./ Another thing you can use is a comment: .\" This is more commonly found in other pages in this repository. Cheers, Alex > > > > $ make lint build check --debug=print > > TROFF .tmp/man/man2/ioctl_pagemap_scan.2.cat.set > > ! (troff -wbreak -man -Tutf8 -rLL=78n -rCHECKSTYLE=3 -ww <.tmp/man/man2/ioctl_pagemap_scan.2.cat.troff 2>&1 >.tmp/man/man2/ioctl_pagemap_scan.2.cat.set \ > > | grep -v -f './share/lint/groff/man.ignore.grep' \ > > ||:; \ > > ) \ > > | grep ^ >&2 > > an.tmac:man2/ioctl_pagemap_scan.2:25: style: blank line in input > > ... -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC 2023-10-17 15:01 [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC Muhammad Usama Anjum 2023-10-17 15:01 ` [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL Muhammad Usama Anjum @ 2023-10-17 16:41 ` Alejandro Colomar 2023-10-19 7:26 ` Muhammad Usama Anjum 1 sibling, 1 reply; 12+ messages in thread From: Alejandro Colomar @ 2023-10-17 16:41 UTC (permalink / raw) To: Muhammad Usama Anjum; +Cc: kernel, linux-man [-- Attachment #1: Type: text/plain, Size: 1478 bytes --] Hi Muhammad, On Tue, Oct 17, 2023 at 08:01:31PM +0500, Muhammad Usama Anjum wrote: > Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> > --- > man2/ioctl_userfaultfd.2 | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 > index e68085262..cdf90882a 100644 > --- a/man2/ioctl_userfaultfd.2 > +++ b/man2/ioctl_userfaultfd.2 > @@ -244,6 +244,11 @@ If this feature bit is set, > the kernel supports resolving faults with the > .B UFFDIO_POISON > ioctl. > +.TP > +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" > +If this feature bit is set, > +the write protection faults would be asynchronously resolved by the Please use semantic newlines. See man-pages(7): $ MANWIDTH=72 man man-pages | sed -n '/Use semantic newlines/,/^$/p' Use semantic newlines In the source of a manual page, new sentences should be started on new lines, long sentences should be split into lines at clause breaks (commas, semicolons, colons, and so on), and long clauses should be split at phrase boundaries. This convention, sometimes known as "semantic newlines", makes it easier to see the effect of patches, which often operate at the level of in‐ dividual sentences, clauses, or phrases. Thanks, Alex > +kernel. > .PP > The returned > .I ioctls > -- > 2.40.1 > -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC 2023-10-17 16:41 ` [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC Alejandro Colomar @ 2023-10-19 7:26 ` Muhammad Usama Anjum 0 siblings, 0 replies; 12+ messages in thread From: Muhammad Usama Anjum @ 2023-10-19 7:26 UTC (permalink / raw) To: Alejandro Colomar; +Cc: Muhammad Usama Anjum, kernel, linux-man Hi Alex, Thank you so much for reviewing. On 10/17/23 9:41 PM, Alejandro Colomar wrote: > Hi Muhammad, > > On Tue, Oct 17, 2023 at 08:01:31PM +0500, Muhammad Usama Anjum wrote: >> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> >> --- >> man2/ioctl_userfaultfd.2 | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 >> index e68085262..cdf90882a 100644 >> --- a/man2/ioctl_userfaultfd.2 >> +++ b/man2/ioctl_userfaultfd.2 >> @@ -244,6 +244,11 @@ If this feature bit is set, >> the kernel supports resolving faults with the >> .B UFFDIO_POISON >> ioctl. >> +.TP >> +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" >> +If this feature bit is set, >> +the write protection faults would be asynchronously resolved by the > > Please use semantic newlines. See man-pages(7): Okay. I'll break this line before "by". > > $ MANWIDTH=72 man man-pages | sed -n '/Use semantic newlines/,/^$/p' > Use semantic newlines > In the source of a manual page, new sentences should be started > on new lines, long sentences should be split into lines at > clause breaks (commas, semicolons, colons, and so on), and long > clauses should be split at phrase boundaries. This convention, > sometimes known as "semantic newlines", makes it easier to see > the effect of patches, which often operate at the level of in‐ > dividual sentences, clauses, or phrases. > > Thanks, > Alex > >> +kernel. >> .PP >> The returned >> .I ioctls >> -- >> 2.40.1 >> > -- BR, Muhammad Usama Anjum ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC @ 2023-10-19 13:12 Muhammad Usama Anjum 2023-10-19 13:27 ` Alejandro Colomar 2023-10-19 13:29 ` Alejandro Colomar 0 siblings, 2 replies; 12+ messages in thread From: Muhammad Usama Anjum @ 2023-10-19 13:12 UTC (permalink / raw) To: Alejandro Colomar; +Cc: Muhammad Usama Anjum, kernel, linux-man Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> --- Changes since v1: - Employ sementic new lines by breaking sentence before "by" --- man2/ioctl_userfaultfd.2 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 index e68085262..f6cafd9a2 100644 --- a/man2/ioctl_userfaultfd.2 +++ b/man2/ioctl_userfaultfd.2 @@ -244,6 +244,11 @@ If this feature bit is set, the kernel supports resolving faults with the .B UFFDIO_POISON ioctl. +.TP +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" +If this feature bit is set, +the write protection faults would be asynchronously resolved +by the kernel. .PP The returned .I ioctls -- 2.42.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC 2023-10-19 13:12 Muhammad Usama Anjum @ 2023-10-19 13:27 ` Alejandro Colomar 2023-10-19 13:29 ` Alejandro Colomar 1 sibling, 0 replies; 12+ messages in thread From: Alejandro Colomar @ 2023-10-19 13:27 UTC (permalink / raw) To: Muhammad Usama Anjum; +Cc: kernel, linux-man [-- Attachment #1: Type: text/plain, Size: 955 bytes --] Hi Muhammad, On Thu, Oct 19, 2023 at 06:12:44PM +0500, Muhammad Usama Anjum wrote: > Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> Patch applied. Thanks, Alex > --- > Changes since v1: > - Employ sementic new lines by breaking sentence before "by" > --- > man2/ioctl_userfaultfd.2 | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 > index e68085262..f6cafd9a2 100644 > --- a/man2/ioctl_userfaultfd.2 > +++ b/man2/ioctl_userfaultfd.2 > @@ -244,6 +244,11 @@ If this feature bit is set, > the kernel supports resolving faults with the > .B UFFDIO_POISON > ioctl. > +.TP > +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" > +If this feature bit is set, > +the write protection faults would be asynchronously resolved > +by the kernel. > .PP > The returned > .I ioctls > -- > 2.42.0 > -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC 2023-10-19 13:12 Muhammad Usama Anjum 2023-10-19 13:27 ` Alejandro Colomar @ 2023-10-19 13:29 ` Alejandro Colomar 2023-10-19 13:34 ` Muhammad Usama Anjum 1 sibling, 1 reply; 12+ messages in thread From: Alejandro Colomar @ 2023-10-19 13:29 UTC (permalink / raw) To: Muhammad Usama Anjum; +Cc: kernel, linux-man [-- Attachment #1: Type: text/plain, Size: 954 bytes --] On Thu, Oct 19, 2023 at 06:12:44PM +0500, Muhammad Usama Anjum wrote: > Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> > --- > Changes since v1: > - Employ sementic new lines by breaking sentence before "by" > --- > man2/ioctl_userfaultfd.2 | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 > index e68085262..f6cafd9a2 100644 > --- a/man2/ioctl_userfaultfd.2 > +++ b/man2/ioctl_userfaultfd.2 > @@ -244,6 +244,11 @@ If this feature bit is set, > the kernel supports resolving faults with the > .B UFFDIO_POISON > ioctl. > +.TP > +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" Has this feature been merged? Thanks, Alex > +If this feature bit is set, > +the write protection faults would be asynchronously resolved > +by the kernel. > .PP > The returned > .I ioctls > -- > 2.42.0 > -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC 2023-10-19 13:29 ` Alejandro Colomar @ 2023-10-19 13:34 ` Muhammad Usama Anjum 2023-10-19 13:42 ` Alejandro Colomar 0 siblings, 1 reply; 12+ messages in thread From: Muhammad Usama Anjum @ 2023-10-19 13:34 UTC (permalink / raw) To: Alejandro Colomar; +Cc: Muhammad Usama Anjum, kernel, linux-man On 10/19/23 6:29 PM, Alejandro Colomar wrote: > On Thu, Oct 19, 2023 at 06:12:44PM +0500, Muhammad Usama Anjum wrote: >> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> >> --- >> Changes since v1: >> - Employ sementic new lines by breaking sentence before "by" >> --- >> man2/ioctl_userfaultfd.2 | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 >> index e68085262..f6cafd9a2 100644 >> --- a/man2/ioctl_userfaultfd.2 >> +++ b/man2/ioctl_userfaultfd.2 >> @@ -244,6 +244,11 @@ If this feature bit is set, >> the kernel supports resolving faults with the >> .B UFFDIO_POISON >> ioctl. >> +.TP >> +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" > > Has this feature been merged? Yes, This patch is in maintainer's tree (in mm-stable these day). https://lore.kernel.org/all/20231018213452.A78A8C433C8@smtp.kernel.org It should be released with next kernel release. I'm not sure if you can accept a patch which isn't in Linus's tree yet. But these patches are already in maintainer's tree and in linux-next from almost a month. > > Thanks, > Alex > >> +If this feature bit is set, >> +the write protection faults would be asynchronously resolved >> +by the kernel. >> .PP >> The returned >> .I ioctls >> -- >> 2.42.0 >> > -- BR, Muhammad Usama Anjum ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC 2023-10-19 13:34 ` Muhammad Usama Anjum @ 2023-10-19 13:42 ` Alejandro Colomar 0 siblings, 0 replies; 12+ messages in thread From: Alejandro Colomar @ 2023-10-19 13:42 UTC (permalink / raw) To: Muhammad Usama Anjum; +Cc: kernel, linux-man [-- Attachment #1: Type: text/plain, Size: 1839 bytes --] Hi Muhammad, On Thu, Oct 19, 2023 at 06:34:26PM +0500, Muhammad Usama Anjum wrote: > On 10/19/23 6:29 PM, Alejandro Colomar wrote: > > On Thu, Oct 19, 2023 at 06:12:44PM +0500, Muhammad Usama Anjum wrote: > >> Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com> > >> --- > >> Changes since v1: > >> - Employ sementic new lines by breaking sentence before "by" > >> --- > >> man2/ioctl_userfaultfd.2 | 5 +++++ > >> 1 file changed, 5 insertions(+) > >> > >> diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 > >> index e68085262..f6cafd9a2 100644 > >> --- a/man2/ioctl_userfaultfd.2 > >> +++ b/man2/ioctl_userfaultfd.2 > >> @@ -244,6 +244,11 @@ If this feature bit is set, > >> the kernel supports resolving faults with the > >> .B UFFDIO_POISON > >> ioctl. > >> +.TP > >> +.BR UFFD_FEATURE_WP_ASYNC " (since Linux 6.7)" > > > > Has this feature been merged? > Yes, This patch is in maintainer's tree (in mm-stable these day). > https://lore.kernel.org/all/20231018213452.A78A8C433C8@smtp.kernel.org > > It should be released with next kernel release. > > I'm not sure if you can accept a patch which isn't in Linus's tree yet. But > these patches are already in maintainer's tree and in linux-next from > almost a month. Yep, if it's in a maintainer tree, I prefer merging it already, unless you expect significant changes before Linus. If anything happens, we can fix it later. In linux-next, I'd prefer to wait. Cheers, Alex > > > > Thanks, > > Alex > > > >> +If this feature bit is set, > >> +the write protection faults would be asynchronously resolved > >> +by the kernel. > >> .PP > >> The returned > >> .I ioctls > >> -- > >> 2.42.0 > >> > > > > -- > BR, > Muhammad Usama Anjum -- <https://www.alejandro-colomar.es/> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2023-10-19 13:42 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-10-17 15:01 [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC Muhammad Usama Anjum 2023-10-17 15:01 ` [PATCH 2/2] ioctl_pagemap_scan: add page for pagemap_scan IOCTL Muhammad Usama Anjum 2023-10-17 17:12 ` Alejandro Colomar 2023-10-19 12:31 ` Muhammad Usama Anjum 2023-10-19 12:51 ` Alejandro Colomar 2023-10-17 16:41 ` [PATCH 1/2] ioctl_userfaultfd.2: add UFFD_FEATURE_WP_ASYNC Alejandro Colomar 2023-10-19 7:26 ` Muhammad Usama Anjum -- strict thread matches above, loose matches on Subject: below -- 2023-10-19 13:12 Muhammad Usama Anjum 2023-10-19 13:27 ` Alejandro Colomar 2023-10-19 13:29 ` Alejandro Colomar 2023-10-19 13:34 ` Muhammad Usama Anjum 2023-10-19 13:42 ` Alejandro Colomar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox