crash utility help page: kmem

crash utility help page:  kmem

NAME

  kmem - kernel memory内核内存

 

SYNOPSIS

  kmem [-f|-F|-c|-C|-i|-v|-V|-n|-z|-o|-h] [-p | -m member[,member]]

       [[-s|-S|-r] [slab] [-I slab[,slab]]] [-g [flags]] [[-P] address]]

 

DESCRIPTION

  This command displays information about the use of kernel memory. 此命令显示有关使用内核内存的信息。

 

        -f  displays the contents of the system free memory headers. also verifies that the page count equals nr_free_pages.

显示系统可用内存头的内容。 还验证页面计数是否等于nr_free_pages。

        -F  same as -f, but also dumps all pages linked to that header.

与-f相同,但也会显示链接到该标头的所有页面。

        -c  walks through the page_hash_table and verifies page_cache_size.

遍历page_hash_table并验证page_cache_size。

        -C  same as -c, but also dumps all pages in the page_hash_table.

与-c相同,但也会显示page_hash_table中的所有页面。

        -i  displays general memory usage information

显示一般内存使用信息

        -v  displays the mapped virtual memory regions allocated by vmalloc().

显示由vmalloc()分配的映射虚拟内存区域

        -V  displays the kernel vm_stat table if it exists, or in more recent kernels, the vm_zone_stat, vm_node_stat and vm_numa_stat tables, the cumulative page_states counter values if they exist, and/or the cumulative, vm_event_states counter values if they exist.

显示内核vm_stat表(如果存在)或新的内核中,vm_zone_stat,vm_node_stat和vm_numa_stat表,累积的page_states计数器值(如果存在)和/或累积的,vm_event_states计数器值(如果存在)。

        -n  display memory node, memory section, and memory block data and state; the state of each memory section state is encoded as "P", "M" and/or "O", meaning SECTION_MARKED_PRESENT,           SECTION_HAS_MEM_MAP and SECTION_IS_ONLINE.

显示内存节点,内存节和内存块数据和状态; 每个内存节状态的状态被编码为“P”,“M”和/或“O”,表示SECTION_MARKED_PRESENT,SECTION_HAS_MEM_MAP和SECTION_IS_ONLINE。

        -z  displays per-zone memory statistics.

显示每个区域的内存统计信息。

        -o  displays each cpu's offset value that is added to per-cpu symbol

            values to translate them into kernel virtual addresses.

显示添加到per-cpu符号的每个cpu的偏移值将它们转换为内核虚拟地址的值。

        -h  display the address of hugepage hstate array entries, along with

            their hugepage size, total and free counts, and name.

显示hugepage hstate数组条目的地址,以及它们的巨大页面大小,总计和空闲计数以及名称。

        -p  displays basic information about each page structure in the system mem_map[] array, made up of the page struct address, its associated physical address, the page.mapping, page.index, page._count and

            page.flags fields.

显示系统mem_map []数组中每个页面结构的基本信息,由页面结构地址,相关的物理地址,page.mapping,page.index,page._count和page.flags字段组成。

 -m member  similar to -p, but displays page structure contents specified by a comma-separated list of one or more struct page members.  The "flags" member will always be expressed in hexadecimal format, and

            the "_count" and "_mapcount" members will always be expressed in decimal format.  Otherwise, all other members will be displayed in hexadecimal format unless the output radix is 10 and the member          is a signed/unsigned integer.  Members that are data structures may be specified either by the data structure's member name, or expanded to specify a member of the data structure.  For example, "-m lru"             refers to a list_head data structure, and both the list_head.next and list_head.prev pointer values will be displayed, whereas if "-m lru.next" is specified, just the list_head.next value will be displayed.

类似于-p,但显示由一个或多个struct page成员的逗号分隔列表指定的页面结构内容。 “flags”成员将始终以十六进制格式表示,“_ count”和“_mapcount”成员将始终以十进制格式表示。 否则,除非输出基数为10且成员是有符号/无符号整数,否则所有其他成员将以十六进制格式显示。 作为数据结构的成员可以由数据结构的成员名称指定,也可以扩展为指定数据结构的成员。 例如,“-m lru”指的是list_head数据结构,并且将显示list_head.next和list_head.prev指针值,而如果指定了“-m lru.next”,则只显示list_head.next值 显示。

        -s  displays basic kmalloc() slab data.

