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 74ee73c..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,