ysphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget1/translations/zh_CN/driver-api/cxl/linux/overviewmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/zh_TW/driver-api/cxl/linux/overviewmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/it_IT/driver-api/cxl/linux/overviewmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ja_JP/driver-api/cxl/linux/overviewmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/ko_KR/driver-api/cxl/linux/overviewmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/pt_BR/driver-api/cxl/linux/overviewmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget1/translations/sp_SP/driver-api/cxl/linux/overviewmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhK/var/lib/git/docbuild/linux/Documentation/driver-api/cxl/linux/overview.rsthKubhsection)}(hhh](htitle)}(hOverviewh]hOverview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hThis section presents the configuration process of a CXL Type-3 memory device, and how it is ultimately exposed to users as either a :code:`DAX` device or normal memory pages via the kernel's page allocator.h](hThis section presents the configuration process of a CXL Type-3 memory device, and how it is ultimately exposed to users as either a }(hhhhhNhNubhliteral)}(h :code:`DAX`h]hDAX}(hhhhhNhNubah}(h]h ]codeah"]h$]h&]languagehuh1hhhubhA device or normal memory pages via the kernel’s page allocator.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hWPortions marked with a bullet are points at which certain kernel objects are generated.h]hWPortions marked with a bullet are points at which certain kernel objects are generated.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhenumerated_list)}(hhh]h list_item)}(h Early Boot h]h)}(h Early Booth]h Early Boot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix)uh1jhhhhhhhKubh block_quote)}(hXa) BIOS, Build, and Boot Parameters i) EFI_MEMORY_SP ii) CONFIG_EFI_SOFT_RESERVE iii) CONFIG_MHP_DEFAULT_ONLINE_TYPE iv) nosoftreserve b) Memory Map Creation i) EFI Memory Map / E820 Consulted for Soft-Reserved * CXL Memory is set aside to be handled by the CXL driver * Soft-Reserved IO Resource created for CFMWS entry c) NUMA Node Creation * Nodes created from ACPI CEDT CFMWS and SRAT Proximity domains (PXM) d) Memory Tier Creation * A default memory_tier is created with all nodes. e) Contiguous Memory Allocation * Any requested CMA is allocated from Online nodes f) Init Finishes, Drivers start probing h](j)}(hhh]j)}(h!BIOS, Build, and Boot Parameters h]h)}(h BIOS, Build, and Boot Parametersh]h BIOS, Build, and Boot Parameters}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]j6 loweralphaj8hj9j:uh1jhj=ubj<)}(hci) EFI_MEMORY_SP ii) CONFIG_EFI_SOFT_RESERVE iii) CONFIG_MHP_DEFAULT_ONLINE_TYPE iv) nosoftreserve h]j)}(hhh](j)}(h EFI_MEMORY_SPh]h)}(hjlh]h EFI_MEMORY_SP}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjjubah}(h]h ]h"]h$]h&]uh1jhjgubj)}(hCONFIG_EFI_SOFT_RESERVEh]h)}(hjh]hCONFIG_EFI_SOFT_RESERVE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjgubj)}(hCONFIG_MHP_DEFAULT_ONLINE_TYPEh]h)}(hjh]hCONFIG_MHP_DEFAULT_ONLINE_TYPE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjgubj)}(hnosoftreserve h]h)}(h nosoftreserveh]h nosoftreserve}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]j6 lowerromanj8hj9j:uh1jhjcubah}(h]h ]h"]h$]h&]uh1j;hhhKhj=ubj)}(hhh]j)}(hMemory Map Creation h]h)}(hMemory Map Creationh]hMemory Map Creation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:startKuh1jhj=ubj<)}(hi) EFI Memory Map / E820 Consulted for Soft-Reserved * CXL Memory is set aside to be handled by the CXL driver * Soft-Reserved IO Resource created for CFMWS entry h](j)}(hhh]j)}(h2EFI Memory Map / E820 Consulted for Soft-Reserved h]h)}(h1EFI Memory Map / E820 Consulted for Soft-Reservedh]h1EFI Memory Map / E820 Consulted for Soft-Reserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jj8hj9j:uh1jhjubj<)}(ho* CXL Memory is set aside to be handled by the CXL driver * Soft-Reserved IO Resource created for CFMWS entry h]h bullet_list)}(hhh](j)}(h8CXL Memory is set aside to be handled by the CXL driver h]h)}(h7CXL Memory is set aside to be handled by the CXL driverh]h7CXL Memory is set aside to be handled by the CXL driver}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(h2Soft-Reserved IO Resource created for CFMWS entry h]h)}(h1Soft-Reserved IO Resource created for CFMWS entryh]h1Soft-Reserved IO Resource created for CFMWS entry}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj<ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhKhjubah}(h]h ]h"]h$]h&]uh1j;hhhKhjubeh}(h]h ]h"]h$]h&]uh1j;hhhKhj=ubj)}(hhh]j)}(hNUMA Node Creation h]h)}(hNUMA Node Creationh]hNUMA Node Creation}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjkubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhj=ubj<)}(hF* Nodes created from ACPI CEDT CFMWS and SRAT Proximity domains (PXM) h]j )}(hhh]j)}(hDNodes created from ACPI CEDT CFMWS and SRAT Proximity domains (PXM) h]h)}(hCNodes created from ACPI CEDT CFMWS and SRAT Proximity domains (PXM)h]hCNodes created from ACPI CEDT CFMWS and SRAT Proximity domains (PXM)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jZj[uh1jhhhK!hjubah}(h]h ]h"]h$]h&]uh1j;hhhK!hj=ubj)}(hhh]j)}(hMemory Tier Creation h]h)}(hMemory Tier Creationh]hMemory Tier Creation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhj=ubj<)}(h3* A default memory_tier is created with all nodes. h]j )}(hhh]j)}(h1A default memory_tier is created with all nodes. h]h)}(h0A default memory_tier is created with all nodes.h]h0A default memory_tier is created with all nodes.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jZj[uh1jhhhK%hjubah}(h]h ]h"]h$]h&]uh1j;hhhK%hj=ubj)}(hhh]j)}(hContiguous Memory Allocation h]h)}(hContiguous Memory Allocationh]hContiguous Memory Allocation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhj=ubj<)}(h3* Any requested CMA is allocated from Online nodes h]j )}(hhh]j)}(h1Any requested CMA is allocated from Online nodes h]h)}(h0Any requested CMA is allocated from Online nodesh]h0Any requested CMA is allocated from Online nodes}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hj(ubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]jZj[uh1jhhhK)hj!ubah}(h]h ]h"]h$]h&]uh1j;hhhK)hj=ubj)}(hhh]j)}(h%Init Finishes, Drivers start probing h]h)}(h$Init Finishes, Drivers start probingh]h$Init Finishes, Drivers start probing}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjOubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhj=ubeh}(h]h ]h"]h$]h&]uh1j;hhhKhhhhubj)}(hhh]j)}(hACPI and PCI Drivers h]h)}(hACPI and PCI Driversh]hACPI and PCI Drivers}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjvubah}(h]h ]h"]h$]h&]uh1jhjshhhhhNubah}(h]h ]h"]h$]h&]j6j7j8hj9j:jKuh1jhhhhhhhK-ubj<)}(hAa) Detects PCI device is CXL, marking it for probe by CXL driver h]j)}(hhh]j)}(h>Detects PCI device is CXL, marking it for probe by CXL driver h]h)}(h=Detects PCI device is CXL, marking it for probe by CXL driverh]h=Detects PCI device is CXL, marking it for probe by CXL driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK/hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:uh1jhjubah}(h]h ]h"]h$]h&]uh1j;hhhK/hhhhubj)}(hhh]j)}(hCXL Driver Operation h]h)}(hCXL Driver Operationh]hCXL Driver Operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j6j7j8hj9j:jKuh1jhhhhhhhK1ubj<)}(hXna) Base device creation * root, port, and memdev devices created * CEDT CFMWS IO Resource creation b) Decoder creation * root, switch, and endpoint decoders created c) Logical device creation * memory_region and endpoint devices created d) Devices are associated with each other * If auto-decoder (BIOS-programmed decoders), driver validates configurations, builds associations, and locks configs at probe time. * If user-configured, validation and associations are built at decoder-commit time. e) Regions surfaced as DAX region * dax_region created * DAX device created via DAX driver h](j)}(hhh]j)}(hBase device creation h]h)}(hBase device creationh]hBase device creation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:uh1jhjubj<)}(hK* root, port, and memdev devices created * CEDT CFMWS IO Resource creation h]j )}(hhh](j)}(h&root, port, and memdev devices createdh]h)}(hjh]h&root, port, and memdev devices created}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(h CEDT CFMWS IO Resource creation h]h)}(hCEDT CFMWS IO Resource creationh]hCEDT CFMWS IO Resource creation}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hj#ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]jZj[uh1jhhhK5hjubah}(h]h ]h"]h$]h&]uh1j;hhhK5hjubj)}(hhh]j)}(hDecoder creation h]h)}(hDecoder creationh]hDecoder creation}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjJubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhjubj<)}(h.* root, switch, and endpoint decoders created h]j )}(hhh]j)}(h,root, switch, and endpoint decoders created h]h)}(h+root, switch, and endpoint decoders createdh]h+root, switch, and endpoint decoders created}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjoubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]jZj[uh1jhhhK:hjhubah}(h]h ]h"]h$]h&]uh1j;hhhK:hjubj)}(hhh]j)}(hLogical device creation h]h)}(hLogical device creationh]hLogical device creation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jZj[uh1jhhhK>hjubah}(h]h ]h"]h$]h&]uh1j;hhhK>hjubj)}(hhh]j)}(h'Devices are associated with each other h]h)}(h&Devices are associated with each otherh]h&Devices are associated with each other}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhjubj<)}(h* If auto-decoder (BIOS-programmed decoders), driver validates configurations, builds associations, and locks configs at probe time. * If user-configured, validation and associations are built at decoder-commit time. h]j )}(hhh](j)}(hIf auto-decoder (BIOS-programmed decoders), driver validates configurations, builds associations, and locks configs at probe time. h]h)}(hIf auto-decoder (BIOS-programmed decoders), driver validates configurations, builds associations, and locks configs at probe time.h]hIf auto-decoder (BIOS-programmed decoders), driver validates configurations, builds associations, and locks configs at probe time.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hRIf user-configured, validation and associations are built at decoder-commit time. h]h)}(hQIf user-configured, validation and associations are built at decoder-commit time.h]hQIf user-configured, validation and associations are built at decoder-commit time.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jZj[uh1jhhhKBhjubah}(h]h ]h"]h$]h&]uh1j;hhhKBhjubj)}(hhh]j)}(hRegions surfaced as DAX region h]h)}(hRegions surfaced as DAX regionh]hRegions surfaced as DAX region}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhjFubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhjubj<)}(h:* dax_region created * DAX device created via DAX driver h]j )}(hhh](j)}(hdax_region created h]h)}(hdax_region createdh]hdax_region created}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjkubah}(h]h ]h"]h$]h&]uh1jhjhubj)}(h"DAX device created via DAX driver h]h)}(h!DAX device created via DAX driverh]h!DAX device created via DAX driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhjubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]jZj[uh1jhhhKJhjdubah}(h]h ]h"]h$]h&]uh1j;hhhKJhjubeh}(h]h ]h"]h$]h&]uh1j;hhhK3hhhhubj)}(hhh]j)}(hDAX Driver Operation h]h)}(hDAX Driver Operationh]hDAX Driver Operation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j6j7j8hj9j:jKuh1jhhhhhhhKNubj<)}(hXva) DAX driver surfaces DAX region as one of two dax device modes * kmem - dax device is converted to hotplug memory blocks * DAX kmem IO Resource creation * hmem - dax device is left as daxdev to be accessed as a file. * If hmem, journey ends here. b) DAX kmem surfaces memory region to Memory Hotplug to add to page allocator as "driver managed memory" h](j)}(hhh]j)}(h>DAX driver surfaces DAX region as one of two dax device modes h]h)}(h=DAX driver surfaces DAX region as one of two dax device modesh]h=DAX driver surfaces DAX region as one of two dax device modes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:uh1jhjubj<)}(h* kmem - dax device is converted to hotplug memory blocks * DAX kmem IO Resource creation * hmem - dax device is left as daxdev to be accessed as a file. * If hmem, journey ends here. h]j )}(hhh](j)}(hYkmem - dax device is converted to hotplug memory blocks * DAX kmem IO Resource creation h](h)}(h7kmem - dax device is converted to hotplug memory blocksh]h7kmem - dax device is converted to hotplug memory blocks}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhjubj )}(hhh]j)}(hDAX kmem IO Resource creation h]h)}(hDAX kmem IO Resource creationh]hDAX kmem IO Resource creation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThjubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]jZj[uh1jhhhKThjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(h]hmem - dax device is left as daxdev to be accessed as a file. * If hmem, journey ends here. h](h)}(h=hmem - dax device is left as daxdev to be accessed as a file.h]h=hmem - dax device is left as daxdev to be accessed as a file.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhj3ubj )}(hhh]j)}(hIf hmem, journey ends here. h]h)}(hIf hmem, journey ends here.h]hIf hmem, journey ends here.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjHubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]jZj[uh1jhhhKXhj3ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]jZj[uh1jhhhKRhjubah}(h]h ]h"]h$]h&]uh1j;hhhKRhjubj)}(hhh]j)}(hfDAX kmem surfaces memory region to Memory Hotplug to add to page allocator as "driver managed memory" h]h)}(heDAX kmem surfaces memory region to Memory Hotplug to add to page allocator as "driver managed memory"h]hiDAX kmem surfaces memory region to Memory Hotplug to add to page allocator as “driver managed memory”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhj{ubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhjubeh}(h]h ]h"]h$]h&]uh1j;hhhKPhhhhubj)}(hhh]j)}(hMemory Hotplug h]h)}(hMemory Hotplugh]hMemory Hotplug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubah}(h]h ]h"]h$]h&]j6j7j8hj9j:jKuh1jhhhhhhhK]ubj<)}(hX_a) mhp component surfaces a dax device memory region as multiple memory blocks to the page allocator * blocks appear in :code:`/sys/bus/memory/devices` and linked to a NUMA node b) blocks are onlined into the requested zone (NORMAL or MOVABLE) * Memory is marked "Driver Managed" to avoid kexec from using it as region for kernel updatesh](j)}(hhh]j)}(hbmhp component surfaces a dax device memory region as multiple memory blocks to the page allocator h]h)}(hamhp component surfaces a dax device memory region as multiple memory blocks to the page allocatorh]hamhp component surfaces a dax device memory region as multiple memory blocks to the page allocator}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]j6jbj8hj9j:uh1jhjubj<)}(hM* blocks appear in :code:`/sys/bus/memory/devices` and linked to a NUMA node h]j )}(hhh]j)}(hKblocks appear in :code:`/sys/bus/memory/devices` and linked to a NUMA node h]h)}(hJblocks appear in :code:`/sys/bus/memory/devices` and linked to a NUMA nodeh](hblocks appear in }(hjhhhNhNubh)}(h:code:`/sys/bus/memory/devices`h]h/sys/bus/memory/devices}(hjhhhNhNubah}(h]h ]hah"]h$]h&]languagehuh1hhjubh and linked to a NUMA node}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]jZj[uh1jhhhKbhjubah}(h]h ]h"]h$]h&]uh1j;hhhKbhjubj)}(hhh]j)}(h?blocks are onlined into the requested zone (NORMAL or MOVABLE) h]h)}(h>blocks are onlined into the requested zone (NORMAL or MOVABLE)h]h>blocks are onlined into the requested zone (NORMAL or MOVABLE)}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhj&ubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]j6jbj8hj9j:jKuh1jhjubj<)}(h_* Memory is marked "Driver Managed" to avoid kexec from using it as region for kernel updatesh]j )}(hhh]j)}(h[Memory is marked "Driver Managed" to avoid kexec from using it as region for kernel updatesh]h)}(h[Memory is marked "Driver Managed" to avoid kexec from using it as region for kernel updatesh]h_Memory is marked “Driver Managed” to avoid kexec from using it as region for kernel updates}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjKubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]jZj[uh1jhhhKfhjDubah}(h]h ]h"]h$]h&]uh1j;hhhKfhjubeh}(h]h ]h"]h$]h&]uh1j;hhhK_hhhhubeh}(h]overviewah ]h"]overviewah$]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_sourcehnj _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}jzjws nametypes}jzsh}jwhs footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages](hsystem_message)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "b" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “b” (ordinal 2)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehnjlineKuh1jhj=ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "c" (ordinal 3)h]h>Enumerated list start value not ordinal-1: “c” (ordinal 3)}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhj=ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "d" (ordinal 4)h]h>Enumerated list start value not ordinal-1: “d” (ordinal 4)}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;ubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhj=ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "e" (ordinal 5)h]h>Enumerated list start value not ordinal-1: “e” (ordinal 5)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhj=ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "f" (ordinal 6)h]h>Enumerated list start value not ordinal-1: “f” (ordinal 6)}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhj=ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "2" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “2” (ordinal 2)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhhhhhhhK-ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "3" (ordinal 3)h]h>Enumerated list start value not ordinal-1: “3” (ordinal 3)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhhhhhhhK1ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "b" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “b” (ordinal 2)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhjubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "c" (ordinal 3)h]h>Enumerated list start value not ordinal-1: “c” (ordinal 3)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhjubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "d" (ordinal 4)h]h>Enumerated list start value not ordinal-1: “d” (ordinal 4)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhjubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "e" (ordinal 5)h]h>Enumerated list start value not ordinal-1: “e” (ordinal 5)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhjubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "4" (ordinal 4)h]h>Enumerated list start value not ordinal-1: “4” (ordinal 4)}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. ubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhhhhhhhKNubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "b" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “b” (ordinal 2)}(hjL hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI ubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhjubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "5" (ordinal 5)h]h>Enumerated list start value not ordinal-1: “5” (ordinal 5)}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd ubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhhhhhhhK]ubj)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "b" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “b” (ordinal 2)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypejsourcehnjlineKuh1jhjubetransform_messages] transformerN include_log] decorationNhhub.