显示基本的kmalloc() slab数据。

        -S  displays all kmalloc() slab data, including all slab objects, and whether each object is in use or is free.  If CONFIG_SLUB, slab data for each per-cpu slab is displayed, along with the address of each kmem_cache_node, its count of full and partial slabs, and a list of all tracked slabs.

显示所有kmalloc()slab数据,包括所有slab对象,以及每个对象是否正在使用或是否空闲。 如果显示CONFIG_SLUB,则显示每个per-cpu slab的slab数据,以及每个kmem_cache_node的地址,其完整和部分slab的计数,以及所有跟踪的slab的列表。

        -r  displays the accumulated basic kmalloc() slab data of each root slab cache and its children.  The kernel must contain the "slab_root_caches" list_head. (currently only available if CONFIG_SLUB)

显示每个根slab缓存及其子缓存的累积基本kmalloc()slab数据。 内核必须包含“slab_root_caches”list_head。 (目前仅在CONFIG_SLUB时可用)

      slab  when used with -s, -S or -r, limits the command to only the slab cache of name "slab".  If the slab argument is "list", then all slab cache names and addresses are listed.

与-s,-S或-r一起使用时,将命令限制为仅名为“slab”的slab缓存。 如果slab参数是“list”,则列出所有slab缓存名称和地址。

   -I slab  when used with -s, -S or -r, one or more slab cache names in a comma-separated list may be specified as slab caches to ignore.

当与-s,-S或-r一起使用时,逗号分隔列表中的一个或多个slab缓存名称可以指定为要忽略的slab缓存。

        -g  displays the enumerator value of all bits in the page structure's "flags" field.

显示页面结构的“flags”字段中所有位的枚举器值。

     flags  when used with -g, translates all bits in this hexadecimal page structure flags value into its enumerator values.

与-g一起使用时,将此十六进制页面结构标志值中的所有位转换为其枚举值。

        -P  declares that the following address argument is a physical address.

声明以下地址参数是物理地址。

   address  when used without any flag, the address can be a kernel virtual, or physical address; a search is made through the symbol table, the kmalloc() slab subsystem, the free list, the page_hash_table, the vmalloc() region subsystem, the current set of task_structs and kernel stacks, and the mem_map array.  If found in any of those areas, the information will be dumped in the same manner as if the location-specific flags were used; if contained within a curent task_struct or kernel stack, that task's context will be displayed.

当没有任何标志使用时,地址可以是内核虚拟或物理地址; 通过符号表,kmalloc()slab子系统,空闲列表,page_hash_table,vmalloc()区域子系统,当前的task_structs和内核堆栈集以及mem_map数组进行搜索。 如果在任何这些区域中找到,则将以与使用特定于位置的标志相同的方式转储信息; 如果包含在curent task_struct或内核堆栈中,则将显示该任务的上下文。

   address  when used with -s or -S, searches the kmalloc() slab subsystem for the slab containing of this virtual address, showing whether it is in use or free.

当与-s或-S一起使用时,在kmalloc()slab子系统中搜索包含此虚拟地址的slab,显示它是在使用还是空闲。

   address  when used with -f, the address can be either a page pointer, a physical address, or a kernel virtual address; the free_area header containing the page (if any) is displayed.

与-f一起使用时,地址可以是页面指针,物理地址或内核虚拟地址; 显示包含页面(如果有)的free_area标头。

   address  when used with -p, the address can be either a page pointer, a physical address, or a kernel virtual address; its basic mem_map page information is displayed.

与-p一起使用时,地址可以是页面指针,物理地址或内核虚拟地址; 显示其基本的mem_map页面信息。

   address  when used with -m, the address can be either a page pointer, a physical address, or a kernel virtual address; the specified members of the associated page struct are displayed.

与-m一起使用时,地址可以是页面指针,物理地址或内核虚拟地址; 显示关联页面结构的指定成员。

   address  when used with -c, the address must be a page pointer address; the page_hash_table entry containing the page is displayed.

与-c一起使用时,地址必须是页面指针地址; 将显示包含该页面的page_hash_table条目。

   address  when used with -l, the address must be a page pointer address; the page address is displayed if it is contained with the list.

与-l一起使用时,地址必须是页面指针地址; 如果列表中包含页面地址,则显示该页面地址。

   address  when used with -v, the address can be a mapped kernel virtual address or physical address; the mapped region containing the address is displayed.

