€• (Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ-/translations/zh_CN/virt/kvm/review-checklist”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/zh_TW/virt/kvm/review-checklist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/it_IT/virt/kvm/review-checklist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ja_JP/virt/kvm/review-checklist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/ko_KR/virt/kvm/review-checklist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ-/translations/sp_SP/virt/kvm/review-checklist”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒG/var/lib/git/docbuild/linux/Documentation/virt/kvm/review-checklist.rst”h KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ Review checklist for kvm patches”h]”hŒ Review checklist for kvm patches”…””}”(hh»hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¹hh¶hžhhŸh³h KubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒoThe patch must follow Documentation/process/coding-style.rst and Documentation/process/submitting-patches.rst. ”h]”hŒ paragraph”“”)”}”(hŒnThe patch must follow Documentation/process/coding-style.rst and Documentation/process/submitting-patches.rst.”h]”hŒnThe patch must follow Documentation/process/coding-style.rst and Documentation/process/submitting-patches.rst.”…””}”(hhÖhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h KhhÐubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒ1Patches should be against kvm.git master branch. ”h]”hÕ)”}”(hŒ0Patches should be against kvm.git master branch.”h]”hŒ0Patches should be against kvm.git master branch.”…””}”(hhîhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h K hhêubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒ±If the patch introduces or modifies a new userspace API: - the API must be documented in Documentation/virt/kvm/api.rst - the API must be discoverable using KVM_CHECK_EXTENSION ”h]”hÕ)”}”(hŒ°If the patch introduces or modifies a new userspace API: - the API must be documented in Documentation/virt/kvm/api.rst - the API must be discoverable using KVM_CHECK_EXTENSION”h]”hŒ°If the patch introduces or modifies a new userspace API: - the API must be documented in Documentation/virt/kvm/api.rst - the API must be discoverable using KVM_CHECK_EXTENSION”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h K hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒ1New state must include support for save/restore. ”h]”hÕ)”}”(hŒ0New state must include support for save/restore.”h]”hŒ0New state must include support for save/restore.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒ„New features must default to off (userspace should explicitly request them). Performance improvements can and should default to on. ”h]”hÕ)”}”(hŒƒNew features must default to off (userspace should explicitly request them). Performance improvements can and should default to on.”h]”hŒƒNew features must default to off (userspace should explicitly request them). Performance improvements can and should default to on.”…””}”(hj6hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h Khj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒ@New cpu features should be exposed via KVM_GET_SUPPORTED_CPUID2 ”h]”hÕ)”}”(hŒ?New cpu features should be exposed via KVM_GET_SUPPORTED_CPUID2”h]”hŒ?New cpu features should be exposed via KVM_GET_SUPPORTED_CPUID2”…””}”(hjNhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h KhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒZEmulator changes should be accompanied by unit tests for qemu-kvm.git kvm/test directory. ”h]”hÕ)”}”(hŒYEmulator changes should be accompanied by unit tests for qemu-kvm.git kvm/test directory.”h]”hŒYEmulator changes should be accompanied by unit tests for qemu-kvm.git kvm/test directory.”…””}”(hjfhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h Khjbubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒ|Changes should be vendor neutral when possible. Changes to common code are better than duplicating changes to vendor code. ”h]”hÕ)”}”(hŒ{Changes should be vendor neutral when possible. Changes to common code are better than duplicating changes to vendor code.”h]”hŒ{Changes should be vendor neutral when possible. Changes to common code are better than duplicating changes to vendor code.”…””}”(hj~hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h Khjzubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒPSimilarly, prefer changes to arch independent code than to arch dependent code. ”h]”hÕ)”}”(hŒOSimilarly, prefer changes to arch independent code than to arch dependent code.”h]”hŒOSimilarly, prefer changes to arch independent code than to arch dependent code.”…””}”(hj–hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h Khj’ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒ®User/kernel interfaces and guest/host interfaces must be 64-bit clean (all variables and sizes naturally aligned on 64-bit; use specific types only - u64 rather than ulong). ”h]”hÕ)”}”(hŒ­User/kernel interfaces and guest/host interfaces must be 64-bit clean (all variables and sizes naturally aligned on 64-bit; use specific types only - u64 rather than ulong).”h]”hŒ­User/kernel interfaces and guest/host interfaces must be 64-bit clean (all variables and sizes naturally aligned on 64-bit; use specific types only - u64 rather than ulong).”…””}”(hj®hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h K hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒnNew guest visible features must either be documented in a hardware manual or be accompanied by documentation. ”h]”hÕ)”}”(hŒmNew guest visible features must either be documented in a hardware manual or be accompanied by documentation.”h]”hŒmNew guest visible features must either be documented in a hardware manual or be accompanied by documentation.”…””}”(hjÆhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h K$hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h NubhÏ)”}”(hŒËFeatures must be robust against reset and kexec - for example, shared host/guest memory must be unshared to prevent the host from writing to guest memory that the guest has not reserved for this purpose.”h]”hÕ)”}”(hŒËFeatures must be robust against reset and kexec - for example, shared host/guest memory must be unshared to prevent the host from writing to guest memory that the guest has not reserved for this purpose.”h]”hŒËFeatures must be robust against reset and kexec - for example, shared host/guest memory must be unshared to prevent the host from writing to guest memory that the guest has not reserved for this purpose.”…””}”(hjÞhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÔhŸh³h K'hjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1hÎhhËhžhhŸh³h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1hÉhh¶hžhhŸh³h Kubeh}”(h]”Œ review-checklist-for-kvm-patches”ah ]”h"]”Œ review checklist for kvm patches”ah$]”h&]”uh1h´hhhžhhŸh³h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¹NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j(Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”jjÿsŒ nametypes”}”j‰sh}”jÿh¶sŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.