rsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget&/translations/zh_CN/gpu/xe/xe_configfsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/zh_TW/gpu/xe/xe_configfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/it_IT/gpu/xe/xe_configfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ja_JP/gpu/xe/xe_configfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ko_KR/gpu/xe/xe_configfsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/sp_SP/gpu/xe/xe_configfsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h!SPDX-License-Identifier: GPL-2.0+h]h!SPDX-License-Identifier: GPL-2.0+}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh@/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs.rsthKubhtarget)}(h.. _xe_configfs:h]h}(h]h ]h"]h$]h&]refid xe-configfsuh1hhKhhhhhhubhsection)}(hhh](htitle)}(h Xe Configfsh]h Xe Configfs}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOverviewh]hOverview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhNhNubh paragraph)}(hXUConfigfs is a filesystem-based manager of kernel objects. XE KMD registers a configfs subsystem called ``'xe'`` that creates a directory in the mounted configfs directory The user can create devices under this directory and configure them as necessary See Documentation/filesystems/configfs.rst for more information about how configfs works.h](hgConfigfs is a filesystem-based manager of kernel objects. XE KMD registers a configfs subsystem called }(hhhhhNhNubhliteral)}(h``'xe'``h]h'xe'}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh that creates a directory in the mounted configfs directory The user can create devices under this directory and configure them as necessary See Documentation/filesystems/configfs.rst for more information about how configfs works.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKhhubeh}(h]overviewah ]h"]overviewah$]h&]uh1hhhhhhNhNubh)}(hhh](h)}(hCreate devicesh]hCreate devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhNhNubh)}(hQIn order to create a device, the user has to create a directory inside ``'xe'``::h](hGIn order to create a device, the user has to create a directory inside }(hj&hhhNhNubh)}(h``'xe'``h]h'xe'}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&ubh:}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKhjubh literal_block)}(h)mkdir /sys/kernel/config/xe/0000:03:00.0/h]h)mkdir /sys/kernel/config/xe/0000:03:00.0/}hjIsbah}(h]h ]h"]h$]h&]hhuh1jGhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK!hjubh)}(h_Every device created is populated by the driver with entries that can be used to configure it::h]h^Every device created is populated by the driver with entries that can be used to configure it:}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK#hjubjH)}(hV/sys/kernel/config/xe/ .. 0000:03:00.0/ ... survivability_modeh]hV/sys/kernel/config/xe/ .. 0000:03:00.0/ ... survivability_mode}hjgsbah}(h]h ]h"]h$]h&]hhuh1jGhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK&hjubeh}(h]create-devicesah ]h"]create devicesah$]h&]uh1hhhhhhNhNubh)}(hhh](h)}(hConfigure Attributesh]hConfigure Attributes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hNhNubh)}(hhh](h)}(hSurvivability mode:h]hSurvivability mode:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhNhNubh)}(h|Enable survivability mode on supported cards. This setting only takes effect when probing the device. Example to enable it::h]h{Enable survivability mode on supported cards. This setting only takes effect when probing the device. Example to enable it:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK0hjubjH)}(h# echo 1 > /sys/kernel/config/xe/0000:03:00.0/survivability_mode # echo 0000:03:00.0 > /sys/bus/pci/drivers/xe/bind (Enters survivability mode if supported)h]h# echo 1 > /sys/kernel/config/xe/0000:03:00.0/survivability_mode # echo 0000:03:00.0 > /sys/bus/pci/drivers/xe/bind (Enters survivability mode if supported)}hjsbah}(h]h ]h"]h$]h&]hhuh1jGhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK3hjubeh}(h]survivability-modeah ]h"]survivability mode:ah$]h&]uh1hhj~ubh)}(hhh](h)}(hAllowed engines:h]hAllowed engines:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhNhNubh)}(hAllow only a set of engine(s) to be available, disabling the other engines even if they are available in hardware. This is applied after HW fuses are considered on each tile. Examples:h]hAllow only a set of engine(s) to be available, disabling the other engines even if they are available in hardware. This is applied after HW fuses are considered on each tile. Examples:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK9hjubh)}(h:Allow only one render and one copy engines, nothing else::h]h9Allow only one render and one copy engines, nothing else:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK=hjubjH)}(hG# echo 'rcs0,bcs0' > /sys/kernel/config/xe/0000:03:00.0/engines_allowedh]hG# echo 'rcs0,bcs0' > /sys/kernel/config/xe/0000:03:00.0/engines_allowed}hjsbah}(h]h ]h"]h$]h&]hhuh1jGhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chK?hjubh)}(h2Allow only compute engines and first copy engine::h]h1Allow only compute engines and first copy engine:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKAhjubjH)}(hG# echo 'ccs*,bcs0' > /sys/kernel/config/xe/0000:03:00.0/engines_allowedh]hG# echo 'ccs*,bcs0' > /sys/kernel/config/xe/0000:03:00.0/engines_allowed}hjsbah}(h]h ]h"]h$]h&]hhuh1jGhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKChjubh)}(hNote that the engine names are the per-GT hardware names. On multi-tile platforms, writing ``rcs0,bcs0`` to this file would allow the first render and copy engines on each tile.h](h[Note that the engine names are the per-GT hardware names. On multi-tile platforms, writing }(hj"hhhNhNubh)}(h ``rcs0,bcs0``h]h rcs0,bcs0}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"ubhI to this file would allow the first render and copy engines on each tile.}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKEhjubh)}(hThe requested configuration may not be supported by the platform and driver may fail to probe. For example: if at least one copy engine is expected to be available for migrations, but it's disabled. This is intended for debugging purposes only.h]hThe requested configuration may not be supported by the platform and driver may fail to probe. For example: if at least one copy engine is expected to be available for migrations, but it’s disabled. This is intended for debugging purposes only.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKIhjubeh}(h]allowed-enginesah ]h"]allowed engines:ah$]h&]uh1hhj~ubeh}(h]configure-attributesah ]h"]configure attributesah$]h&]uh1hhhhhhNhNubh)}(hhh](h)}(hRemove devicesh]hRemove devices}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhNhNubh)}(h?The created device directories can be removed using ``rmdir``::h](h4The created device directories can be removed using }(hjshhhNhNubh)}(h ``rmdir``h]hrmdir}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsubh:}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKQhjbubjH)}(h)rmdir /sys/kernel/config/xe/0000:03:00.0/h]h)rmdir /sys/kernel/config/xe/0000:03:00.0/}hjsbah}(h]h ]h"]h$]h&]hhuh1jGhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:9: ./drivers/gpu/drm/xe/xe_configfs.chKShjbubeh}(h]remove-devicesah ]h"]remove devicesah$]h&]uh1hhhhhhNhNubh)}(hhh](h)}(h Internal APIh]h Internal API}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK ubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single/xe_configfs_get_survivability_mode (C function)$c.xe_configfs_get_survivability_modehNtauh1jhjhhhNhNubhdesc)}(hhh](hdesc_signature)}(h>bool xe_configfs_get_survivability_mode (struct pci_dev *pdev)h]hdesc_signature_line)}(h=bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)h](hdesc_sig_keyword_type)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhhc/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:15: ./drivers/gpu/drm/xe/xe_configfs.chMDubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhMDubh desc_name)}(h"xe_configfs_get_survivability_modeh]h desc_sig_name)}(h"xe_configfs_get_survivability_modeh]h"xe_configfs_get_survivability_mode}(hj hhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhMDubhdesc_parameterlist)}(h(struct pci_dev *pdev)h]hdesc_parameter)}(hstruct pci_dev *pdevh](hdesc_sig_keyword)}(hstructh]hstruct}(hj.hhhNhNubah}(h]h ]kah"]h$]h&]uh1j,hj(ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubh)}(hhh]j)}(hpci_devh]hpci_dev}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomaincreftype identifier reftargetjPmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jj ASTIdentifier)}jej sb$c.xe_configfs_get_survivability_modeasbuh1hhj(ubj)}(h h]h }(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhj(ubj)}(hpdevh]hpdev}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j&hj"ubah}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMDubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhjhMDubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhMDhjhhubh desc_content)}(hhh]h)}(h)get configfs survivability mode attributeh]h)get configfs survivability mode attribute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:15: ./drivers/gpu/drm/xe/xe_configfs.chMDhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhMDubeh}(h]h ](jcfunctioneh"]h$]h&]domainjcobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhjhNhNubh container)}(h**Parameters** ``struct pci_dev *pdev`` pci device **Description** find the configfs group that belongs to the pci device and return the survivability mode attribute **Return** survivability mode if config group is found, false otherwiseh](h)}(h**Parameters**h]hstrong)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:15: ./drivers/gpu/drm/xe/xe_configfs.chMHhjubhdefinition_list)}(hhh]hdefinition_list_item)}(h$``struct pci_dev *pdev`` pci device h](hterm)}(h``struct pci_dev *pdev``h]h)}(hjh]hstruct pci_dev *pdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:15: ./drivers/gpu/drm/xe/xe_configfs.chMEhjubh definition)}(hhh]h)}(h pci deviceh]h pci device}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMEhj3ubah}(h]h ]h"]h$]h&]uh1j1hjubeh}(h]h ]h"]h$]h&]uh1jhj0hMEhjubah}(h]h ]h"]h$]h&]uh1j hjubh)}(h**Description**h]j)}(hjXh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:15: ./drivers/gpu/drm/xe/xe_configfs.chMGhjubh)}(hbfind the configfs group that belongs to the pci device and return the survivability mode attributeh]hbfind the configfs group that belongs to the pci device and return the survivability mode attribute}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:15: ./drivers/gpu/drm/xe/xe_configfs.chMFhjubh)}(h **Return**h]j)}(hjh]hReturn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_configfs:15: ./drivers/gpu/drm/xe/xe_configfs.chMIhjubh)}(h