与-v一起使用时,地址可以是映射的内核虚拟地址或物理地址; 显示包含地址的映射区域。

  All address arguments above must be expressed in hexadecimal format.

上述所有地址参数必须以十六进制格式表示。

 

EXAMPLES

  Display memory usage information: 显示内存使用信息:

 

    crash> kmem -i

                     PAGES        TOTAL      PERCENTAGE

        TOTAL MEM  1974231       7.5 GB         ----

             FREE   208962     816.3 MB   10% of TOTAL MEM

             USED  1765269       6.7 GB   89% of TOTAL MEM

           SHARED   365066       1.4 GB   18% of TOTAL MEM

          BUFFERS   111376     435.1 MB    5% of TOTAL MEM

           CACHED  1276196       4.9 GB   64% of TOTAL MEM

             SLAB   120410     470.4 MB    6% of TOTAL MEM

   

       TOTAL HUGE   524288         2 GB         ----

        HUGE FREE   524288         2 GB  100% of TOTAL HUGE

   

       TOTAL SWAP  2498559       9.5 GB         ----

        SWAP USED    81978     320.2 MB    3% of TOTAL SWAP

        SWAP FREE  2416581       9.2 GB   96% of TOTAL SWAP

   

     COMMIT LIMIT  3485674      13.3 GB         ----

        COMMITTED   850651       3.2 GB   24% of TOTAL LIMIT

   

  Display and verify free memory data: 显示和验证可用内存数据:

 

    crash> kmem -f

    NODE

      0

    ZONE  NAME        SIZE    FREE  MEM_MAP   START_PADDR  START_MAPNR

      0   DMA         4096    3372  c4000040       0            0    

    AREA  SIZE  FREE_AREA_STRUCT  BLOCKS  PAGES

      0     4k      c02eb004           2      2

      1     8k      c02eb010           3      6

      2    16k      c02eb01c           5     20

      3    32k      c02eb028           4     32

      4    64k      c02eb034           5     80

      5   128k      c02eb040           3     96

      6   256k      c02eb04c           3    192

      7   512k      c02eb058           1    128

      8  1024k      c02eb064           1    256

      9  2048k      c02eb070           5   2560

 

    ZONE  NAME        SIZE    FREE  MEM_MAP   START_PADDR  START_MAPNR

      1   Normal    225280  202269  c4044040    1000000        4096  

    AREA  SIZE  FREE_AREA_STRUCT  BLOCKS  PAGES

      0     4k      c02eb0b8           1      1

      1     8k      c02eb0c4           2      4

      2    16k      c02eb0d0           0      0

      3    32k      c02eb0dc           1      8

      4    64k      c02eb0e8           1     16

      5   128k      c02eb0f4           0      0

      6   256k      c02eb100           0      0

      7   512k      c02eb10c           0      0

      8  1024k      c02eb118           0      0

      9  2048k      c02eb124         395 202240

 

    ZONE  NAME        SIZE    FREE  MEM_MAP   START_PADDR  START_MAPNR

      2   HighMem   819200  748686  c4ee0040    38000000      229376 

    AREA  SIZE  FREE_AREA_STRUCT  BLOCKS  PAGES

      0     4k      c02eb16c          10     10

      1     8k      c02eb178           2      4

      2    16k      c02eb184           0      0

      3    32k      c02eb190           2     16

      4    64k      c02eb19c           1     16

      5   128k      c02eb1a8           1     32

      6   256k      c02eb1b4           1     64

      7   512k      c02eb1c0           0      0

      8  1024k      c02eb1cc           0      0

      9  2048k      c02eb1d8        1462 748544

   

    nr_free_pages: 954327  (verified)

 

  Dump all the base addresses of each free memory area from above:

