diff options
Diffstat (limited to 'man2/ioctl_pagemap_scan.2')
-rw-r--r-- | man2/ioctl_pagemap_scan.2 | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/man2/ioctl_pagemap_scan.2 b/man2/ioctl_pagemap_scan.2 deleted file mode 100644 index fcd9bdc..0000000 --- a/man2/ioctl_pagemap_scan.2 +++ /dev/null @@ -1,206 +0,0 @@ -.\" This manpage is Copyright (C) 2023 Collabora; -.\" Written by Muhammad Usama Anjum <usama.anjum@collabora.com> -.\" -.\" SPDX-License-Identifier: Linux-man-pages-copyleft -.\" -.TH ioctl_pagemap_scan 2 2024-01-28 "Linux man-pages 6.7" -.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" , -.BR " struct page_region" ", and " PAGE_IS_* " constants */" -.B #include <sys/ioctl.h> -.P -.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. -The information is returned with -.B PAGE_SIZE -granularity. -.P -To start tracking the written state (flag) of a page or range of memory, -the -.B UFFD_FEATURE_WP_ASYNC -must be enabled by -.B UFFDIO_API -.BR ioctl (2) -on -.B userfaultfd -and memory range must be registered with -.B UFFDIO_REGISTER -.BR ioctl (2) -in -.B UFFDIO_REGISTER_MODE_WP -mode. -.SS Supported page flags -The following page table entry flags are supported: -.TP -.B PAGE_IS_WPALLOWED -The page has asynchronous write-protection enabled. -.TP -.B PAGE_IS_WRITTEN -The page has been written to from the time it was write protected. -.TP -.B PAGE_IS_FILE -The page is file backed. -.TP -.B PAGE_IS_PRESENT -The page is present in the memory. -.TP -.B PAGE_IS_SWAPPED -The page is swapped. -.TP -.B PAGE_IS_PFNZERO -The page has zero PFN. -.TP -.B PAGE_IS_HUGE -The 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 -.B PM_SCAN_WP_MATCHING -Write protect the matched pages. -.TP -.B PM_SCAN_CHECK_WPASYNC -Abort the scan -when a page is found -which doesn't have the Userfaultfd Asynchronous Write protection enabled. -.SS The \f[I]struct pm_scan_arg\f[] argument -.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 -.TP -.B size -This field should be set to the size of the structure in bytes, -as in -.IR sizeof(struct\~pm_scan_arg) . -.TP -.B flags -The operations to be performed are specified in it. -.TP -.B start -The starting address of the scan is specified in it. -.TP -.B end -The ending address of the scan is specified in it. -.TP -.B walk_end -The kernel returns the scan's ending address in it. -The -.I walk_end -equal to -.I end -means that scan has completed on the entire range. -.TP -.B vec -The address of -.I page_region -array for output. -.IP -.in +4n -.EX -struct page_region { - __u64 start; - __u64 end; - __u64 categories; -}; -.EE -.in -.TP -.B vec_len -The length of the -.I page_region -struct array. -.TP -.B max_pages -It is the optional limit for the number of output pages required. -.TP -.B category_inverted -.BI PAGE_IS_ * -categories which values match if 0 instead of 1. -.TP -.B category_mask -Skip pages for which any -.BI PAGE_IS_ * -category doesn't match. -.TP -.B category_anyof_mask -Skip pages for which no -.BI PAGE_IS_ * -category matches. -.TP -.B return_mask -.BI PAGE_IS_ * -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 -.IR flags , -invalid -.IR categories , -the -.I start -address isn't aligned with -.BR PAGE_SIZE , -or -.I vec_len -is specified when -.I vec -is NULL. -.TP -.B EFAULT -Invalid -.I arg -pointer, -invalid -.I vec -pointer, -or invalid address range specified by -.I start -and -.IR end . -.TP -.B ENOMEM -No memory is available. -.TP -.B EINTR -Fetal signal is pending. -.SH STANDARDS -Linux. -.SH HISTORY -Linux 6.7. -.SH SEE ALSO -.BR ioctl (2) |