Re: Retrying /proc values from kdump file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




----- Original Message -----
> One of the specific items I wanted is /proc/buddyinfo.

Well, it looks like /proc/buddyinfo date comes down to the functions
in the kernel's seq_operations structure, where:

        proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);

leads to:
  
  static const struct file_operations fragmentation_file_operations = {
          .open           = fragmentation_open,
          .read           = seq_read,
          .llseek         = seq_lseek,
          .release        = seq_release,
  }
  
which leads to:

  static int fragmentation_open(struct inode *inode, struct file *file)
  {
          return seq_open(file, &fragmentation_op);
  }
  
which leads to:

  static const struct seq_operations fragmentation_op = {
          .start  = frag_start,
          .next   = frag_next,
          .stop   = frag_stop,
          .show   = frag_show,
  };
  
where the "frag_xxx" functions pull data from each NUMA node's 
"zone" structures.  You can check the details in the kernel code, 
but from the crash utility perspective, the relevant structure 
addresses from which the data is pulled can be seen by "kmem -n",
under the "NODE_ZONES" column:
  
  crash> kmem -n
  NODE    SIZE      PGLIST_DATA       BOOTMEM_DATA       NODE_ZONES   
    0   4711935   ffff88047e5d7000        ----        ffff88047e5d7000
                                                      ffff88047e5d7800
                                                      ffff88047e5d8000
                                                      ffff88047e5d8800
      MEM_MAP          START_PADDR    START_MAPNR
  ffffea0000000040        1000             1     
  
  ZONE  NAME         SIZE       MEM_MAP      START_PADDR  START_MAPNR
    0   DMA          4095  ffffea0000000040         1000            1
    1   DMA32     1044480  ffffea0000040000      1000000         4096
    2   Normal    3663360  ffffea0004000000    100000000      1048576
    3   Movable         0                 0            0            0
  
  ...

So if you take the zone structure addresses ffff88047e5d7000, ffff88047e5d7800,
etc., you can cast each of them as zone structures to see their individul 
contents, i.e., like:

  crash> zone ffff88047e5d7000
  ...

Dave

--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/crash-utility



[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux