← Back to team overview

kernel-packages team mailing list archive

[Bug 1354349] Re: The "crash" utility doesn't run in ARM64 based devices

 

** Description changed:

- ****************
- HOW TO REPRODUCE
- ****************
+ [Impact]
+ Crash is useless on trusty/arm64
  
- On an system that uses the ARM64 architecture, run the "crash" utility.
+ [Test Case]
+ BAD (today):
+ dannf@mustang:~$ sudo crash /usr/lib/debug/boot/vmlinux-3.13.0-37-generic 
  
- ******************
- EXPECTED BEHAVIOUR
- ******************
+ crash 7.0.3
+ Copyright (C) 2002-2013  Red Hat, Inc.
+ Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
+ Copyright (C) 1999-2006  Hewlett-Packard Co
+ Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
+ Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
+ Copyright (C) 2005, 2011  NEC Corporation
+ Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
+ This program is free software, covered by the GNU General Public License,
+ and you are welcome to change it and/or distribute copies of it under
+ certain conditions.  Enter "help copying" to see the conditions.
+ This program has absolutely no warranty.  Enter "help warranty" for details.
+  
+ WARNING: arm64_verify_symbol: function not implemented
+ WARNING: arm64_verify_symbol: function not implemented
+        [repeats, ad nauseum]
+ WARNING: arm64_verify_symbol: function not implemented
+ WARNING: arm64_verify_symbol: function not implemented
+ GNU gdb (GDB) 7.6
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+ and "show warranty" for details.
+ This GDB was configured as "aarch64-unknown-linux-gnu"...
  
- - The "crash" utility to work.
+ crash: read error: kernel virtual address: ffffffc000612ce0  type: "cpu_possible_mask"
+ dannf@mustang:~$
  
- **************
- REAL BEHAVIOUR
- **************
  
- - The "crash" utility doesn't work.
+ GOOD:
+ dannf@mustang:~$ sudo crash /usr/lib/debug/boot/vmlinux-3.13.0-37-generic 
  
- ************
- PROPOSED FIX
- ************
+ crash 7.0.3
+ Copyright (C) 2002-2013  Red Hat, Inc.
+ Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
+ Copyright (C) 1999-2006  Hewlett-Packard Co
+ Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
+ Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
+ Copyright (C) 2005, 2011  NEC Corporation
+ Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
+ This program is free software, covered by the GNU General Public License,
+ and you are welcome to change it and/or distribute copies of it under
+ certain conditions.  Enter "help copying" to see the conditions.
+ This program has absolutely no warranty.  Enter "help warranty" for details.
+  
+ GNU gdb (GDB) 7.6
+ Copyright (C) 2013 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+ and "show warranty" for details.
+ This GDB was configured as "aarch64-unknown-linux-gnu"...
  
- - To clean merge into Ubuntu the <https://github.com/crash-
- utility/crash/commit/0f6d989aa091a97e979ea01fb15e05cc22673de7> commit,
- which updates the ARM64 implementation to support Linux 3.13 and later.
+       KERNEL: /usr/lib/debug/boot/vmlinux-3.13.0-37-generic
+     DUMPFILE: /dev/mem
+         CPUS: 8
+         DATE: Tue Sep 30 15:24:37 2014
+       UPTIME: 2 days, 05:04:47
+ LOAD AVERAGE: 0.20, 0.59, 0.62
+        TASKS: 150
+     NODENAME: mustang
+      RELEASE: 3.13.0-37-generic
+      VERSION: #64-Ubuntu SMP Mon Sep 22 21:32:32 UTC 2014
+      MACHINE: aarch64  (unknown Mhz)
+       MEMORY: 16 GB
+          PID: 19911
+      COMMAND: "crash"
+         TASK: ffffffc21d18c200  [THREAD_INFO: ffffffc3e6978000]
+          CPU: 3
+        STATE: TASK_RUNNING (ACTIVE)
  