从上面显示每个空闲内存区域的所有基址:

 

    crash> kmem -F

    NODE

      0

    ZONE  NAME        SIZE    FREE  MEM_MAP   START_PADDR  START_MAPNR

      0   DMA         4096    3372  c4000040       0            0    

    AREA  SIZE  FREE_AREA_STRUCT

      0     4k      c02eb004     

    c400ded8

    c4042528

    AREA  SIZE  FREE_AREA_STRUCT

      1     8k      c02eb010     

    c400de50

    c400cee8

    c40424a0

    AREA  SIZE  FREE_AREA_STRUCT

      2    16k      c02eb01c     

    c400dd40

    c400cf70

    c40425b0

    c400f7d0

    c40028a0

    AREA  SIZE  FREE_AREA_STRUCT

      3    32k      c02eb028     

    c4042280

    c400f8e0

    c4002680

    c4000260

    AREA  SIZE  FREE_AREA_STRUCT

      4    64k      c02eb034     

    c400d080

    c4041e40

    ...

 

  Dump the mem_map[] array: 显示mem_map []数组

 

    crash> kmem -p

      PAGE    PHYSICAL   MAPPING    INDEX CNT FLAGS

    f5c51200     10000         0         0  1 80 slab

    f5c51220     11000         0         0  1 80 slab

    f5c51240     12000         0         0  1 80 slab

    f5c51260     13000         0         0  1 80 slab

    f5c51280     14000         0         0  1 80 slab

    f5c512a0     15000         0         0  1 80 slab

    f5c512c0     16000         0         0  1 80 slab

    f5c512e0     17000         0         0  1 80 slab

    f5c51300     18000         0         0  1 80 slab

    f5c51320     19000         0         0  1 80 slab

    f5c51340     1a000         0         0  1 80 slab

    f5c51360     1b000         0         0  1 80 slab

    f5c51380     1c000  e6c6a754     13b67  2 868 uptodate,lru,active,private

    f5c513a0     1d000         0         0  1 80 slab

    f5c513c0     1e000         0         0  1 80 slab

    f5c513e0     1f000         0         0  1 80 slab

    f5c51400     20000  e6c6a754     13bbb  2 868 uptodate,lru,active,private

    f5c51420     21000         0         0  1 80 slab

    f5c51440     22000         0         0  1 80 slab

    ...

   

  Display the "page.lru" list_head structure member in each page: 在每个页面中显示“page.lru”list_head结构成员:

 

    crash> kmem -m lru

         PAGE         lru 

    ffffea0000000000  0000000000000000,0000000000000000 

    ffffea0000000040  ffffea0000000060,ffffea0000000060 

    ffffea0000000080  ffffea00000000a0,ffffea00000000a0 

    ffffea00000000c0  ffffea00000000e0,ffffea00000000e0 

    ffffea0000000100  ffffea0000000120,ffffea0000000120 

    ffffea0000000140  ffffea0000000160,ffffea0000000160 

    ffffea0000000180  ffffea00000001a0,ffffea00000001a0 

    ffffea00000001c0  ffffea00000001e0,ffffea00000001e0 

    ffffea0000000200  ffffea0000000220,ffffea0000000220 

    ffffea0000000240  ffffea0000000260,ffffea0000000260 

    ffffea0000000280  ffffea00000002a0,ffffea00000002a0 

    ffffea00000002c0  ffffea00000002e0,ffffea00000002e0 

    ffffea0000000300  ffffea0000000320,ffffea0000000320 

    ffffea0000000340  ffffea0000000360,ffffea0000000360 

    ffffea0000000380  ffffea00000003a0,ffffea00000003a0 

    ffffea00000003c0  ffffea00000003e0,ffffea00000003e0 

    ffffea0000000400  ffff88021e5e41e8,ffffea0000002020 

    ffffea0000000440  dead000000100100,dead000000200200 

    ffffea0000000480  dead000000100100,dead000000200200 

    ffffea00000004c0  dead000000100100,dead000000200200

    ...

   

  Find the two pages that link to the page at ffffea0001dafb20

  via their page.lru list_head's next and prev pointers:

找到链接到ffffea0001dafb20页面的两个页面,通过他们的page.lru list_head的next和prev指针:

    crash> kmem -m lru | grep ffffea0001dafb20

    ffffea000006b500  ffffea0001dafb20,ffffea0001eb4520 

    ffffea0000127d80  ffffea000152b620,ffffea0001dafb20  

   

  Find all of the combined slab/page structures that are used by

  the kmalloc-8192 slab cache:

