2021-03-22 22:10:28

by Peter Xu

[permalink] [raw]
Subject: [PATCH v4 1/4] userfaultfd.2: Add UFFD_FEATURE_THREAD_ID docs

UFFD_FEATURE_THREAD_ID is supported since Linux 4.14.

Signed-off-by: Peter Xu <[email protected]>
---
man2/userfaultfd.2 | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/man2/userfaultfd.2 b/man2/userfaultfd.2
index e7dc9f813..555e37409 100644
--- a/man2/userfaultfd.2
+++ b/man2/userfaultfd.2
@@ -77,6 +77,13 @@ When the last file descriptor referring to a userfaultfd object is closed,
all memory ranges that were registered with the object are unregistered
and unread events are flushed.
.\"
+.PP
+Since Linux 4.14, userfaultfd page fault message can selectively embed faulting
+thread ID information into the fault message.
+One needs to enable this feature explicitly using the
+.BR UFFD_FEATURE_THREAD_ID
+feature bit when initializing the userfaultfd context.
+By default, thread ID reporting is diabled.
.SS Usage
The userfaultfd mechanism is designed to allow a thread in a multithreaded
program to perform user-space paging for the other threads in the process.
@@ -229,6 +236,9 @@ struct uffd_msg {
struct {
__u64 flags; /* Flags describing fault */
__u64 address; /* Faulting address */
+ union {
+ __u32 ptid; /* Thread ID of the fault */
+ } feat;
} pagefault;

struct { /* Since Linux 4.11 */
@@ -358,6 +368,9 @@ otherwise it is a read fault.
.\" UFFD_PAGEFAULT_FLAG_WP is not yet supported.
.RE
.TP
+.I pagefault.feat.pid
+The thread ID that triggered the page fault.
+.TP
.I fork.ufd
The file descriptor associated with the userfault object
created for the child created by
--
2.26.2


2021-03-23 08:29:50

by Mike Rapoport

[permalink] [raw]
Subject: Re: [PATCH v4 1/4] userfaultfd.2: Add UFFD_FEATURE_THREAD_ID docs

On Mon, Mar 22, 2021 at 06:08:45PM -0400, Peter Xu wrote:
> UFFD_FEATURE_THREAD_ID is supported since Linux 4.14.
>
> Signed-off-by: Peter Xu <[email protected]>
> ---
> man2/userfaultfd.2 | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/man2/userfaultfd.2 b/man2/userfaultfd.2
> index e7dc9f813..555e37409 100644
> --- a/man2/userfaultfd.2
> +++ b/man2/userfaultfd.2
> @@ -77,6 +77,13 @@ When the last file descriptor referring to a userfaultfd object is closed,
> all memory ranges that were registered with the object are unregistered
> and unread events are flushed.
> .\"
> +.PP
> +Since Linux 4.14, userfaultfd page fault message can selectively embed faulting
> +thread ID information into the fault message.
> +One needs to enable this feature explicitly using the
> +.BR UFFD_FEATURE_THREAD_ID
> +feature bit when initializing the userfaultfd context.
> +By default, thread ID reporting is diabled.

^ disabled :)
> .SS Usage
> The userfaultfd mechanism is designed to allow a thread in a multithreaded
> program to perform user-space paging for the other threads in the process.
> @@ -229,6 +236,9 @@ struct uffd_msg {
> struct {
> __u64 flags; /* Flags describing fault */
> __u64 address; /* Faulting address */
> + union {
> + __u32 ptid; /* Thread ID of the fault */
> + } feat;
> } pagefault;
>
> struct { /* Since Linux 4.11 */
> @@ -358,6 +368,9 @@ otherwise it is a read fault.
> .\" UFFD_PAGEFAULT_FLAG_WP is not yet supported.
> .RE
> .TP
> +.I pagefault.feat.pid
> +The thread ID that triggered the page fault.
> +.TP
> .I fork.ufd
> The file descriptor associated with the userfault object
> created for the child created by
> --
> 2.26.2
>

--
Sincerely yours,
Mike.

2021-03-24 03:25:04

by Peter Xu

[permalink] [raw]
Subject: Re: [PATCH v4 1/4] userfaultfd.2: Add UFFD_FEATURE_THREAD_ID docs

On Tue, Mar 23, 2021 at 10:27:34AM +0200, Mike Rapoport wrote:
> On Mon, Mar 22, 2021 at 06:08:45PM -0400, Peter Xu wrote:
> > UFFD_FEATURE_THREAD_ID is supported since Linux 4.14.
> >
> > Signed-off-by: Peter Xu <[email protected]>
> > ---
> > man2/userfaultfd.2 | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/man2/userfaultfd.2 b/man2/userfaultfd.2
> > index e7dc9f813..555e37409 100644
> > --- a/man2/userfaultfd.2
> > +++ b/man2/userfaultfd.2
> > @@ -77,6 +77,13 @@ When the last file descriptor referring to a userfaultfd object is closed,
> > all memory ranges that were registered with the object are unregistered
> > and unread events are flushed.
> > .\"
> > +.PP
> > +Since Linux 4.14, userfaultfd page fault message can selectively embed faulting
> > +thread ID information into the fault message.
> > +One needs to enable this feature explicitly using the
> > +.BR UFFD_FEATURE_THREAD_ID
> > +feature bit when initializing the userfaultfd context.
> > +By default, thread ID reporting is diabled.
>
> ^ disabled :)

Right! :)

I'll wait for another round of Alex's review before reposting.

Thanks,

--
Peter Xu