€•.Œ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Œ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.”…””}”(hhø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”…””}”(hj!hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhž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.”…””}”(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/hjhž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.”…””}”(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 K2hjhžhubh¸)”}”(hŒCNote, while using this scenario the following should be considered:”h]”hŒCNote, while using this scenario the following should be considered:”…””}”(hjMhž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 K9hjhž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”…””}”(hjghž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;hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1jahj^ubjb)”}”(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>hj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1jahj^ubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1j\hjhž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 Kubj])”}”(hhh]”(jb)”}”(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&]”uh1jahjÁubjb)”}”(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&]”uh1jahjÁubjb)”}”(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.”…””}”(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 KKhjöubah}”(h]”h ]”h"]”h$]”h&]”uh1jahjÁubeh}”(h]”h ]”h"]”h$]”h&]”j›jœjhjžjŸuh1j\hj°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”jHŒ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”}”(j"jj­jªjjj¥j¢jjuŒ nametypes”}”(j"‰j­‰j‰j¥‰j‰uh}”(jh£jªhÇjhçj¢jjj°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.