€•Ó.Œ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/gpu/xen-front”Œ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/gpu/xen-front”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/it_IT/gpu/xen-front”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/ja_JP/gpu/xen-front”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/ko_KR/gpu/xen-front”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ!/translations/pt_BR/gpu/xen-front”Œ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/gpu/xen-front”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ2drm/xen-front Xen para-virtualized frontend driver”h]”hŒ2drm/xen-front Xen para-virtualized frontend driver”…””}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ;/var/lib/git/docbuild/linux/Documentation/gpu/xen-front.rst”h´KubhŒ paragraph”“”)”}”(hŒŽThis frontend driver implements Xen para-virtualized display according to the display protocol described at include/xen/interface/io/displif.h”h]”hŒŽThis frontend driver implements Xen para-virtualized display according to the display protocol described at include/xen/interface/io/displif.h”…””}”(hhÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³hÊh´Khh·h²hubh¶)”}”(hhh]”(h»)”}”(hŒ:Driver modes of operation in terms of display buffers used”h]”hŒ:Driver modes of operation in terms of display buffers used”…””}”(hhÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhÛh²hh³hÊh´K ubhÌ)”}”(hŒûDepending on the requirements for the para-virtualized environment, namely requirements dictated by the accompanying DRM/(v)GPU drivers running in both host and guest environments, display buffers can be allocated by either frontend driver or backend.”h]”hŒûDepending on the requirements for the para-virtualized environment, namely requirements dictated by the accompanying DRM/(v)GPU drivers running in both host and guest environments, display buffers can be allocated by either frontend driver or backend.”…””}”(hhìh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:12: ./drivers/gpu/drm/xen/xen_drm_front.h”h´KhhÛh²hubh¶)”}”(hhh]”(h»)”}”(hŒ(Buffers allocated by the frontend driver”h]”hŒ(Buffers allocated by the frontend driver”…””}”(hhþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhhûh²hh³hÊh´KubhÌ)”}”(hŒFIn this mode of operation driver allocates buffers from system memory.”h]”hŒFIn this mode of operation driver allocates buffers from system memory.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:18: ./drivers/gpu/drm/xen/xen_drm_front.h”h´K$hhûh²hubhÌ)”}”(hŒôNote! If used with accompanying DRM/(v)GPU drivers this mode of operation may require IOMMU support on the platform, so accompanying DRM/vGPU hardware can still reach display buffer memory while importing PRIME buffers from the frontend driver.”h]”hŒôNote! If used with accompanying DRM/(v)GPU drivers this mode of operation may require IOMMU support on the platform, so accompanying DRM/vGPU hardware can still reach display buffer memory while importing PRIME buffers from the frontend driver.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:18: ./drivers/gpu/drm/xen/xen_drm_front.h”h´K&hhûh²hubeh}”(h]”Œ(buffers-allocated-by-the-frontend-driver”ah ]”h"]”Œ(buffers allocated by the frontend driver”ah$]”h&]”uh1hµhhÛh²hh³hÊh´Kubh¶)”}”(hhh]”(h»)”}”(hŒ Buffers allocated by the backend”h]”hŒ Buffers allocated by the backend”…””}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhj2h²hh³hÊh´KubhÌ)”}”(hŒfThis mode of operation is run-time configured via guest domain configuration through XenStore entries.”h]”hŒfThis mode of operation is run-time configured via guest domain configuration through XenStore entries.”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:24: ./drivers/gpu/drm/xen/xen_drm_front.h”h´K/hj2h²hubhÌ)”}”(hX[For systems which do not provide IOMMU support, but having specific requirements for display buffers it is possible to allocate such buffers at backend side and share those with the frontend. For example, if host domain is 1:1 mapped and has DRM/GPU hardware expecting physically contiguous memory, this allows implementing zero-copying use-cases.”h]”hX[For systems which do not provide IOMMU support, but having specific requirements for display buffers it is possible to allocate such buffers at backend side and share those with the frontend. For example, if host domain is 1:1 mapped and has DRM/GPU hardware expecting physically contiguous memory, this allows implementing zero-copying use-cases.”…””}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:24: ./drivers/gpu/drm/xen/xen_drm_front.h”h´K2hj2h²hubhÌ)”}”(hŒCNote, while using this scenario the following should be considered:”h]”hŒCNote, while using this scenario the following should be considered:”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:24: ./drivers/gpu/drm/xen/xen_drm_front.h”h´K9hj2h²hubhŒenumerated_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒXIf guest domain dies then pages/grants received from the backend cannot be claimed back ”h]”hÌ)”}”(hŒWIf guest domain dies then pages/grants received from the backend cannot be claimed back”h]”hŒWIf guest domain dies then pages/grants received from the backend cannot be claimed back”…””}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:24: ./drivers/gpu/drm/xen/xen_drm_front.h”h´K;hjwubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjrubjv)”}”(hŒŠMisbehaving guest may send too many requests to the backend exhausting its grant references and memory (consider this from security POV) ”h]”hÌ)”}”(hŒˆMisbehaving guest may send too many requests to the backend exhausting its grant references and memory (consider this from security POV)”h]”hŒˆMisbehaving guest may send too many requests to the backend exhausting its grant references and memory (consider this from security POV)”…””}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:24: ./drivers/gpu/drm/xen/xen_drm_front.h”h´K>hjubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjrubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jphj2h²hh³Nh´Nubeh}”(h]”Œ buffers-allocated-by-the-backend”ah ]”h"]”Œ buffers allocated by the backend”ah$]”h&]”uh1hµhhÛh²hh³hÊh´Kubeh}”(h]”Œ:driver-modes-of-operation-in-terms-of-display-buffers-used”ah ]”h"]”Œ:driver modes of operation in terms of display buffers used”ah$]”h&]”uh1hµhh·h²hh³hÊh´K ubh¶)”}”(hhh]”(h»)”}”(hŒDriver limitations”h]”hŒDriver limitations”…””}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhjÄh²hh³hÊh´Kubjq)”}”(hhh]”(jv)”}”(hŒ?Only primary plane without additional properties is supported. ”h]”hÌ)”}”(hŒ>Only primary plane without additional properties is supported.”h]”hŒ>Only primary plane without additional properties is supported.”…””}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:30: ./drivers/gpu/drm/xen/xen_drm_front.h”h´KFhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÕubjv)”}”(hŒNOnly one video mode per connector supported which is configured via XenStore. ”h]”hÌ)”}”(hŒMOnly one video mode per connector supported which is configured via XenStore.”h]”hŒMOnly one video mode per connector supported which is configured via XenStore.”…””}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:30: ./drivers/gpu/drm/xen/xen_drm_front.h”h´KHhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÕubjv)”}”(hŒ/All CRTCs operate at fixed frequency of 60Hz. ”h]”hÌ)”}”(hŒ-All CRTCs operate at fixed frequency of 60Hz.”h]”hŒ-All CRTCs operate at fixed frequency of 60Hz.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/xen-front:30: ./drivers/gpu/drm/xen/xen_drm_front.h”h´KKhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1juhjÕubeh}”(h]”h ]”h"]”h$]”h&]”j¯j°j±hj²j³uh1jphjÄh²hh³Nh´Nubeh}”(h]”Œdriver-limitations”ah ]”h"]”Œdriver limitations”ah$]”h&]”uh1hµhh·h²hh³hÊh´Kubeh}”(h]”Œ2drm-xen-front-xen-para-virtualized-frontend-driver”ah ]”h"]”Œ2drm/xen-front xen para-virtualized frontend driver”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”}”(j6j3jÁj¾j/j,j¹j¶j.j+uŒ nametypes”}”(j6‰jÁ‰j/‰j¹‰j.‰uh}”(j3h·j¾hÛj,hûj¶j2j+jÄuŒ 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.