OSDN Git Service

Merge tag 'acpi-5.6-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[tomoyo/tomoyo-test1.git] / mm / debug.c
index 0461df1..ecccd9f 100644 (file)
@@ -46,7 +46,15 @@ void __dump_page(struct page *page, const char *reason)
 {
        struct address_space *mapping;
        bool page_poisoned = PagePoisoned(page);
+       /*
+        * Accessing the pageblock without the zone lock. It could change to
+        * "isolate" again in the meantime, but since we are just dumping the
+        * state for debugging, it should be fine to accept a bit of
+        * inaccuracy here due to racing.
+        */
+       bool page_cma = is_migrate_cma_page(page);
        int mapcount;
+       char *type = "";
 
        /*
         * If struct page is poisoned don't access Page*() functions as that
@@ -78,9 +86,9 @@ void __dump_page(struct page *page, const char *reason)
                        page, page_ref_count(page), mapcount,
                        page->mapping, page_to_pgoff(page));
        if (PageKsm(page))
-               pr_warn("ksm flags: %#lx(%pGp)\n", page->flags, &page->flags);
+               type = "ksm ";
        else if (PageAnon(page))
-               pr_warn("anon flags: %#lx(%pGp)\n", page->flags, &page->flags);
+               type = "anon ";
        else if (mapping) {
                if (mapping->host && mapping->host->i_dentry.first) {
                        struct dentry *dentry;
@@ -88,10 +96,12 @@ void __dump_page(struct page *page, const char *reason)
                        pr_warn("%ps name:\"%pd\"\n", mapping->a_ops, dentry);
                } else
                        pr_warn("%ps\n", mapping->a_ops);
-               pr_warn("flags: %#lx(%pGp)\n", page->flags, &page->flags);
        }
        BUILD_BUG_ON(ARRAY_SIZE(pageflag_names) != __NR_PAGEFLAGS + 1);
 
+       pr_warn("%sflags: %#lx(%pGp)%s\n", type, page->flags, &page->flags,
+               page_cma ? " CMA" : "");
+
 hex_only:
        print_hex_dump(KERN_WARNING, "raw: ", DUMP_PREFIX_NONE, 32,
                        sizeof(unsigned long), page,
@@ -153,7 +163,7 @@ void dump_mm(const struct mm_struct *mm)
 #endif
                "exe_file %px\n"
 #ifdef CONFIG_MMU_NOTIFIER
-               "mmu_notifier_mm %px\n"
+               "notifier_subscriptions %px\n"
 #endif
 #ifdef CONFIG_NUMA_BALANCING
                "numa_next_scan %lu numa_scan_offset %lu numa_scan_seq %d\n"
@@ -185,7 +195,7 @@ void dump_mm(const struct mm_struct *mm)
 #endif
                mm->exe_file,
 #ifdef CONFIG_MMU_NOTIFIER
-               mm->mmu_notifier_mm,
+               mm->notifier_subscriptions,
 #endif
 #ifdef CONFIG_NUMA_BALANCING
                mm->numa_next_scan, mm->numa_scan_offset, mm->numa_scan_seq,