- - Since the change only affects the ARM64 architecture, there is no
- potential regression.
+ crash> dis sys_read
+ 0xffffffc0001a6bc0 <SyS_read>:  stp     x29, x30, [sp,#-80]!
+ 0xffffffc0001a6bc4 <sys_read+4>:        mov     x29, sp
+ 0xffffffc0001a6bc8 <sys_read+8>:        stp     x19, x20, [sp,#16]
+ 0xffffffc0001a6bcc <sys_read+12>:       mov     x20, x1
+ 0xffffffc0001a6bd0 <sys_read+16>:       add     x1, x29, #0x48
+ 0xffffffc0001a6bd4 <sys_read+20>:       str     x21, [sp,#32]
+ 0xffffffc0001a6bd8 <sys_read+24>:       str     x2, [x29,#56]
+ 0xffffffc0001a6bdc <sys_read+28>:       bl      0xffffffc0001c1d4c <fget_light>
+ 0xffffffc0001a6be0 <sys_read+32>:       mov     x19, x0
+ 0xffffffc0001a6be4 <sys_read+36>:       ldr     w21, [x29,#72]
+ 0xffffffc0001a6be8 <sys_read+40>:       ldr     x2, [x29,#56]
+ 0xffffffc0001a6bec <sys_read+44>:       cbz     x0, 0xffffffc0001a6c48 <sys_read+136>
+ 0xffffffc0001a6bf0 <sys_read+48>:       ldr     x4, [x0,#72]
+ 0xffffffc0001a6bf4 <sys_read+52>:       mov     x1, x20
+ 0xffffffc0001a6bf8 <sys_read+56>:       add     x3, x29, #0x48
+ 0xffffffc0001a6bfc <sys_read+60>:       str     x4, [x29,#72]
+ 0xffffffc0001a6c00 <sys_read+64>:       bl      0xffffffc0001a6080 <vfs_read>
+ 0xffffffc0001a6c04 <sys_read+68>:       mov     x20, x0
+ 0xffffffc0001a6c08 <sys_read+72>:       tbnz    x20, #63, 0xffffffc0001a6c14 <sys_read+84>
+ 0xffffffc0001a6c0c <sys_read+76>:       ldr     x0, [x29,#72]
+ 0xffffffc0001a6c10 <sys_read+80>:       str     x0, [x19,#72]
+ 0xffffffc0001a6c14 <sys_read+84>:       cbnz    w21, 0xffffffc0001a6c2c <sys_read+108>
+ 0xffffffc0001a6c18 <sys_read+88>:       mov     x0, x20
+ 0xffffffc0001a6c1c <sys_read+92>:       ldr     x21, [sp,#32]
+ 0xffffffc0001a6c20 <sys_read+96>:       ldp     x19, x20, [sp,#16]
+ 0xffffffc0001a6c24 <sys_read+100>:      ldp     x29, x30, [sp],#80
+ 0xffffffc0001a6c28 <sys_read+104>:      ret
+ 0xffffffc0001a6c2c <sys_read+108>:      mov     x0, x19
+ 0xffffffc0001a6c30 <sys_read+112>:      bl      0xffffffc0001a7d54 <fput>
+ 0xffffffc0001a6c34 <sys_read+116>:      mov     x0, x20
+ 0xffffffc0001a6c38 <sys_read+120>:      ldr     x21, [sp,#32]
+ 0xffffffc0001a6c3c <sys_read+124>:      ldp     x19, x20, [sp,#16]
+ 0xffffffc0001a6c40 <sys_read+128>:      ldp     x29, x30, [sp],#80
+ 0xffffffc0001a6c44 <sys_read+132>:      ret
+ 0xffffffc0001a6c48 <sys_read+136>:      mov     x20, #0xfffffffffffffff7        // #-9
+ 0xffffffc0001a6c4c <sys_read+140>:      b       0xffffffc0001a6c18 <SyS_read+88>
+ crash> quit
+ dannf@mustang:~$
  
- ****************
- RELEVANT DETAILS
- ****************
- 
- - The package's affected versions are the 7.0.3 based.
- 
- - Dave Anderson at
- <http://people.redhat.com/anderson/crash.changelog.html> said that some
- commands, most notably "bt", don't work yet.
+ [Regression Risk]
+ With Ming's proposed backport, risk is low because it only touches code built on arm64. Since crash was useless before, can't get much worse :)

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to crash in Ubuntu.
https://bugs.launchpad.net/bugs/1354349

Title:
  The "crash" utility doesn't run in ARM64 based devices

Status in “crash” package in Ubuntu:
  Fix Released
Status in “crash” source package in Trusty:
  Triaged
Status in “crash” source package in Utopic:
  Fix Released

Bug description:
  [Impact]
  Crash is useless on trusty/arm64

  [Test Case]
  BAD (today):
  dannf@mustang:~$ sudo crash /usr/lib/debug/boot/vmlinux-3.13.0-37-generic 

  crash 7.0.3
  Copyright (C) 2002-2013  Red Hat, Inc.
  Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
  Copyright (C) 1999-2006  Hewlett-Packard Co
  Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
  Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
  Copyright (C) 2005, 2011  NEC Corporation
  Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
  Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
  This program is free software, covered by the GNU General Public License,
  and you are welcome to change it and/or distribute copies of it under
  certain conditions.  Enter "help copying" to see the conditions.
  This program has absolutely no warranty.  Enter "help warranty" for details.
   
  WARNING: arm64_verify_symbol: function not implemented
  WARNING: arm64_verify_symbol: function not implemented
         [repeats, ad nauseum]
  WARNING: arm64_verify_symbol: function not implemented
  WARNING: arm64_verify_symbol: function not implemented
  GNU gdb (GDB) 7.6
  Copyright (C) 2013 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  and "show warranty" for details.
  This GDB was configured as "aarch64-unknown-linux-gnu"...

  crash: read error: kernel virtual address: ffffffc000612ce0  type: "cpu_possible_mask"
  dannf@mustang:~$

  
  GOOD:
  dannf@mustang:~$ sudo crash /usr/lib/debug/boot/vmlinux-3.13.0-37-generic 

  crash 7.0.3
  Copyright (C) 2002-2013  Red Hat, Inc.
  Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
  Copyright (C) 1999-2006  Hewlett-Packard Co
  Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
  Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
  Copyright (C) 2005, 2011  NEC Corporation
  Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
  Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
  This program is free software, covered by the GNU General Public License,
  and you are welcome to change it and/or distribute copies of it under
  certain conditions.  Enter "help copying" to see the conditions.
  This program has absolutely no warranty.  Enter "help warranty" for details.
   
  GNU gdb (GDB) 7.6
  Copyright (C) 2013 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  and "show warranty" for details.
  This GDB was configured as "aarch64-unknown-linux-gnu"...

        KERNEL: /usr/lib/debug/boot/vmlinux-3.13.0-37-generic
      DUMPFILE: /dev/mem
          CPUS: 8
          DATE: Tue Sep 30 15:24:37 2014
        UPTIME: 2 days, 05:04:47
  LOAD AVERAGE: 0.20, 0.59, 0.62
         TASKS: 150
      NODENAME: mustang
       RELEASE: 3.13.0-37-generic
       VERSION: #64-Ubuntu SMP Mon Sep 22 21:32:32 UTC 2014
       MACHINE: aarch64  (unknown Mhz)
        MEMORY: 16 GB
           PID: 19911
       COMMAND: "crash"
          TASK: ffffffc21d18c200  [THREAD_INFO: ffffffc3e6978000]
           CPU: 3
         STATE: TASK_RUNNING (ACTIVE)

  crash> dis sys_read
  0xffffffc0001a6bc0 <SyS_read>:  stp     x29, x30, [sp,#-80]!
  0xffffffc0001a6bc4 <sys_read+4>:        mov     x29, sp
  0xffffffc0001a6bc8 <sys_read+8>:        stp     x19, x20, [sp,#16]
  0xffffffc0001a6bcc <sys_read+12>:       mov     x20, x1
  0xffffffc0001a6bd0 <sys_read+16>:       add     x1, x29, #0x48
  0xffffffc0001a6bd4 <sys_read+20>:       str     x21, [sp,#32]
  0xffffffc0001a6bd8 <sys_read+24>:       str     x2, [x29,#56]
  0xffffffc0001a6bdc <sys_read+28>:       bl      0xffffffc0001c1d4c <fget_light>
  0xffffffc0001a6be0 <sys_read+32>:       mov     x19, x0
  0xffffffc0001a6be4 <sys_read+36>:       ldr     w21, [x29,#72]
  0xffffffc0001a6be8 <sys_read+40>:       ldr     x2, [x29,#56]
  0xffffffc0001a6bec <sys_read+44>:       cbz     x0, 0xffffffc0001a6c48 <sys_read+136>
  0xffffffc0001a6bf0 <sys_read+48>:       ldr     x4, [x0,#72]
  0xffffffc0001a6bf4 <sys_read+52>:       mov     x1, x20
  0xffffffc0001a6bf8 <sys_read+56>:       add     x3, x29, #0x48
  0xffffffc0001a6bfc <sys_read+60>:       str     x4, [x29,#72]
  0xffffffc0001a6c00 <sys_read+64>:       bl      0xffffffc0001a6080 <vfs_read>
  0xffffffc0001a6c04 <sys_read+68>:       mov     x20, x0
  0xffffffc0001a6c08 <sys_read+72>:       tbnz    x20, #63, 0xffffffc0001a6c14 <sys_read+84>
  0xffffffc0001a6c0c <sys_read+76>:       ldr     x0, [x29,#72]
  0xffffffc0001a6c10 <sys_read+80>:       str     x0, [x19,#72]
  0xffffffc0001a6c14 <sys_read+84>:       cbnz    w21, 0xffffffc0001a6c2c <sys_read+108>
  0xffffffc0001a6c18 <sys_read+88>:       mov     x0, x20
  0xffffffc0001a6c1c <sys_read+92>:       ldr     x21, [sp,#32]
  0xffffffc0001a6c20 <sys_read+96>:       ldp     x19, x20, [sp,#16]
  0xffffffc0001a6c24 <sys_read+100>:      ldp     x29, x30, [sp],#80
  0xffffffc0001a6c28 <sys_read+104>:      ret
  0xffffffc0001a6c2c <sys_read+108>:      mov     x0, x19
  0xffffffc0001a6c30 <sys_read+112>:      bl      0xffffffc0001a7d54 <fput>
  0xffffffc0001a6c34 <sys_read+116>:      mov     x0, x20
  0xffffffc0001a6c38 <sys_read+120>:      ldr     x21, [sp,#32]
  0xffffffc0001a6c3c <sys_read+124>:      ldp     x19, x20, [sp,#16]
  0xffffffc0001a6c40 <sys_read+128>:      ldp     x29, x30, [sp],#80
  0xffffffc0001a6c44 <sys_read+132>:      ret
  0xffffffc0001a6c48 <sys_read+136>:      mov     x20, #0xfffffffffffffff7        // #-9
  0xffffffc0001a6c4c <sys_read+140>:      b       0xffffffc0001a6c18 <SyS_read+88>
  crash> quit
  dannf@mustang:~$

  [Regression Risk]
  With Ming's proposed backport, risk is low because it only touches code built on arm64. Since crash was useless before, can't get much worse :)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/crash/+bug/1354349/+subscriptions


References