找到kmalloc-8192 slab cache使用的所有组合slab / page结构:

    crash> kmem -s kmalloc-8192

    CACHE             OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME

    ffff880215802e00     8192         65        80     20    32k  kmalloc-8192

    crash> kmem -m slab_cache | grep ffff880215802e00

    ffffea0004117800  ffff880215802e00 

    ffffea00041ca600  ffff880215802e00 

    ffffea00044ab200  ffff880215802e00 

    ffffea0004524000  ffff880215802e00 

    ffffea0004591600  ffff880215802e00 

    ffffea00047eac00  ffff880215802e00 

    ffffea0004875800  ffff880215802e00 

    ffffea0008357a00  ffff880215802e00 

    ffffea0008362a00  ffff880215802e00 

    ffffea00083b9400  ffff880215802e00 

    ffffea00083c1000  ffff880215802e00 

    ffffea00083c1e00  ffff880215802e00 

    ffffea00083c2000  ffff880215802e00 

    ffffea00083c2a00  ffff880215802e00 

    ffffea00083d2000  ffff880215802e00 

    ffffea00083d3e00  ffff880215802e00 

    ffffea0008407c00  ffff880215802e00 

    ffffea000848ce00  ffff880215802e00 

    ffffea0008491800  ffff880215802e00 

    ffffea00084bf800  ffff880215802e00 

   

  Use the commands above with a page pointer or a physical address argument:

