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..0cd426a8a 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