[Crash-utility] Adding a new command rbtree

Dave Anderson anderson at redhat.com
Wed May 30 14:53:07 UTC 2012



----- Original Message -----
> Modified. I remain the "-N" option. But for radix tree on RHEL5 or
> below, the height does not exist. So "-N" is not supported for radix
> tree on these version.

This is getting tiresome...

With this patch, both red-black or radix tree dumps fail
when dumped from their roots, on RHEL5, RHEL6 and Fedora.

Here are the results using the simple examples shown in your help page.

RHEL5 red-black tree:
  
  crash> vm | head -3
  PID: 15684  TASK: ffff81001b4c1820  CPU: 6   COMMAND: "crash"
         MM               PGD          RSS    TOTAL_VM
  ffff81003b5beb00  ffff810014b43000  112352k  195584k 
  crash> mm_struct.mm_rb ffff81003b5beb00
    mm_rb = {
      rb_node = 0xffff8100110a1e78
    }
  crash> tree -t rb -r mm_struct.mm_rb -o vm_area_struct.vm_rb ffff81003b5beb00
  tree: "-r offset" is useless when specified "-N"ffff81003b5bead0
  ffff810033522738
  7fff36916fd0
  tree: invalid kernel virtual address: 7fff36917010  type: "rb_node rb_left"
  crash>

RHEL5 radix tree:
  
  crash> vtop 400000 | tail -2
        PAGE       PHYSICAL      MAPPING       INDEX CNT FLAGS
  ffff810000a58f88  fc47000 ffff81001d391518        0  3 808000000086c
  crash> address_space.page_tree ffff81001d391518
    page_tree = {
      height = 3, 
      gfp_mask = 544, 
      rnode = 0xffff81000e2ec540
    }
  crash> tree -t radix -r address_space.page_tree ffff81001d391518
  
  tree: invalid structure member offset: radix_tree_node_height
        FILE: tools.c  LINE: 3756  FUNCTION: do_rdtree()
  
  [./crash] error trace: 45a150 => 466d7e => 46571a => 4f8040
  
    4f8040: OFFSET_verify+224
    46571a: do_rdtree+570
    466d7e: cmd_tree+670
    45a150: exec_command+1328
  
  tree: "-r offset" is useless when specified "-N"tree: invalid structure member offset: radix_tree_node_height
        FILE: tools.c  LINE: 3756  FUNCTION: do_rdtree()
  
  crash> 
  
RHEL6 red-black tree:
  
  crash> vm | head -3
  PID: 861    TASK: ffff880037309500  CPU: 0   COMMAND: "crash"
         MM               PGD          RSS    TOTAL_VM
  ffff880037b4d280  ffff880015877000  154492k  291112k 
  crash> mm_struct.mm_rb ffff880037b4d280
    mm_rb = {
      rb_node = 0xffff880004d0ee40
    }
  crash> tree -t rb -r mm_struct.mm_rb -o vm_area_struct.vm_rb ffff880037b4d280
  tree: "-r offset" is useless when specified "-N"ffff880037b4d248
  ffff88003a0dd750
  7fff2fb5cfc8
  tree: invalid kernel virtual address: 7fff2fb5d010  type: "rb_node rb_left"
  crash>  

RHEL6 radix tree:
  
  crash> vtop 400000 | tail -2
        PAGE       PHYSICAL      MAPPING       INDEX CNT FLAGS
  ffffea000070bde0 20364000 ffff880024da3de0        0  3 2000000000086c
  crash> address_space.page_tree ffff880024da3de0
    page_tree = {
      height = 3, 
      gfp_mask = 32, 
      rnode = 0xffff88001da1c911
    }
  crash> tree -t radix -r address_space.page_tree ffff880024da3de0
  tree: "-r offset" is useless when specified "-N"tree: "-N" option is not supported or applicable for radix tree on this architecture or kernel
  crash>

Fedora 3.3.1-3.fc16 red-black tree:
  
  crash> vm | head -3
  PID: 1175   TASK: ffff88003acb9730  CPU: 2   COMMAND: "crash"
         MM               PGD          RSS    TOTAL_VM
  ffff880038495c00  ffff88003ac5a000  181580k  335436k 
  crash> mm_struct.mm_rb ffff880038495c00
    mm_rb = {
      rb_node = 0xffff880036ae4668
    }
  crash> tree -t rb -r mm_struct.mm_rb -o vm_area_struct.vm_rb ffff880038495c00
  tree: "-r offset" is useless when specified "-N"ffff880038495bc8
  ffff880036ae4968
  4703fc8
  tree: invalid kernel virtual address: 4704010  type: "rb_node rb_left"
  crash>

Fedora 3.3.1-3.fc16 radix tree:
  
  crash> vtop 400000 | tail -2
        PAGE       PHYSICAL      MAPPING       INDEX CNT FLAGS
  ffffea0000ad2500 2b494000 ffff88003a209320        0  2 2000000002006c
  crash> address_space.page_tree ffff88003a209320
    page_tree = {
      height = 2, 
      gfp_mask = 32, 
      rnode = 0xffff88003dff6e99
    }
  crash> tree -t radix -r address_space.page_tree ffff88003a209320
  tree: "-r offset" is useless when specified "-N"tree: "-N" option is not supported or applicable for radix tree on this architecture or kernel
  crash> 

Do you even test these patches before posting them?

Dave




More information about the Crash-utility mailing list