lkml.org 
[lkml]   [2014]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/4] Documentation: update Documentation/vm/pagemap.txt
    Date
    This patch adds a chapter about kpagecache interface.

    ChangeLog:
    - add len column in example output

    Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    ---
    Documentation/vm/pagemap.txt | 29 +++++++++++++++++++++++++++++
    1 file changed, 29 insertions(+)

    diff --git v3.15-rc5.orig/Documentation/vm/pagemap.txt v3.15-rc5/Documentation/vm/pagemap.txt
    index 5948e455c4d2..12a871efd372 100644
    --- v3.15-rc5.orig/Documentation/vm/pagemap.txt
    +++ v3.15-rc5/Documentation/vm/pagemap.txt
    @@ -150,3 +150,32 @@ once.
    Reading from any of the files will return -EINVAL if you are not starting
    the read on an 8-byte boundary (e.g., if you sought an odd number of bytes
    into the file), or if the size of the read is not a multiple of 8 bytes.
    +
    +
    +kpagecache, from file perspective
    +---------------------------------
    +
    +Similarly to pagemap, we have a interface /proc/kpagecache to let userspace
    +know about pagecache profile for a given file. Unlike pagemap interface,
    +we don't have to mmap() and fault in the target file, so the impact on other
    +workloads (maybe the target of your analysis) is minimum.
    +
    +To use this interface, firstly we open it and write the name of the target
    +file to it for setup. And then we can read the pagecache info of the file.
    +The file contains the array of 64-bit entries for each page offset. Data
    +format is like below:
    +
    + * Bits 0-49 page frame number (PFN) if present
    + * Bits 50-59 zero (reserved)
    + * Bits 60-63 pagecache tags
    +
    +Good example is tools/vm/page-types.c, where we can get the list of pages
    +belonging to the file like below:
    +
    + $ dd if=/dev/urandom of=file bs=4096 count=2
    + $ date >> file
    + $ tools/vm/page-types -f file -Nl
    + voffset offset len tag flags
    + 0 640c7 1 0 __RU_l______________________________
    + 1 640d7 1 0 __RU_l______________________________
    + 2 640f4 1 1 ___UDlA_____________________________
    --
    1.9.0


    \
     
     \ /
      Last update: 2014-05-21 05:01    [W:4.952 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site