diff options
Diffstat (limited to 'scripts/gdb/linux/page_owner.py')
| -rw-r--r-- | scripts/gdb/linux/page_owner.py | 58 | 
1 files changed, 25 insertions, 33 deletions
| diff --git a/scripts/gdb/linux/page_owner.py b/scripts/gdb/linux/page_owner.py index 844fd5d0c912..8e713a09cfe7 100644 --- a/scripts/gdb/linux/page_owner.py +++ b/scripts/gdb/linux/page_owner.py @@ -122,27 +122,24 @@ class DumpPageOwner(gdb.Command):          if not (page_ext['flags'] & (1 << PAGE_EXT_OWNER_ALLOCATED)):              gdb.write("page_owner is not allocated\n") -        try: -            page_owner = self.get_page_owner(page_ext) -            gdb.write("Page last allocated via order %d, gfp_mask: 0x%x, pid: %d, tgid: %d (%s), ts %u ns, free_ts %u ns\n" %\ -                    (page_owner["order"], page_owner["gfp_mask"],\ -                    page_owner["pid"], page_owner["tgid"], page_owner["comm"],\ -                    page_owner["ts_nsec"], page_owner["free_ts_nsec"])) -            gdb.write("PFN: %d, Flags: 0x%x\n" % (pfn, page['flags'])) -            if page_owner["handle"] == 0: -                gdb.write('page_owner allocation stack trace missing\n') -            else: -                stackdepot.stack_depot_print(page_owner["handle"]) +        page_owner = self.get_page_owner(page_ext) +        gdb.write("Page last allocated via order %d, gfp_mask: 0x%x, pid: %d, tgid: %d (%s), ts %u ns, free_ts %u ns\n" %\ +                (page_owner["order"], page_owner["gfp_mask"],\ +                page_owner["pid"], page_owner["tgid"], page_owner["comm"].string(),\ +                page_owner["ts_nsec"], page_owner["free_ts_nsec"])) +        gdb.write("PFN: %d, Flags: 0x%x\n" % (pfn, page['flags'])) +        if page_owner["handle"] == 0: +            gdb.write('page_owner allocation stack trace missing\n') +        else: +            stackdepot.stack_depot_print(page_owner["handle"]) -            if page_owner["free_handle"] == 0: -                gdb.write('page_owner free stack trace missing\n') -            else: -                gdb.write('page last free stack trace:\n') -                stackdepot.stack_depot_print(page_owner["free_handle"]) -            if page_owner['last_migrate_reason'] != -1: -                gdb.write('page has been migrated, last migrate reason: %s\n' % self.migrate_reason_names[page_owner['last_migrate_reason']]) -        except: -            gdb.write("\n") +        if page_owner["free_handle"] == 0: +            gdb.write('page_owner free stack trace missing\n') +        else: +            gdb.write('page last free stack trace:\n') +            stackdepot.stack_depot_print(page_owner["free_handle"]) +        if page_owner['last_migrate_reason'] != -1: +            gdb.write('page has been migrated, last migrate reason: %s\n' % self.migrate_reason_names[page_owner['last_migrate_reason']])      def read_page_owner(self):          pfn = self.min_pfn @@ -173,18 +170,13 @@ class DumpPageOwner(gdb.Command):                  pfn += 1                  continue -            try: -                page_owner = self.get_page_owner(page_ext) -                gdb.write("Page allocated via order %d, gfp_mask: 0x%x, pid: %d, tgid: %d (%s), ts %u ns, free_ts %u ns\n" %\ -                        (page_owner["order"], page_owner["gfp_mask"],\ -                        page_owner["pid"], page_owner["tgid"], page_owner["comm"],\ -                        page_owner["ts_nsec"], page_owner["free_ts_nsec"])) -                gdb.write("PFN: %d, Flags: 0x%x\n" % (pfn, page['flags'])) -                stackdepot.stack_depot_print(page_owner["handle"]) -                pfn += (1 << page_owner["order"]) -                continue -            except: -                gdb.write("\n") -            pfn += 1 +            page_owner = self.get_page_owner(page_ext) +            gdb.write("Page allocated via order %d, gfp_mask: 0x%x, pid: %d, tgid: %d (%s), ts %u ns, free_ts %u ns\n" %\ +                    (page_owner["order"], page_owner["gfp_mask"],\ +                    page_owner["pid"], page_owner["tgid"], page_owner["comm"].string(),\ +                    page_owner["ts_nsec"], page_owner["free_ts_nsec"])) +            gdb.write("PFN: %d, Flags: 0x%x\n" % (pfn, page['flags'])) +            stackdepot.stack_depot_print(page_owner["handle"]) +            pfn += (1 << page_owner["order"])  DumpPageOwner() | 
