From 31b55bb28847f0b8de9f1d58e93870aa107f8db4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 17 Apr 2008 17:40:45 +0200 Subject: [PATCH] --- yaml --- r: 88575 b: refs/heads/master c: ee7ae7a1981caaa4a5b14d8c75692a9dccd52105 h: refs/heads/master i: 88573: 7f85cd30d84ac498ff815d822544f776f73aa677 88571: 367887d92cacf11b6cbe3a3a0930fa7e5e33d17c 88567: 84d04bc97647b6db60ef9b01103f5ad4be247fce 88559: 2e706609eca52765a61c4062f57b7ae435bc95cb 88543: 0294ea83be95baa24bf29abdfd9bec4bfb963464 88511: 8d5ba7bb26e4517cd81e1ba3b617572e28d9ee4f 88447: f355d6b515e772228819beb46d00a8432ea640b6 88319: 58c8bd05603de64c864dbbbb64502b80d5290f26 88063: 6c3bac09bdab7d7df7970dac181ffd519b6b0c38 v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/pageattr.c | 41 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f56331dd5f20..1c137ef4cf4b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5de253cc5b1f565f7aeb5bacd67bac37e943ceef +refs/heads/master: ee7ae7a1981caaa4a5b14d8c75692a9dccd52105 diff --git a/trunk/arch/x86/mm/pageattr.c b/trunk/arch/x86/mm/pageattr.c index 7b79f6be4e7d..6cdfc0fd68be 100644 --- a/trunk/arch/x86/mm/pageattr.c +++ b/trunk/arch/x86/mm/pageattr.c @@ -9,6 +9,8 @@ #include #include #include +#include +#include #include #include @@ -918,6 +920,45 @@ void kernel_map_pages(struct page *page, int numpages, int enable) cpa_fill_pool(NULL); } +#ifdef CONFIG_DEBUG_FS +static int dpa_show(struct seq_file *m, void *v) +{ + seq_puts(m, "DEBUG_PAGEALLOC\n"); + seq_printf(m, "pool_size : %lu\n", pool_size); + seq_printf(m, "pool_pages : %lu\n", pool_pages); + seq_printf(m, "pool_low : %lu\n", pool_low); + seq_printf(m, "pool_used : %lu\n", pool_used); + seq_printf(m, "pool_failed : %lu\n", pool_failed); + + return 0; +} + +static int dpa_open(struct inode *inode, struct file *filp) +{ + return single_open(filp, dpa_show, NULL); +} + +static const struct file_operations dpa_fops = { + .open = dpa_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +int __init debug_pagealloc_proc_init(void) +{ + struct dentry *de; + + de = debugfs_create_file("debug_pagealloc", 0600, NULL, NULL, + &dpa_fops); + if (!de) + return -ENOMEM; + + return 0; +} +__initcall(debug_pagealloc_proc_init); +#endif + #ifdef CONFIG_HIBERNATION bool kernel_page_present(struct page *page)