使用上面的命令和页面指针或物理地址参数:

    crash> kmem -f c40425b0

    NODE

      0

    ZONE  NAME        SIZE    FREE  MEM_MAP   START_PADDR  START_MAPNR

      0   DMA         4096    3372  c4000040       0            0    

    AREA  SIZE  FREE_AREA_STRUCT

      2    16k      c02eb01c     

    c40425b0  (c40425b0 is 1st of 4 pages)

 

    crash> kmem -p c25a9c00

      PAGE     PHYSICAL   MAPPING    INDEX CNT FLAGS

    c25a9c00    1fe0000  f429d2e4   21fe3eb  2 800828 uptodate,lru,private

 

    crash> kmem -p 1fe0000

      PAGE     PHYSICAL   MAPPING    INDEX CNT FLAGS

    c25a9c00    1fe0000  f429d2e4   21fe3eb  2 800828 uptodate,lru,private

 

  Display the mapped memory regions allocated by vmalloc():显示vmalloc()分配的映射内存区域:

 

    crash> kmem -v

    VMAP_AREA  VM_STRUCT     ADDRESS RANGE        SIZE

    f7048e00   f7048e40   f7dfe000 - f7e00000     8192

    f7048ec0   f7048f00   f7e00000 - f7e05000    20480

    f7151fc0   f7159540   f7e06000 - f7e08000     8192

    f704da80   f704dac0   f7e0a000 - f7e0c000     8192

    f704d980   f704d9c0   f7e0e000 - f7e10000     8192

    f724f1c0   f724f200   f7e12000 - f7e14000     8192

    f704d840   f704d880   f7e14000 - f7e17000    12288

    f704d400   f704d440   f7e18000 - f7e1d000    20480

    f73f5840   f73f5880   f7e1e000 - f7e2a000    49152

    f6334480   f63344c0   f7e2c000 - f7e2e000     8192

    f635d600   f635d640   f7e4a000 - f7e5b000    69632

    f41b4700   f5771a40   f7e6e000 - f7e70000     8192

    f622f6c0   f622f700   f7e71000 - f7e79000    32768

    f63a9f00   f63a9f40   f7e84000 - f7e87000    12288

    f63a9d00   f63a9d40   f7e8f000 - f7e91000     8192

    f5546480   f39db800   f7eb8000 - f7ec2000    40960

    f5ce9640   f5777e80   f7ec6000 - f7ed1000    45056

    f63a9b00   f63a9b40   f7ed1000 - f7efd000   180224

    f63a9800   f63a9840   f7f1d000 - f7f26000    36864

    f63a9640   f63a9880   f7f43000 - f7f52000    61440

    f5771f00   f4183840   f7f53000 - f7f64000    69632

    f5ce9a00   f30c4a00   f7fcf000 - f801e000   323584

    f63a93c0   f63a9400   f805d000 - f8132000   872448

    f63a91c0   f63a95c0   f814b000 - f8150000    20480

    f63a9140   f63a9180   f8151000 - f8352000  2101248

    f624eb00   f624eb40   f8353000 - f8355000     8192

    f563eb40   f563eb80   f8356000 - f835e000    32768

    f63d5ec0   f63d5f00   f8360000 - f8371000    69632

    f63d5cc0   f6287b80   f83c2000 - f84c3000  1052672

    ...

 

  Dump the virtual memory statistics: 显示虚拟内存统计信息:

 

    crash> kmem -V

      VM_ZONE_STAT:

             NR_FREE_PAGES: 30085

     NR_ZONE_INACTIVE_ANON: 1985

       NR_ZONE_ACTIVE_ANON: 338275

     NR_ZONE_INACTIVE_FILE: 19760

       NR_ZONE_ACTIVE_FILE: 12018

       NR_ZONE_UNEVICTABLE: 0

     NR_ZONE_WRITE_PENDING: 4

                  NR_MLOCK: 0

              NR_PAGETABLE: 1562

        NR_KERNEL_STACK_KB: 1728

                 NR_BOUNCE: 0

         NR_FREE_CMA_PAGES: 0

   

      VM_NODE_STAT:

          NR_INACTIVE_ANON: 1985

            NR_ACTIVE_ANON: 338275

          NR_INACTIVE_FILE: 19760

            NR_ACTIVE_FILE: 12018

            NR_UNEVICTABLE: 0

       NR_SLAB_RECLAIMABLE: 3111

     NR_SLAB_UNRECLAIMABLE: 3039

          NR_ISOLATED_ANON: 0

          NR_ISOLATED_FILE: 0

        WORKINGSET_REFAULT: 0

       WORKINGSET_ACTIVATE: 0

    WORKINGSET_NODERECLAIM: 0

            NR_ANON_MAPPED: 338089

            NR_FILE_MAPPED: 8102

             NR_FILE_PAGES: 33949

             NR_FILE_DIRTY: 4

              NR_WRITEBACK: 0

         NR_WRITEBACK_TEMP: 0

                  NR_SHMEM: 2171

             NR_SHMEM_THPS: 0

        NR_SHMEM_PMDMAPPED: 0

              NR_ANON_THPS: 86

           NR_UNSTABLE_NFS: 0

           NR_VMSCAN_WRITE: 0

       NR_VMSCAN_IMMEDIATE: 0

                NR_DIRTIED: 155

                NR_WRITTEN: 75

   

      VM_NUMA_STAT:

                  NUMA_HIT: 575409

                 NUMA_MISS: 0

              NUMA_FOREIGN: 0

       NUMA_INTERLEAVE_HIT: 12930

                NUMA_LOCAL: 575409

                NUMA_OTHER: 0

   

      VM_EVENT_STATES:

                           PGPGIN: 282492

                          PGPGOUT: 6773

                           PSWPIN: 0

                          PSWPOUT: 0

                      PGALLOC_DMA: 0

                    PGALLOC_DMA32: 693092

                   PGALLOC_NORMAL: 0

    ...

   

  Display hugepage hstate information: 显示hugepage hstate信息:

 

    crash> kmem -h

         HSTATE        SIZE    FREE   TOTAL  NAME

    ffffffff81f7a800    2MB      10      64  hugepages-2048kB

 

  Determine (and verify) the page cache size: 确定(并验证)页面缓存大小:

 

    crash> kmem -c

    page_cache_size: 18431 (verified)

 

  Dump all pages in the page_hash_table: 显示page_hash_table中的所有页面:

 

    crash> kmem -C

    page_hash_table[0]

    c0325b40

    c03a0598

    c03b4070

    c0364c28

    c0357690

    c02ef338

    c02d7c60

    c02c11e0

    c02a3d70

    page_hash_table[1]

    c0394ce8

    c03c4218

    c03b4048

    c0364c00

    c0357668

    c02d6e50

    c02d7dc8

    c02c0cb8

    c02db630

    c02ebad0

    page_hash_table[2]

    c037e808

    c034e248

    c03b4020

    c02ec868

    c03baa60

    ...

    page_hash_table[2047]

    c033a798

    c0390b48

    c03b4098

    c0364890

    c03576b8

    c02d2c38

    c02d7c88

    c02de5d8

   

    page_cache_size: 18437 (verified)

   

  Find the page_hash_table entry containing page c03576b8: 找到包含页面c03576b8的page_hash_table条目:

 

    crash> kmem -c c03576b8

    page_hash_table[2047]

    c03576b8

 

  Display kmalloc() slab data:

 

    crash> kmem -s

    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME

    c02eadc0      232         58        68      4     4k  kmem_cache

    f79c2888      128          0         0      0     4k  ip_vs_conn

    f79c2970       96          0         0      0     4k  tcp_tw_bucket

    f79c2a58       32         12       565      5     4k  tcp_bind_bucket

    f79c2b40       64          0        59      1     4k  tcp_open_request

    f79c2c28       64          1        59      1     4k  inet_peer_cache

    f79c2d10       32         11       339      3     4k  ip_fib_hash

    f79c2df8      160          8       120      5     4k  ip_dst_cache

    f79c2ee0      128          1        30      1     4k  arp_cache

    c8402970       96      30208     37800    945     4k  blkdev_requests

    c8402a58      384          0         0      0     4k  nfs_read_data

    c8402b40      384          0         0      0     4k  nfs_write_data

    c8402c28       96          0         0      0     4k  nfs_page

    c8402d10       20          0         0      0     4k  dnotify cache

    c8402df8       92          3       336      8     4k  file lock cache

    c8402ee0       16          0         0      0     4k  fasync cache

    c84027a0       32          3       339      3     4k  uid_cache

    c84026b8      160        320       624     26     4k  skbuff_head_cache

    c84025d0      832         32       180     20     8k  sock

    c84024e8      132          0       203      7     4k  sigqueue

    c8402400       64         19       472      8     4k  cdev_cache

    c8402318       64          8       236      4     4k  bdev_cache

    c8402230       96         11       120      3     4k  mnt_cache

    c8402148      480        817       848    106     4k  inode_cache

    c8402060      128       1352      1470     49     4k  dentry_cache

    c8403ee0       96        244       440     11     4k  filp

    c8403df8     4096          0        12     12     4k  names_cache

    c8403d10       96      14936     16000    400     4k  buffer_head

    c8403c28      128         25       240      8     4k  mm_struct

    c8403b40       64        393      1298     22     4k  vm_area_struct

    c8403a58       64         30       472      8     4k  fs_cache

    c8403970      416         30       135     15     4k  files_cache

    c8403888     1312         32        99     33     4k  signal_act

    c84037a0   131072          0         0      0   128k  size-131072(DMA)

    c84036b8   131072          1         1      1   128k  size-131072

    c84035d0    65536          0         0      0    64k  size-65536(DMA)

    c84034e8    65536          0         0      0    64k  size-65536

    c8403400    32768          0         0      0    32k  size-32768(DMA)

    c8403318    32768          0         1      1    32k  size-32768

    c8403230    16384          0         0      0    16k  size-16384(DMA)

    c8403148    16384          0         0      0    16k  size-16384

    c8403060     8192          0         0      0     8k  size-8192(DMA)

    c8401ee0     8192          1         2      2     8k  size-8192

    c8401df8     4096          0         0      0     4k  size-4096(DMA)

    c8401d10     4096         30        30     30     4k  size-4096

    c8401c28     2048          0         0      0     4k  size-2048(DMA)

    c8401b40     2048         37       132     66     4k  size-2048

    c8401a58     1024          0         0      0     4k  size-1024(DMA)

    c8401970     1024        301       328     82     4k  size-1024

    c8401888      512          0         0      0     4k  size-512(DMA)

    c84017a0      512        141       168     21     4k  size-512

    c84016b8      256          0         0      0     4k  size-256(DMA)

    c84015d0      256         80       435     29     4k  size-256

    c84014e8      128          0         0      0     4k  size-128(DMA)

    c8401400      128        508       840     28     4k  size-128

    c8401318       64          0         0      0     4k  size-64(DMA)

    c8401230       64        978      1357     23     4k  size-64

    c8401148       32          0         0      0     4k  size-32(DMA)

    c8401060       32       1244      1808     16     4k  size-32

 

  Display all slab data in the "arp_cache" cache:

 

    crash> kmem -S arp_cache

    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME

    f79c2ee0      128          1        30      1     4k  arp_cache

    SLAB      MEMORY    TOTAL  ALLOCATED  FREE

    f729d000  f729d0a0     30          1    29

    FREE / [ALLOCATED]

       f729d0a0  (cpu 7 cache)

       f729d120  (cpu 7 cache)

       f729d1a0  (cpu 7 cache)

       f729d220  (cpu 7 cache)

       f729d2a0  (cpu 7 cache)

       f729d320  (cpu 7 cache)

       f729d3a0  (cpu 7 cache)

       f729d420  (cpu 7 cache)

       f729d4a0  (cpu 7 cache)

       f729d520  (cpu 7 cache)

       f729d5a0  (cpu 7 cache)

       f729d620  (cpu 7 cache)

       f729d6a0  (cpu 7 cache)

       f729d720  (cpu 7 cache)

       f729d7a0  (cpu 7 cache)

       f729d820  (cpu 7 cache)

       f729d8a0  (cpu 7 cache)

       f729d920  (cpu 7 cache)

       f729d9a0  (cpu 7 cache)

       f729da20  (cpu 7 cache)

       f729daa0  (cpu 7 cache)

       f729db20  (cpu 7 cache)

       f729dba0  (cpu 7 cache)

       f729dc20  (cpu 7 cache)

       f729dca0  (cpu 7 cache)

       f729dd20  (cpu 7 cache)

       f729dda0  (cpu 7 cache)

       f729de20  (cpu 7 cache)

       f729dea0  (cpu 3 cache)

      [f729df20]

 

  Search the kmalloc() slab subsystem for address c3fbdb60:

 

    crash> kmem -s c3fbdb60

    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME

    c8402970       96      30208     37800    945     4k  blkdev_requests

    SLAB      MEMORY    TOTAL  ALLOCATED  FREE

    c3fbd020  c3fbd0e0     40         40     0

    FREE / [ALLOCATED]

      [c3fbdb60]

 

  Make a generic search (no flags) for the same address c3fbdb60:

 

    crash> kmem c3fbdb60

    CACHE     OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME

    c8402970       96      30208     37800    945     4k  blkdev_requests

    SLAB      MEMORY    TOTAL  ALLOCATED  FREE

    c3fbd020  c3fbd0e0     40         40     0

    FREE / [ALLOCATED]

      [c3fbdb60]

 

      PAGE     PHYSICAL   MAPPING    INDEX CNT FLAGS

    c410ee74    3fbd000         0         0  1 slab

 

  Display memory node data (if supported):

 

    crash> kmem -n

    NODE    SIZE      PGLIST_DATA       BOOTMEM_DATA       NODE_ZONES  

      0    262095   ffff88003d52a000        ----        ffff88003d52a000

                                                        ffff88003d52a740

                                                        ffff88003d52ae80

                                                        ffff88003d52b5c0

        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      258000  ffffea0000040000      1000000         4096

      2   Normal          0                 0            0            0

      3   Movable         0                 0            0            0

   

    -------------------------------------------------------------------

   

    NR      SECTION        CODED_MEM_MAP        MEM_MAP       STATE PFN

     0  ffff88003d4d9000  ffffea0000000000  ffffea0000000000   PM   0

     1  ffff88003d4d9020  ffffea0000000000  ffffea0000200000   PM   32768

     2  ffff88003d4d9040  ffffea0000000000  ffffea0000400000   PM   65536

     3  ffff88003d4d9060  ffffea0000000000  ffffea0000600000   PM   98304

     4  ffff88003d4d9080  ffffea0000000000  ffffea0000800000   PM   131072

     5  ffff88003d4d90a0  ffffea0000000000  ffffea0000a00000   PM   163840

     6  ffff88003d4d90c0  ffffea0000000000  ffffea0000c00000   PM   196608

     7  ffff88003d4d90e0  ffffea0000000000  ffffea0000e00000   PM   229376

   

       MEM_BLOCK        NAME     PHYSICAL RANGE      STATE          SECTIONS

     ffff88003a707c00  memory0          0 - 7ffffff  ONLINE         0

     ffff88003a6e0000  memory1    8000000 - fffffff  ONLINE         1

     ffff88003a6e1000  memory2   10000000 - 17ffffff ONLINE         2

     ffff88003a6e1400  memory3   18000000 - 1fffffff ONLINE         3

     ffff88003a6e1800  memory4   20000000 - 27ffffff ONLINE         4

     ffff88003a6e0400  memory5   28000000 - 2fffffff ONLINE         5

     ffff88003a6e0800  memory6   30000000 - 37ffffff ONLINE         6

     ffff88003a6e0c00  memory7   38000000 - 3fffffff ONLINE         7

 

  Translate a page structure's flags field contents:

 

    crash> kmem -g 4080

    FLAGS: 4080

      PAGE-FLAG        BIT  VALUE

      PG_slab            7  0000080

      PG_head           14  0004000

    crash>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值