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 <peterx@xxxxxxxxxx> > --- > 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.