?sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/arch/loongarch/featuresmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/arch/loongarch/featuresmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/arch/loongarch/featuresmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/arch/loongarch/featuresmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/arch/loongarch/featuresmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/pt_BR/arch/loongarch/featuresmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/arch/loongarch/featuresmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhX/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/arch/loongarch/features.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h)Documentation/arch/loongarch/features.rsth]h)}(hjh]h)Documentation/arch/loongarch/features.rst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Translatorh]h Translator}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubj)}(h%Huacai Chen h]h)}(h$Huacai Chen h](h Huacai Chen <}(hj3hhhNhNubh reference)}(hchenhuacai@loongson.cnh]hchenhuacai@loongson.cn}(hj=hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:chenhuacai@loongson.cnuh1j;hj3ubh>}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj/ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(h(Feature status on loongarch architectureh]h(Feature status on loongarch architecture}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjkhNhNubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK%uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKQuh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(h Subsystemh]h Subsystem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhfeatureshKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFeatureh]hFeature}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hKconfigh]hKconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hStatush]hStatus}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj%ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubhtbody)}(hhh](j)}(hhh](j)}(hhh]h)}(hcoreh]hcore}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjPubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(hhh]h)}(hcBPF-JITh]hcBPF-JIT}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjgubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(hhh]h)}(h HAVE_CBPF_JITh]h HAVE_CBPF_JIT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj~ubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(hhh]h)}(hTODOh]hTODO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(hhh]h)}(h$arch supports cBPF JIT optimizationsh]h$arch supports cBPF JIT optimizations}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hcoreh]hcore}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(heBPF-JITh]heBPF-JIT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h HAVE_EBPF_JITh]h HAVE_EBPF_JIT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h$arch supports eBPF JIT optimizationsh]h$arch supports eBPF JIT optimizations}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hj(ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hcoreh]hcore}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjHubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(hgeneric-idle-threadh]hgeneric-idle-thread}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hj_ubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(hGENERIC_SMP_IDLE_THREADh]hGENERIC_SMP_IDLE_THREAD}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjvubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(h6arch makes use of the generic SMP idle thread facilityh]h6arch makes use of the generic SMP idle thread facility}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hcoreh]hcore}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h jump-labelsh]h jump-labels}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hHAVE_ARCH_JUMP_LABELh]hHAVE_ARCH_JUMP_LABEL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hokh]hok}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h4arch supports live patched, high efficiency branchesh]h4arch supports live patched, high efficiency branches}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hcoreh]hcore}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hj@ubah}(h]h ]h"]h$]h&]uh1jhj=ubj)}(hhh]h)}(hmseal-system-mappingsh]hmseal-system-mappings}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjWubah}(h]h ]h"]h$]h&]uh1jhj=ubj)}(hhh]h)}(h#ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGSh]h#ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjnubah}(h]h ]h"]h$]h&]uh1jhj=ubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhj=ubj)}(hhh]h)}(h#arch supports mseal system mappingsh]h#arch supports mseal system mappings}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hcoreh]hcore}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hthread-info-in-taskh]hthread-info-in-task}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTHREAD_INFO_IN_TASKh]hTHREAD_INFO_IN_TASK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTODOh]hTODO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNarch makes use of the core kernel facility to embed thread_info in task_structh]hNarch makes use of the core kernel facility to embed thread_info in task_struct}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hcoreh]hcore}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj8ubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(h tracehookh]h tracehook}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjOubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(hHAVE_ARCH_TRACEHOOKh]hHAVE_ARCH_TRACEHOOK}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjfubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj}ubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(h7arch supports tracehook (ptrace) register handling APIsh]h7arch supports tracehook (ptrace) register handling APIs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hdebug-vm-pgtableh]hdebug-vm-pgtable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hARCH_HAS_DEBUG_VM_PGTABLEh]hARCH_HAS_DEBUG_VM_PGTABLE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h4arch supports pgtable tests for semantics complianceh]h4arch supports pgtable tests for semantics compliance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj0ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hgcov-profile-allh]hgcov-profile-all}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjGubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hARCH_HAS_GCOV_PROFILE_ALLh]hARCH_HAS_GCOV_PROFILE_ALL}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj^ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hTODOh]hTODO}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjuubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(h7arch supports whole-kernel GCOV code coverage profilingh]h7arch supports whole-kernel GCOV code coverage profiling}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hKASANh]hKASAN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hHAVE_ARCH_KASANh]hHAVE_ARCH_KASAN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h.arch supports the KASAN runtime memory checkerh]h.arch supports the KASAN runtime memory checker}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj(ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hkcovh]hkcov}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj?ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(h ARCH_HAS_KCOVh]h ARCH_HAS_KCOV}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjVubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hokh]hok}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjmubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(h.arch supports kcov for coverage-guided fuzzingh]h.arch supports kcov for coverage-guided fuzzing}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hkgdbh]hkgdb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hHAVE_ARCH_KGDBh]hHAVE_ARCH_KGDB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h&arch supports the kGDB kernel debuggerh]h&arch supports the kGDB kernel debugger}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hkmemleakh]hkmemleak}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj7ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hHAVE_DEBUG_KMEMLEAKh]hHAVE_DEBUG_KMEMLEAK}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjNubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hokh]hok}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjeubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h-arch supports the kernel memory leak detectorh]h-arch supports the kernel memory leak detector}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj|ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hkprobesh]hkprobes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h HAVE_KPROBESh]h HAVE_KPROBES}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hokh]hok}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h'arch supports live patched kernel probeh]h'arch supports live patched kernel probe}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hkprobes-on-ftraceh]hkprobes-on-ftrace}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj/ ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hHAVE_KPROBES_ON_FTRACEh]hHAVE_KPROBES_ON_FTRACE}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjF ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hokh]hok}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj] ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h7arch supports combined kprobes and ftrace live patchingh]h7arch supports combined kprobes and ftrace live patching}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjt ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h kretprobesh]h kretprobes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hHAVE_KRETPROBESh]hHAVE_KRETPROBES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hokh]hok}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h+arch supports kernel function-return probesh]h+arch supports kernel function-return probes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h optprobesh]h optprobes}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj' ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hHAVE_OPTPROBESh]hHAVE_OPTPROBES}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj> ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hTODOh]hTODO}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjU ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h$arch supports live patched optprobesh]h$arch supports live patched optprobes}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjl ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hstackprotectorh]hstackprotector}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hHAVE_STACKPROTECTORh]hHAVE_STACKPROTECTOR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hokh]hok}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h7arch supports compiler driven stack overflow protectionh]h7arch supports compiler driven stack overflow protection}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(huprobesh]huprobes}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hARCH_SUPPORTS_UPROBESh]hARCH_SUPPORTS_UPROBES}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj6 ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hokh]hok}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjM ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h&arch supports live patched user probesh]h&arch supports live patched user probes}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjd ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hdebugh]hdebug}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(huser-ret-profilerh]huser-ret-profiler}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hHAVE_USER_RETURN_NOTIFIERh]hHAVE_USER_RETURN_NOTIFIER}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hTODOh]hTODO}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h9arch supports user-space return from system call profilerh]h9arch supports user-space return from system call profiler}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hioh]hio}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hdma-contiguoush]hdma-contiguous}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hHAVE_DMA_CONTIGUOUSh]hHAVE_DMA_CONTIGUOUS}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj. ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hokh]hok}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjE ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h7arch supports the DMA CMA (continuous memory allocator)h]h7arch supports the DMA CMA (continuous memory allocator)}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj\ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hlockingh]hlocking}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj| ubah}(h]h ]h"]h$]h&]uh1jhjy ubj)}(hhh]h)}(h cmpxchg-localh]h cmpxchg-local}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjy ubj)}(hhh]h)}(hHAVE_CMPXCHG_LOCALh]hHAVE_CMPXCHG_LOCAL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjy ubj)}(hhh]h)}(hTODOh]hTODO}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjy ubj)}(hhh]h)}(h(arch supports the this_cpu_cmpxchg() APIh]h(arch supports the this_cpu_cmpxchg() API}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhjy ubeh}(h]h ]h"]h$]h&]uh1jhjJubj)}(hhh](j)}(hhh]h)}(hlockingh]hlocking}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hlockdeph]hlockdep}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hLOCKDEP_SUPPORTh]hLOCKDEP_SUPPORT}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj& ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hokh]hok}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhj= ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h