Dave, This patch add -M and -m option for file commands, which allow to dump page cache for a file. Please review and let me know your comments. Thanks! Here is the usage, 1. Dump a process page cache number, default is crash, also work with given pid, crash> files -M PID: 22710 TASK: ffff8801077153e0 CPU: 1 COMMAND: "crash" ROOT: / CWD: /auto/home2/yango/workspace/crash FD ADDR-SPACE PGCACHE-PGS INODE TYPE PATH 0 ffff8801031edbe8 0 ffff8801031edaa0 CHR /2 1 ffff8801031edbe8 0 ffff8801031edaa0 CHR /2 2 ffff8801031edbe8 0 ffff8801031edaa0 CHR /2 3 ffff880139bf8950 0 ffff880139bf8808 CHR /null 4 ffff88011e561390 0 ffff88011e561248 CHR /crash 5 ffff88012f8345f0 37910 ffff88012f8344a8 REG /usr/lib/debug/lib/modules/3.11.10-301.fc20.x86_64/vmlinux [snipped..........................] 2. Dump pages in a given addr-space, this exmaple is ffff88012f8345f0 from above output. page flags could indicates the dirty pages for fsync stress debugging, crash> files -m ffff88012f8345f0 Address Space ffff88012f8345f0 : 37910 pages in page cache PAGE PHYSICAL MAPPING INDEX CNT FLAGS ffffea0001f5bc40 7d6f1000 ffff88012f8345f0 0 2 3ff0000000086c referenced,uptodate,lru,active,private ffffea0001f5bc80 7d6f2000 ffff88012f8345f0 1 2 3ff0000000082c referenced,uptodate,lru,private ..............................[snipped...]......................................................................... ffffea00016226c0 5889b000 ffff88012f8345f0 9414 2 3ff0000000086c referenced,uptodate,lru,active,private ffffea000224f480 893d2000 ffff88012f8345f0 9415 2 3ff0000000086c referenced,uptodate,lru,active,private 3. For each files doesn't work with -m but it work with -M crash> foreach files -m foreach: foreach files command does not support -m option So we can use foreach to find which process or files have most page cache number, crash> foreach files -M | grep REG | sort -k3 -n | tail -10 20 ffff880137a70be0 2 ffff880137a70a98 REG /ffinLFoAy 4 ffff880037630de0 131 ffff880037630c98 REG /var/log/audit/audit.log 4 ffff880037630de0 131 ffff880037630c98 REG /var/log/audit/audit.log 36 ffff8801352e91d8 574 ffff8801352e9090 REG /var/log/journal/2d6f0d3073ff4a60b1e52a8e38e48feb/user-530.journal 34 ffff8801352e81f8 590 ffff8801352e80b0 REG /var/log/journal/2d6f0d3073ff4a60b1e52a8e38e48feb/user-42.journal 5 ffff8800a90219c8 9816 ffff8800a9021880 REG /usr/lib/debug/lib/modules/3.11.10-301.fc20.x86_64/vmlinux 13 ffff880135267198 14051 ffff880135267050 REG /var/log/journal/2d6f0d3073ff4a60b1e52a8e38e48feb/system.journal 5 ffff88012f8345f0 37910 ffff88012f8344a8 REG /usr/lib/debug/lib/modules/3.11.10-301.fc20.x86_64/vmlinux 1 ffff8800704f3d80 59468 ffff8800704f3c38 REG /ws/irqstat/nohup.out 2 ffff8800704f3d80 59468 ffff8800704f3c38 REG /ws/irqstat/nohup.out With these commands, we can easily to debug some page cache flush stress issue, and find out which process or files had the problem. -- ------------------ Oliver Yang
Attachment:
0001-files-support-dump-file-page-caches.patch
Description: Binary data
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility