sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget0/translations/zh_CN/admin-guide/kdump/vmcoreinfomodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/zh_TW/admin-guide/kdump/vmcoreinfomodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/it_IT/admin-guide/kdump/vmcoreinfomodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ja_JP/admin-guide/kdump/vmcoreinfomodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/ko_KR/admin-guide/kdump/vmcoreinfomodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget0/translations/sp_SP/admin-guide/kdump/vmcoreinfomodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h VMCOREINFOh]h VMCOREINFO}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhJ/var/lib/git/docbuild/linux/Documentation/admin-guide/kdump/vmcoreinfo.rsthKubh)}(hhh](h)}(h What is it?h]h What is it?}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hX)VMCOREINFO is a special ELF note section. It contains various information from the kernel like structure size, page size, symbol values, field offsets, etc. These data are packed into an ELF note section and used by user-space tools like crash and makedumpfile to analyze a kernel's memory layout.h]hX+VMCOREINFO is a special ELF note section. It contains various information from the kernel like structure size, page size, symbol values, field offsets, etc. These data are packed into an ELF note section and used by user-space tools like crash and makedumpfile to analyze a kernel’s memory layout.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h] what-is-itah ]h"] what is it?ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hCommon variablesh]hCommon variables}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hinit_uts_ns.name.releaseh]hinit_uts_ns.name.release}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hThe version of the Linux kernel. Used to find the corresponding source code from which the kernel has been built. For example, crash uses it to find the corresponding vmlinux in order to process vmcore.h]hThe version of the Linux kernel. Used to find the corresponding source code from which the kernel has been built. For example, crash uses it to find the corresponding vmlinux in order to process vmcore.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]init-uts-ns-name-releaseah ]h"]init_uts_ns.name.releaseah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h PAGE_SIZEh]h PAGE_SIZE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hThe size of a page. It is the smallest unit of data used by the memory management facilities. It is usually 4096 bytes of size and a page is aligned on 4096 bytes. Used for computing page addresses.h]hThe size of a page. It is the smallest unit of data used by the memory management facilities. It is usually 4096 bytes of size and a page is aligned on 4096 bytes. Used for computing page addresses.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] page-sizeah ]h"] page_sizeah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h init_uts_nsh]h init_uts_ns}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hhhhhK ubh)}(hThe UTS namespace which is used to isolate two specific elements of the system that relate to the uname(2) system call. It is named after the data structure used to store information returned by the uname(2) system call.h]hThe UTS namespace which is used to isolate two specific elements of the system that relate to the uname(2) system call. It is named after the data structure used to store information returned by the uname(2) system call.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hj?hhubh)}(hUser-space tools can get the kernel name, host name, kernel release number, kernel version, architecture name and OS type from it.h]hUser-space tools can get the kernel name, host name, kernel release number, kernel version, architecture name and OS type from it.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hj?hhubeh}(h] init-uts-nsah ]h"] init_uts_nsah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(h(uts_namespace, name)h]h(uts_namespace, name)}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthhhhhK+ubh)}(htOffset of the name's member. Crash Utility and Makedumpfile get the start address of the init_uts_ns.name from this.h]hvOffset of the name’s member. Crash Utility and Makedumpfile get the start address of the init_uts_ns.name from this.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjthhubeh}(h]uts-namespace-nameah ]h"](uts_namespace, name)ah$]h&]uh1hhhhhhhhK+ubh)}(hhh](h)}(hnode_online_maph]hnode_online_map}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK1ubh)}(hAn array node_states[N_ONLINE] which represents the set of online nodes in a system, one bit position per node number. Used to keep track of which nodes are in the system and online.h]hAn array node_states[N_ONLINE] which represents the set of online nodes in a system, one bit position per node number. Used to keep track of which nodes are in the system and online.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjhhubeh}(h]node-online-mapah ]h"]node_online_mapah$]h&]uh1hhhhhhhhK1ubh)}(hhh](h)}(hswapper_pg_dirh]hswapper_pg_dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK8ubh)}(haThe global page directory pointer of the kernel. Used to translate virtual to physical addresses.h]haThe global page directory pointer of the kernel. Used to translate virtual to physical addresses.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjhhubeh}(h]swapper-pg-dirah ]h"]swapper_pg_dirah$]h&]uh1hhhhhhhhK8ubh)}(hhh](h)}(h_stexth]h_stext}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK>ubh)}(hDefines the beginning of the text section. In general, _stext indicates the kernel start address. Used to convert a virtual address from the direct kernel map to a physical address.h]hDefines the beginning of the text section. In general, _stext indicates the kernel start address. Used to convert a virtual address from the direct kernel map to a physical address.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjhhubeh}(h]stextah ]h"]_stextah$]h&]uh1hhhhhhhhK>ubh)}(hhh](h)}(h VMALLOC_STARTh]h VMALLOC_START}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKEubh)}(hqStores the base address of vmalloc area. makedumpfile gets this value since is necessary for vmalloc translation.h]hqStores the base address of vmalloc area. makedumpfile gets this value since is necessary for vmalloc translation.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjhhubeh}(h] vmalloc-startah ]h"] vmalloc_startah$]h&]uh1hhhhhhhhKEubh)}(hhh](h)}(hmem_maph]hmem_map}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhhhKKubh)}(hPhysical addresses are translated to struct pages by treating them as an index into the mem_map array. Right-shifting a physical address PAGE_SHIFT bits converts it into a page frame number which is an index into that mem_map array.h]hPhysical addresses are translated to struct pages by treating them as an index into the mem_map array. Right-shifting a physical address PAGE_SHIFT bits converts it into a page frame number which is an index into that mem_map array.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhj7hhubh)}(h8Used to map an address to the corresponding struct page.h]h8Used to map an address to the corresponding struct page.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhj7hhubeh}(h]mem-mapah ]h"]mem_mapah$]h&]uh1hhhhhhhhKKubh)}(hhh](h)}(hcontig_page_datah]hcontig_page_data}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhKUubh)}(hjMakedumpfile gets the pglist_data structure from this symbol, which is used to describe the memory layout.h]hjMakedumpfile gets the pglist_data structure from this symbol, which is used to describe the memory layout.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjlhhubh)}(hDUser-space tools use this to exclude free pages when dumping memory.h]hDUser-space tools use this to exclude free pages when dumping memory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjlhhubeh}(h]contig-page-dataah ]h"]h$]contig_page_dataah&]uh1hhhhhhhhKU referencedKubh)}(hhh](h)}(hJmem_section|(mem_section, NR_SECTION_ROOTS)|(mem_section, section_mem_map)h]hJmem_section|(mem_section, NR_SECTION_ROOTS)|(mem_section, section_mem_map)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK]ubh)}(haThe address of the mem_section array, its length, structure size, and the section_mem_map offset.h]haThe address of the mem_section array, its length, structure size, and the section_mem_map offset.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjhhubh)}(hIt exists in the sparse memory mapping model, and it is also somewhat similar to the mem_map variable, both of them are used to translate an address.h]hIt exists in the sparse memory mapping model, and it is also somewhat similar to the mem_map variable, both of them are used to translate an address.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjhhubeh}(h]Dmem-section-mem-section-nr-section-roots-mem-section-section-mem-mapah ]h"]Jmem_section|(mem_section, nr_section_roots)|(mem_section, section_mem_map)ah$]h&]uh1hhhhhhhhK]ubh)}(hhh](h)}(hMAX_PHYSMEM_BITSh]hMAX_PHYSMEM_BITS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKgubh)}(hprintk-ringbuffer-desc-ring-text-data-ring-dict-data-ring-failah ]h"]A(printk_ringbuffer, desc_ring|text_data_ring|dict_data_ring|fail)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h prb_desc_ringh]h prb_desc_ring}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hqThe size of the prb_desc_ring structure. This structure contains information about the set of record descriptors.h]hqThe size of the prb_desc_ring structure. This structure contains information about the set of record descriptors.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] prb-desc-ringah ]h"] prb_desc_ringah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h1(prb_desc_ring, count_bits|descs|head_id|tail_id)h]h1(prb_desc_ring, count_bits|descs|head_id|tail_id)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hOffsets for the fields describing the set of record descriptors. Used by user-space tools to be able to traverse the descriptors without requiring the declaration of the structure.h]hOffsets for the fields describing the set of record descriptors. Used by user-space tools to be able to traverse the descriptors without requiring the declaration of the structure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h].prb-desc-ring-count-bits-descs-head-id-tail-idah ]h"]1(prb_desc_ring, count_bits|descs|head_id|tail_id)ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hprb_desch]hprb_desc}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hhhhhKubh)}(hiThe size of the prb_desc structure. This structure contains information about a single record descriptor.h]hiThe size of the prb_desc structure. This structure contains information about a single record descriptor.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4hhubeh}(h]prb-descah ]h"]prb_descah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h6(prb_desc, info|state_var|text_blk_lpos|dict_blk_lpos)h]h6(prb_desc, info|state_var|text_blk_lpos|dict_blk_lpos)}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hhhhhMubh)}(hOffsets for the fields describing a record descriptors. Used by user-space tools to be able to read descriptors without requiring the declaration of the structure.h]hOffsets for the fields describing a record descriptors. Used by user-space tools to be able to read descriptors without requiring the declaration of the structure.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj[hhubeh}(h]3prb-desc-info-state-var-text-blk-lpos-dict-blk-lposah ]h"]6(prb_desc, info|state_var|text_blk_lpos|dict_blk_lpos)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hprb_data_blk_lposh]hprb_data_blk_lpos}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hThe size of the prb_data_blk_lpos structure. This structure contains information about where the text or dictionary data (data block) is located within the respective data ring.h]hThe size of the prb_data_blk_lpos structure. This structure contains information about where the text or dictionary data (data block) is located within the respective data ring.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjhhubeh}(h]prb-data-blk-lposah ]h"]prb_data_blk_lposah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(h(prb_data_blk_lpos, begin|next)h]h(prb_data_blk_lpos, begin|next)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hOffsets for the fields describing the location of a data block. Used by user-space tools to be able to locate data blocks without requiring the declaration of the structure.h]hOffsets for the fields describing the location of a data block. Used by user-space tools to be able to locate data blocks without requiring the declaration of the structure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]prb-data-blk-lpos-begin-nextah ]h"](prb_data_blk_lpos, begin|next)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(h printk_infoh]h printk_info}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(h^The size of the printk_info structure. This structure contains all the meta-data for a record.h]h^The size of the printk_info structure. This structure contains all the meta-data for a record.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h] printk-infoah ]h"] printk_infoah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(h6(printk_info, seq|ts_nsec|text_len|dict_len|caller_id)h]h6(printk_info, seq|ts_nsec|text_len|dict_len|caller_id)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMubh)}(hOffsets for the fields providing the meta-data for a record. Used by user-space tools to be able to read the information without requiring the declaration of the structure.h]hOffsets for the fields providing the meta-data for a record. Used by user-space tools to be able to read the information without requiring the declaration of the structure.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjhhubeh}(h]3printk-info-seq-ts-nsec-text-len-dict-len-caller-idah ]h"]6(printk_info, seq|ts_nsec|text_len|dict_len|caller_id)ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(h prb_data_ringh]h prb_data_ring}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM"ubh)}(hhThe size of the prb_data_ring structure. This structure contains information about a set of data blocks.h]hhThe size of the prb_data_ring structure. This structure contains information about a set of data blocks.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM$hjhhubeh}(h] prb-data-ringah ]h"] prb_data_ringah$]h&]uh1hhhhhhhhM"ubh)}(hhh](h)}(h3(prb_data_ring, size_bits|data|head_lpos|tail_lpos)h]h3(prb_data_ring, size_bits|data|head_lpos|tail_lpos)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhhhhhM(ubh)}(hOffsets for the fields describing a set of data blocks. Used by user-space tools to be able to access the data blocks without requiring the declaration of the structure.h]hOffsets for the fields describing a set of data blocks. Used by user-space tools to be able to access the data blocks without requiring the declaration of the structure.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM*hjEhhubeh}(h]0prb-data-ring-size-bits-data-head-lpos-tail-lposah ]h"]3(prb_data_ring, size_bits|data|head_lpos|tail_lpos)ah$]h&]uh1hhhhhhhhM(ubh)}(hhh](h)}(h atomic_long_th]h atomic_long_t}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhM/ubh)}(hThe size of the atomic_long_t structure. Used by user-space tools to be able to copy the full structure, regardless of its architecture-specific implementation.h]hThe size of the atomic_long_t structure. Used by user-space tools to be able to copy the full structure, regardless of its architecture-specific implementation.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hjlhhubeh}(h] atomic-long-tah ]h"] atomic_long_tah$]h&]uh1hhhhhhhhM/ubh)}(hhh](h)}(h(atomic_long_t, counter)h]h(atomic_long_t, counter)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM6ubh)}(hOffset for the long value of an atomic_long_t variable. Used by user-space tools to access the long value without requiring the architecture-specific declaration.h]hOffset for the long value of an atomic_long_t variable. Used by user-space tools to access the long value without requiring the architecture-specific declaration.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM8hjhhubeh}(h]atomic-long-t-counterah ]h"](atomic_long_t, counter)ah$]h&]uh1hhhhhhhhM6ubh)}(hhh](h)}(h$(free_area.free_list, MIGRATE_TYPES)h]h$(free_area.free_list, MIGRATE_TYPES)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM=ubh)}(hThe number of migrate types for pages. The free_list is described by the array. Used by tools to compute the number of free pages.h]hThe number of migrate types for pages. The free_list is described by the array. Used by tools to compute the number of free pages.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM?hjhhubeh}(h]!free-area-free-list-migrate-typesah ]h"]$(free_area.free_list, migrate_types)ah$]h&]uh1hhhhhhhhM=ubh)}(hhh](h)}(h NR_FREE_PAGESh]h NR_FREE_PAGES}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMCubh)}(hvOn linux-2.6.21 or later, the number of free pages is in vm_stat[NR_FREE_PAGES]. Used to get the number of free pages.h]hvOn linux-2.6.21 or later, the number of free pages is in vm_stat[NR_FREE_PAGES]. Used to get the number of free pages.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhjhhubeh}(h] nr-free-pagesah ]h"] nr_free_pagesah$]h&]uh1hhhhhhhhMCubh)}(hhh](h)}(hYPG_lru|PG_private|PG_swapcache|PG_swapbacked|PG_slab|PG_hwpoision|PG_head_mask|PG_hugetlbh]hYPG_lru|PG_private|PG_swapcache|PG_swapbacked|PG_slab|PG_hwpoision|PG_head_mask|PG_hugetlb}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMIubh)}(hVPage attributes. These flags are used to filter various unnecessary for dumping pages.h]hVPage attributes. These flags are used to filter various unnecessary for dumping pages.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhjhhubeh}(h]Ypg-lru-pg-private-pg-swapcache-pg-swapbacked-pg-slab-pg-hwpoision-pg-head-mask-pg-hugetlbah ]h"]Ypg_lru|pg_private|pg_swapcache|pg_swapbacked|pg_slab|pg_hwpoision|pg_head_mask|pg_hugetlbah$]h&]uh1hhhhhhhhMIubh)}(hhh](h)}(hMPAGE_BUDDY_MAPCOUNT_VALUE(~PG_buddy)|PAGE_OFFLINE_MAPCOUNT_VALUE(~PG_offline)h]hMPAGE_BUDDY_MAPCOUNT_VALUE(~PG_buddy)|PAGE_OFFLINE_MAPCOUNT_VALUE(~PG_offline)}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hhhhhMOubh)}(h[More page attributes. These flags are used to filter various unnecessary for dumping pages.h]h[More page attributes. These flags are used to filter various unnecessary for dumping pages.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhj/hhubeh}(h]Ipage-buddy-mapcount-value-pg-buddy-page-offline-mapcount-value-pg-offlineah ]h"]Mpage_buddy_mapcount_value(~pg_buddy)|page_offline_mapcount_value(~pg_offline)ah$]h&]uh1hhhhhhhhMOubeh}(h]common-variablesah ]h"]common variablesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hx86_64h]hx86_64}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hhhhhMVubh)}(hhh](h)}(h phys_baseh]h phys_base}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohhhhhMYubh)}(hgUsed to convert the virtual address of an exported kernel symbol to its corresponding physical address.h]hgUsed to convert the virtual address of an exported kernel symbol to its corresponding physical address.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM[hjohhubeh}(h] phys-baseah ]h"] phys_baseah$]h&]uh1hhj^hhhhhMYubh)}(hhh](h)}(h init_top_pgth]h init_top_pgt}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM_ubh)}(hUsed to walk through the whole page table and convert virtual addresses to physical addresses. The init_top_pgt is somewhat similar to swapper_pg_dir, but it is only used in x86_64.h]hUsed to walk through the whole page table and convert virtual addresses to physical addresses. The init_top_pgt is somewhat similar to swapper_pg_dir, but it is only used in x86_64.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahjhhubeh}(h] init-top-pgtah ]h"] init_top_pgtah$]h&]uh1hhj^hhhhhM_ubh)}(hhh](h)}(hpgtable_l5_enabledh]hpgtable_l5_enabled}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMfubh)}(hRUser-space tools need to know whether the crash kernel was in 5-level paging mode.h]hRUser-space tools need to know whether the crash kernel was in 5-level paging mode.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhhjhhubeh}(h]pgtable-l5-enabledah ]h"]pgtable_l5_enabledah$]h&]uh1hhj^hhhhhMfubh)}(hhh](h)}(h node_datah]h node_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMlubh)}(h~This is a struct pglist_data array and stores all NUMA nodes information. Makedumpfile gets the pglist_data structure from it.h]h~This is a struct pglist_data array and stores all NUMA nodes information. Makedumpfile gets the pglist_data structure from it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMnhjhhubeh}(h] node-dataah ]h"] node_dataah$]h&]uh1hhj^hhhhhMlubh)}(hhh](h)}(h(node_data, MAX_NUMNODES)h]h(node_data, MAX_NUMNODES)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMrubh)}(h&The maximum number of nodes in system.h]h&The maximum number of nodes in system.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMthj hhubeh}(h]node-data-max-numnodesah ]h"](node_data, max_numnodes)ah$]h&]uh1hhj^hhhhhMrubh)}(hhh](h)}(h KERNELOFFSETh]h KERNELOFFSET}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2 hhhhhMwubh)}(hkThe kernel randomization offset. Used to compute the page offset. If KASLR is disabled, this value is zero.h]hkThe kernel randomization offset. Used to compute the page offset. If KASLR is disabled, this value is zero.}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMyhj2 hhubeh}(h] kerneloffsetah ]h"]h$] kerneloffsetah&]uh1hhj^hhhhhMwjKubh)}(hhh](h)}(hKERNEL_IMAGE_SIZEh]hKERNEL_IMAGE_SIZE}(hj\ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjY hhhhhM}ubh)}(hVCurrently unused by Makedumpfile. Used to compute the module virtual address by Crash.h]hVCurrently unused by Makedumpfile. Used to compute the module virtual address by Crash.}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjY hhubeh}(h]kernel-image-sizeah ]h"]kernel_image_sizeah$]h&]uh1hhj^hhhhhM}ubh)}(hhh](h)}(hsme_maskh]hsme_mask}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hXcAMD-specific with SME support: it indicates the secure memory encryption mask. Makedumpfile tools need to know whether the crash kernel was encrypted. If SME is enabled in the first kernel, the crash kernel's page table entries (pgd/pud/pmd/pte) contain the memory encryption mask. This is used to remove the SME mask and obtain the true physical address.h]hXeAMD-specific with SME support: it indicates the secure memory encryption mask. Makedumpfile tools need to know whether the crash kernel was encrypted. If SME is enabled in the first kernel, the crash kernel’s page table entries (pgd/pud/pmd/pte) contain the memory encryption mask. This is used to remove the SME mask and obtain the true physical address.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hCurrently, sme_mask stores the value of the C-bit position. If needed, additional SME-relevant info can be placed in that variable.h]hCurrently, sme_mask stores the value of the C-bit position. If needed, additional SME-relevant info can be placed in that variable.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(h For example::h]h For example:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh literal_block)}(h[ misc ][ enc bit ][ other misc SME info ] 0000_0000_0000_0000_1000_0000_0000_0000_0000_0000_..._0000 63 59 55 51 47 43 39 35 31 27 ... 3h]h[ misc ][ enc bit ][ other misc SME info ] 0000_0000_0000_0000_1000_0000_0000_0000_0000_0000_..._0000 63 59 55 51 47 43 39 35 31 27 ... 3}hj sbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1j hhhMhj hhubeh}(h]sme-maskah ]h"]sme_maskah$]h&]uh1hhj^hhhhhMubeh}(h]x86-64ah ]h"]x86_64ah$]h&]uh1hhhhhhhhMVubh)}(hhh](h)}(hx86_32h]hx86_32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(hX86_PAEh]hX86_PAE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hXDenotes whether physical address extensions are enabled. It has the cost of a higher page table lookup overhead, and also consumes more page table space per process. Used to check whether PAE was enabled in the crash kernel when converting virtual addresses to physical addresses.h]hXDenotes whether physical address extensions are enabled. It has the cost of a higher page table lookup overhead, and also consumes more page table space per process. Used to check whether PAE was enabled in the crash kernel when converting virtual addresses to physical addresses.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]x86-paeah ]h"]x86_paeah$]h&]uh1hhj hhhhhMubeh}(h]x86-32ah ]h"]x86_32ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hARM64h]hARM64}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(hVA_BITSh]hVA_BITS}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. hhhhhMubh)}(h\The maximum number of bits for virtual addresses. Used to compute the virtual memory ranges.h]h\The maximum number of bits for virtual addresses. Used to compute the virtual memory ranges.}(hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj. hhubeh}(h]va-bitsah ]h"]h$]va_bitsah&]uh1hhj hhhhhMjKubh)}(hhh](h)}(hkimage_voffseth]hkimage_voffset}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU hhhhhMubh)}(hmThe offset between the kernel virtual and physical mappings. Used to translate virtual to physical addresses.h]hmThe offset between the kernel virtual and physical mappings. Used to translate virtual to physical addresses.}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjU hhubeh}(h]kimage-voffsetah ]h"]kimage_voffsetah$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(h PHYS_OFFSETh]h PHYS_OFFSET}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj| hhhhhMubh)}(hIndicates the physical address of the start of memory. Similar to kimage_voffset, which is used to translate virtual to physical addresses.h]hIndicates the physical address of the start of memory. Similar to kimage_voffset, which is used to translate virtual to physical addresses.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj| hhubeh}(h] phys-offsetah ]h"] phys_offsetah$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(h KERNELOFFSETh]h KERNELOFFSET}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hkThe kernel randomization offset. Used to compute the page offset. If KASLR is disabled, this value is zero.h]hkThe kernel randomization offset. Used to compute the page offset. If KASLR is disabled, this value is zero.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]id1ah ]h"]h$]jW ah&]uh1hhj hhhhhMjKubh)}(hhh](h)}(h KERNELPACMASKh]h KERNELPACMASK}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hRThe mask to extract the Pointer Authentication Code from a kernel virtual address.h]hRThe mask to extract the Pointer Authentication Code from a kernel virtual address.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h] kernelpacmaskah ]h"] kernelpacmaskah$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(h TCR_EL1.T1SZh]h TCR_EL1.T1SZ}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hlIndicates the size offset of the memory region addressed by TTBR1_EL1. The region size is 2^(64-T1SZ) bytes.h]hlIndicates the size offset of the memory region addressed by TTBR1_EL1. The region size is 2^(64-T1SZ) bytes.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hTTBR1_EL1 is the table base address register specified by ARMv8-A architecture which is used to lookup the page-tables for the Virtual addresses in the higher VA range (refer to ARMv8 ARM document for more details).h]hTTBR1_EL1 is the table base address register specified by ARMv8-A architecture which is used to lookup the page-tables for the Virtual addresses in the higher VA range (refer to ARMv8 ARM document for more details).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h] tcr-el1-t1szah ]h"] tcr_el1.t1szah$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(hMMODULES_VADDR|MODULES_END|VMALLOC_START|VMALLOC_END|VMEMMAP_START|VMEMMAP_ENDh]hMMODULES_VADDR|MODULES_END|VMALLOC_START|VMALLOC_END|VMEMMAP_START|VMEMMAP_END}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj% hhhhhMubhdefinition_list)}(hhh]hdefinition_list_item)}(hUsed to get the correct ranges: MODULES_VADDR ~ MODULES_END-1 : Kernel module space. VMALLOC_START ~ VMALLOC_END-1 : vmalloc() / ioremap() space. VMEMMAP_START ~ VMEMMAP_END-1 : vmemmap region, used for struct page array. h](hterm)}(hUsed to get the correct ranges:h]hUsed to get the correct ranges:}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1jA hhhMhj= ubh definition)}(hhh]h)}(hMODULES_VADDR ~ MODULES_END-1 : Kernel module space. VMALLOC_START ~ VMALLOC_END-1 : vmalloc() / ioremap() space. VMEMMAP_START ~ VMEMMAP_END-1 : vmemmap region, used for struct page array.h]hMODULES_VADDR ~ MODULES_END-1 : Kernel module space. VMALLOC_START ~ VMALLOC_END-1 : vmalloc() / ioremap() space. VMEMMAP_START ~ VMEMMAP_END-1 : vmemmap region, used for struct page array.}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjS ubah}(h]h ]h"]h$]h&]uh1jQ hj= ubeh}(h]h ]h"]h$]h&]uh1j; hhhMhj8 ubah}(h]h ]h"]h$]h&]uh1j6 hj% hhhhhNubeh}(h]Mmodules-vaddr-modules-end-vmalloc-start-vmalloc-end-vmemmap-start-vmemmap-endah ]h"]Mmodules_vaddr|modules_end|vmalloc_start|vmalloc_end|vmemmap_start|vmemmap_endah$]h&]uh1hhj hhhhhMubeh}(h]arm64ah ]h"]arm64ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(harmh]harm}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(hARM_LPAEh]hARM_LPAE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hIt indicates whether the crash kernel supports large physical address extensions. Used to translate virtual to physical addresses.h]hIt indicates whether the crash kernel supports large physical address extensions. Used to translate virtual to physical addresses.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]arm-lpaeah ]h"]arm_lpaeah$]h&]uh1hhj hhhhhMubeh}(h]armah ]h"]armah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hs390h]hs390}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(h lowcore_ptrh]h lowcore_ptr}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hiAn array with a pointer to the lowcore of every CPU. Used to print the psw and all registers information.h]hiAn array with a pointer to the lowcore of every CPU. Used to print the psw and all registers information.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h] lowcore-ptrah ]h"] lowcore_ptrah$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(h high_memoryh]h high_memory}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hBUsed to get the vmalloc_start address from the high_memory symbol.h]hBUsed to get the vmalloc_start address from the high_memory symbol.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h] high-memoryah ]h"] high_memoryah$]h&]uh1hhj hhhhhMubh)}(hhh](h)}(h(lowcore_ptr, NR_CPUS)h]h(lowcore_ptr, NR_CPUS)}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj% hhhhhMubh)}(hThe maximum number of CPUs.h]hThe maximum number of CPUs.}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj% hhubeh}(h]lowcore-ptr-nr-cpusah ]h"](lowcore_ptr, nr_cpus)ah$]h&]uh1hhj hhhhhMubeh}(h]s390ah ]h"]s390ah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hpowerpch]hpowerpc}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjT hhhhhMubh)}(hhh](h)}(h#node_data|(node_data, MAX_NUMNODES)h]h#node_data|(node_data, MAX_NUMNODES)}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje hhhhhMubh)}(h See above.h]h See above.}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhje hhubeh}(h] node-data-node-data-max-numnodesah ]h"]h$]#node_data|(node_data, max_numnodes)ah&]uh1hhjT hhhhhMjKubh)}(hhh](h)}(hcontig_page_datah]hcontig_page_data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(h See above.h]h See above.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]id2ah ]h"]h$]jah&]uh1hhjT hhhhhMjKubh)}(hhh](h)}(h vmemmap_listh]h vmemmap_list}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hX The vmemmap_list maintains the entire vmemmap physical mapping. Used to get vmemmap list count and populated vmemmap regions info. If the vmemmap address translation information is stored in the crash kernel, it is used to translate vmemmap kernel virtual addresses.h]hX The vmemmap_list maintains the entire vmemmap physical mapping. Used to get vmemmap list count and populated vmemmap regions info. If the vmemmap address translation information is stored in the crash kernel, it is used to translate vmemmap kernel virtual addresses.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h] vmemmap-listah ]h"] vmemmap_listah$]h&]uh1hhjT hhhhhMubh)}(hhh](h)}(hmmu_vmemmap_psizeh]hmmu_vmemmap_psize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhMubh)}(hDThe size of a page. Used to translate virtual to physical addresses.h]hDThe size of a page. Used to translate virtual to physical addresses.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj hhubeh}(h]mmu-vmemmap-psizeah ]h"]mmu_vmemmap_psizeah$]h&]uh1hhjT hhhhhMubh)}(hhh](h)}(hmmu_psize_defsh]hmmu_psize_defs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM ubh)}(h,Page size definitions, i.e. 4k, 64k, or 16M.h]h,Page size definitions, i.e. 4k, 64k, or 16M.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubh)}(hUsed to make vtop translations.h]hUsed to make vtop translations.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]mmu-psize-defsah ]h"]mmu_psize_defsah$]h&]uh1hhjT hhhhhM ubh)}(hhh](h)}(h\vmemmap_backing|(vmemmap_backing, list)|(vmemmap_backing, phys)|(vmemmap_backing, virt_addr)h]h\vmemmap_backing|(vmemmap_backing, list)|(vmemmap_backing, phys)|(vmemmap_backing, virt_addr)}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5 hhhhhMubh)}(hThe vmemmap virtual address space management does not have a traditional page table to track which virtual struct pages are backed by a physical mapping. The virtual to physical mappings are tracked in a simple linked list format.h]hThe vmemmap virtual address space management does not have a traditional page table to track which virtual struct pages are backed by a physical mapping. The virtual to physical mappings are tracked in a simple linked list format.}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5 hhubh)}(hqUser-space tools need to know the offset of list, phys and virt_addr when computing the count of vmemmap regions.h]hqUser-space tools need to know the offset of list, phys and virt_addr when computing the count of vmemmap regions.}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5 hhubeh}(h]Svmemmap-backing-vmemmap-backing-list-vmemmap-backing-phys-vmemmap-backing-virt-addrah ]h"]\vmemmap_backing|(vmemmap_backing, list)|(vmemmap_backing, phys)|(vmemmap_backing, virt_addr)ah$]h&]uh1hhjT hhhhhMubh)}(hhh](h)}(h$mmu_psize_def|(mmu_psize_def, shift)h]h$mmu_psize_def|(mmu_psize_def, shift)}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj hhhhhMubh)}(hLThe size of a struct mmu_psize_def and the offset of mmu_psize_def's member.h]hNThe size of a struct mmu_psize_def and the offset of mmu_psize_def’s member.}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hjj hhubh)}(hUsed in vtop translations.h]hUsed in vtop translations.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM$hjj hhubeh}(h]!mmu-psize-def-mmu-psize-def-shiftah ]h"]$mmu_psize_def|(mmu_psize_def, shift)ah$]h&]uh1hhjT hhhhhMubeh}(h]powerpcah ]h"]powerpcah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(hshh]hsh}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM'ubh)}(hhh](h)}(h#node_data|(node_data, MAX_NUMNODES)h]h#node_data|(node_data, MAX_NUMNODES)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM*ubh)}(h See above.h]h See above.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hj hhubeh}(h]id3ah ]h"]h$]j ah&]uh1hhj hhhhhM*jKubh)}(hhh](h)}(hX2TLBh]hX2TLB}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM/ubh)}(h>Indicates whether the crashed kernel enabled SH extended mode.h]h>Indicates whether the crashed kernel enabled SH extended mode.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hj hhubeh}(h]x2tlbah ]h"]x2tlbah$]h&]uh1hhj hhhhhM/ubeh}(h]shah ]h"]shah$]h&]uh1hhhhhhhhM'ubh)}(hhh](h)}(hRISCV64h]hRISCV64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhM4ubh)}(hhh](h)}(hVA_BITSh]hVA_BITS}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM7ubh)}(h\The maximum number of bits for virtual addresses. Used to compute the virtual memory ranges.h]h\The maximum number of bits for virtual addresses. Used to compute the virtual memory ranges.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM9hjhhubeh}(h]id4ah ]h"]h$]jS ah&]uh1hhj hhhhhM7jKubh)}(hhh](h)}(h PAGE_OFFSETh]h PAGE_OFFSET}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhhhhhM=ubh)}(hKIndicates the virtual kernel start address of the direct-mapped RAM region.h]hKIndicates the virtual kernel start address of the direct-mapped RAM region.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM?hjDhhubeh}(h] page-offsetah ]h"] page_offsetah$]h&]uh1hhj hhhhhM=ubh)}(hhh](h)}(h phys_ram_baseh]h phys_ram_base}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhhhhhMBubh)}(h)Indicates the start physical RAM address.h]h)Indicates the start physical RAM address.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMDhjkhhubeh}(h] phys-ram-baseah ]h"] phys_ram_baseah$]h&]uh1hhj hhhhhMBubh)}(hhh](h)}(h^MODULES_VADDR|MODULES_END|VMALLOC_START|VMALLOC_END|VMEMMAP_START|VMEMMAP_END|KERNEL_LINK_ADDRh]h^MODULES_VADDR|MODULES_END|VMALLOC_START|VMALLOC_END|VMEMMAP_START|VMEMMAP_END|KERNEL_LINK_ADDR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhMGubh)}(hUsed to get the correct ranges:h]hUsed to get the correct ranges:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhjhhubh block_quote)}(h* MODULES_VADDR ~ MODULES_END : Kernel module space. * VMALLOC_START ~ VMALLOC_END : vmalloc() / ioremap() space. * VMEMMAP_START ~ VMEMMAP_END : vmemmap space, used for struct page array. * KERNEL_LINK_ADDR : start address of Kernel link and BPF h]h bullet_list)}(hhh](h list_item)}(h2MODULES_VADDR ~ MODULES_END : Kernel module space.h]h)}(hjh]h2MODULES_VADDR ~ MODULES_END : Kernel module space.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h:VMALLOC_START ~ VMALLOC_END : vmalloc() / ioremap() space.h]h)}(hjh]h:VMALLOC_START ~ VMALLOC_END : vmalloc() / ioremap() space.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hHVMEMMAP_START ~ VMEMMAP_END : vmemmap space, used for struct page array.h]h)}(hjh]hHVMEMMAP_START ~ VMEMMAP_END : vmemmap space, used for struct page array.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(h8KERNEL_LINK_ADDR : start address of Kernel link and BPF h]h)}(h7KERNEL_LINK_ADDR : start address of Kernel link and BPFh]h7KERNEL_LINK_ADDR : start address of Kernel link and BPF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhMKhjubah}(h]h ]h"]h$]h&]uh1jhhhMKhjhhubeh}(h]^modules-vaddr-modules-end-vmalloc-start-vmalloc-end-vmemmap-start-vmemmap-end-kernel-link-addrah ]h"]^modules_vaddr|modules_end|vmalloc_start|vmalloc_end|vmemmap_start|vmemmap_end|kernel_link_addrah$]h&]uh1hhj hhhhhMGubh)}(hhh](h)}(hva_kernel_pa_offseth]hva_kernel_pa_offset}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hhhhhMQubh)}(hwIndicates the offset between the kernel virtual and physical mappings. Used to translate virtual to physical addresses.h]hwIndicates the offset between the kernel virtual and physical mappings. Used to translate virtual to physical addresses.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMShj1hhubeh}(h]va-kernel-pa-offsetah ]h"]va_kernel_pa_offsetah$]h&]uh1hhj hhhhhMQubeh}(h]riscv64ah ]h"]riscv64ah$]h&]uh1hhhhhhhhM4ubeh}(h] vmcoreinfoah ]h"] vmcoreinfoah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jejbhhj[jXjjj<j9jqjnjjjjjjj j j4j1jijfcontig_page_dataNjjjjj"jjIjFjpjmjjjjjjj j jAj>jvjsjjjjjjj jjGjDjnjkjjjjjjj jj1j.jXjUjj|jjjjjjjjjBj?jijfjjjjjjjjj,j)jSjPj j jjjjjjj j j/ j, kerneloffsetNj} jz j j j j j j j j va_bitsNjy jv j j j j j" j j{ jx j j j j jQ jN j j j" j jI jF j j #node_data|(node_data, max_numnodes)Nj j j j j2 j/ jg jd j j j jjj j]jZjhjejjj.j+jUjRu nametypes}(jeh݉j[jj<jqjjjj j4jijjjj"jIjpjjjj jAjvjjjj jGjnjjjj j1jXjjjjjjBjijjjjj,jSj jjjj j/ jj} j j j j jjy j j j" j{ j j jQ j j" jI j jj j j2 jg j j jj]jhjj.jUuh}(jbhhhjXhjhj9jjnj?jjtjjjjj jj1jjfj7jjljjjjjjjFj%jmjLjjsjjjjj jj>jjsjDjjyjjjjjjjDj#jkjJjjqjjjjjjj.j jUj4j|j[jjjjjjjjj?jjfjEjjljjjjjjj)jjPj/j j^jjojjjjj jj, j jS j2 jz jY j j j j j j j j jO j. jv jU j j| j j j j j j jx j% j j j j jN j j j j j jF j% j jT j je j j j j j j j/ j jd j5 j jj jj j j j j jZj j?jjejDjjkj+jjRj1u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}jKsRparse_messages](hsystem_message)}(hhh]h)}(h/Duplicate implicit target name: "kerneloffset".h]h3Duplicate implicit target name: “kerneloffset”.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]j alevelKtypeINFOsourcehlineMuh1jhj hhhhhMubj)}(hhh]h)}(h3Duplicate implicit target name: "contig_page_data".h]h7Duplicate implicit target name: “contig_page_data”.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]j alevelKtypej sourcehlineMuh1jhj hhhhhMubj)}(hhh]h)}(hFDuplicate implicit target name: "node_data|(node_data, max_numnodes)".h]hJDuplicate implicit target name: “node_data|(node_data, max_numnodes)”.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*ubah}(h]h ]h"]h$]h&]j alevelKtypej sourcehlineM*uh1jhj hhhhhM*ubj)}(hhh]h)}(h*Duplicate implicit target name: "va_bits".h]h.Duplicate implicit target name: “va_bits”.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEubah}(h]h ]h"]h$]h&]j?alevelKtypej sourcehlineM7uh1jhjhhhhhM7ubetransform_messages] transformerN include_log] decorationNhhub.