sphinx.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_gt_statsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/zh_TW/gpu/xe/xe_gt_statsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/it_IT/gpu/xe/xe_gt_statsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ja_JP/gpu/xe/xe_gt_statsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ko_KR/gpu/xe/xe_gt_statsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/pt_BR/gpu/xe/xe_gt_statsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/sp_SP/gpu/xe/xe_gt_statsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h*SPDX-License-Identifier: (GPL-2.0+ OR MIT)h]h*SPDX-License-Identifier: (GPL-2.0+ OR MIT)}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh@/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats.rsthKubhsection)}(hhh](htitle)}(hXe GT Statisticsh]hXe GT Statistics}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOverviewh]hOverview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhNhNubh paragraph)}(hKThe Xe driver exposes per-GT statistics through the debugfs filesystem at::h]hJThe Xe driver exposes per-GT statistics through the debugfs filesystem at:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chKhhubh literal_block)}(h+/sys/kernel/debug/dri//gt/statsh]h+/sys/kernel/debug/dri//gt/stats}hjsbah}(h]h ]h"]h$]h&]hhuh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chKhhubh)}(hJThis interface requires the kernel to be built with ``CONFIG_DEBUG_FS=y``.h](h4This interface requires the kernel to be built with }(hjhhhNhNubhliteral)}(h``CONFIG_DEBUG_FS=y``h]hCONFIG_DEBUG_FS=y}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chKhhubeh}(h]overviewah ]h"]overviewah$]h&]uh1hhhhhhNhNubh)}(hhh](h)}(hReading statisticsh]hReading statistics}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hNhNubh)}(h[Reading the file prints all available statistics, one per line, in ``name: value`` format::h](hCReading the file prints all available statistics, one per line, in }(hjLhhhNhNubj)}(h``name: value``h]h name: value}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh format:}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chKhj;ubj)}(hX$ cat /sys/kernel/debug/dri/0/gt0/stats svm_pagefault_count: 0 tlb_inval_count: 1234 ...h]hX$ cat /sys/kernel/debug/dri/0/gt0/stats svm_pagefault_count: 0 tlb_inval_count: 1234 ...}hjmsbah}(h]h ]h"]h$]h&]hhuh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chKhj;ubh)}(hAll values are 64-bit unsigned integers aggregated across all CPUs. Counters accumulate since the driver was loaded or since the last explicit reset. Timing counters use microseconds as their unit; data volume counters use KiB.h]hAll values are 64-bit unsigned integers aggregated across all CPUs. Counters accumulate since the driver was loaded or since the last explicit reset. Timing counters use microseconds as their unit; data volume counters use KiB.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chK!hj;ubeh}(h]reading-statisticsah ]h"]reading statisticsah$]h&]uh1hhhhhhNhNubh)}(hhh](h)}(hResetting statisticsh]hResetting statistics}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhNhNubh)}(hFWriting a boolean true value to the file resets all counters to zero::h]hEWriting a boolean true value to the file resets all counters to zero:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chK)hjubj)}(h*echo 1 > /sys/kernel/debug/dri/0/gt0/statsh]h*echo 1 > /sys/kernel/debug/dri/0/gt0/stats}hjsbah}(h]h ]h"]h$]h&]hhuh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chK+hjubh)}(hAny value accepted by ``kstrtobool()`` (e.g. ``1``, ``y``, ``yes``, ``on``) triggers the reset. Resetting while the GPU is active may yield unpredictable intermediate values; it is recommended to reset only when the GPU is idle.h](hAny value accepted by }(hjhhhNhNubj)}(h``kstrtobool()``h]h kstrtobool()}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh (e.g. }(hjhhhNhNubj)}(h``1``h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj)}(h``y``h]hy}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }hjsbj)}(h``yes``h]hyes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj)}(h``on``h]hon}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh) triggers the reset. Resetting while the GPU is active may yield unpredictable intermediate values; it is recommended to reset only when the GPU is idle.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:7: ./drivers/gpu/drm/xe/xe_gt_stats.chK-hjubeh}(h]resetting-statisticsah ]h"]resetting statisticsah$]h&]uh1hhhhhhNhNubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlexe_gt_stats_id (C enum)c.xe_gt_stats_idhNtauh1j3hhhhhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhNubhdesc)}(hhh](hdesc_signature)}(hxe_gt_stats_idh]hdesc_signature_line)}(henum xe_gt_stats_idh](hdesc_sig_keyword)}(henumh]henum}(hjXhhhNhNubah}(h]h ]kah"]h$]h&]uh1jVhjRhhhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKubhdesc_sig_space)}(h h]h }(hjjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhhjRhhhjghKubh desc_name)}(hxe_gt_stats_idh]h desc_sig_name)}(hjNh]hxe_gt_stats_id}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhj{ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jyhjRhhhjghKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jPsphinx_line_type declaratorhjLhhhjghKubah}(h]jBah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jJhjghKhjGhhubh desc_content)}(hhh]h)}(hGT statistics identifiersh]hGT statistics identifiers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK hjhhubah}(h]h ]h"]h$]h&]uh1jhjGhhhjghKubeh}(h]h ](cenumeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jEhhhhhjDhNubh container)}(hXE**Constants** ``XE_GT_STATS_ID_SVM_PAGEFAULT_COUNT`` Total SVM page faults handled. ``XE_GT_STATS_ID_TLB_INVAL`` Total GPU Translation Lookaside Buffer (TLB) invalidations issued. ``XE_GT_STATS_ID_SVM_TLB_INVAL_COUNT`` TLB invalidations issued during SVM page-fault handling. ``XE_GT_STATS_ID_SVM_TLB_INVAL_US`` Cumulative time (µs) waiting for TLB invalidations during SVM page-fault handling. ``XE_GT_STATS_ID_VMA_PAGEFAULT_COUNT`` Buffer-object (non-SVM) page faults handled. ``XE_GT_STATS_ID_VMA_PAGEFAULT_KB`` Size (KiB) of VMAs involved in buffer-object page fault handling. ``XE_GT_STATS_ID_INVALID_PREFETCH_PAGEFAULT_COUNT`` GPU prefetch faults for addresses with no valid backing. ``XE_GT_STATS_ID_SVM_4K_PAGEFAULT_COUNT`` SVM page faults resolved by mapping 4K pages. ``XE_GT_STATS_ID_SVM_64K_PAGEFAULT_COUNT`` SVM page faults resolved by mapping 64K pages. ``XE_GT_STATS_ID_SVM_2M_PAGEFAULT_COUNT`` SVM page faults resolved by mapping 2M pages. ``XE_GT_STATS_ID_SVM_4K_VALID_PAGEFAULT_COUNT`` Valid SVM page faults at 4K page size, where the GPU mapping was already valid — resolved without creating new mappings. ``XE_GT_STATS_ID_SVM_64K_VALID_PAGEFAULT_COUNT`` Valid SVM page faults at 64K page size. ``XE_GT_STATS_ID_SVM_2M_VALID_PAGEFAULT_COUNT`` Valid SVM page faults at 2M page size. ``XE_GT_STATS_ID_SVM_4K_PAGEFAULT_US`` Cumulative time (µs) handling 4K SVM page faults. ``XE_GT_STATS_ID_SVM_64K_PAGEFAULT_US`` Cumulative time (µs) handling 64K SVM page faults. ``XE_GT_STATS_ID_SVM_2M_PAGEFAULT_US`` Cumulative time (µs) handling 2M SVM page faults. ``XE_GT_STATS_ID_SVM_4K_MIGRATE_COUNT`` 4K pages moved from CPU to device memory. ``XE_GT_STATS_ID_SVM_64K_MIGRATE_COUNT`` 64K pages moved from CPU to device memory. ``XE_GT_STATS_ID_SVM_2M_MIGRATE_COUNT`` 2M pages moved from CPU to device memory. ``XE_GT_STATS_ID_SVM_4K_MIGRATE_US`` Cumulative time (µs) moving 4K pages from CPU to device memory. ``XE_GT_STATS_ID_SVM_64K_MIGRATE_US`` Cumulative time (µs) moving 64K pages from CPU to device memory. ``XE_GT_STATS_ID_SVM_2M_MIGRATE_US`` Cumulative time (µs) moving 2M pages from CPU to device memory. ``XE_GT_STATS_ID_SVM_DEVICE_COPY_US`` Cumulative time (µs) for memory copies to device, across all page sizes. ``XE_GT_STATS_ID_SVM_4K_DEVICE_COPY_US`` Cumulative time (µs) for memory copies of 4K pages to device. ``XE_GT_STATS_ID_SVM_64K_DEVICE_COPY_US`` Cumulative time (µs) for memory copies of 64K pages to device. ``XE_GT_STATS_ID_SVM_2M_DEVICE_COPY_US`` Cumulative time (µs) for memory copies of 2M pages to device. ``XE_GT_STATS_ID_SVM_CPU_COPY_US`` Cumulative time (µs) for memory copies to CPU, across all page sizes. ``XE_GT_STATS_ID_SVM_4K_CPU_COPY_US`` Cumulative time (µs) for memory copies of 4K pages to CPU. ``XE_GT_STATS_ID_SVM_64K_CPU_COPY_US`` Cumulative time (µs) for memory copies of 64K pages to CPU. ``XE_GT_STATS_ID_SVM_2M_CPU_COPY_US`` Cumulative time (µs) for memory copies of 2M pages to CPU. ``XE_GT_STATS_ID_SVM_DEVICE_COPY_KB`` Data (KiB) copied to device across all page sizes. ``XE_GT_STATS_ID_SVM_4K_DEVICE_COPY_KB`` Data (KiB) copied to device for 4K pages. ``XE_GT_STATS_ID_SVM_64K_DEVICE_COPY_KB`` Data (KiB) copied to device for 64K pages. ``XE_GT_STATS_ID_SVM_2M_DEVICE_COPY_KB`` Data (KiB) copied to device for 2M pages. ``XE_GT_STATS_ID_SVM_CPU_COPY_KB`` Data (KiB) copied to CPU across all page sizes. ``XE_GT_STATS_ID_SVM_4K_CPU_COPY_KB`` Data (KiB) copied to CPU for 4K pages. ``XE_GT_STATS_ID_SVM_64K_CPU_COPY_KB`` Data (KiB) copied to CPU for 64K pages. ``XE_GT_STATS_ID_SVM_2M_CPU_COPY_KB`` Data (KiB) copied to CPU for 2M pages. ``XE_GT_STATS_ID_SVM_4K_GET_PAGES_US`` Cumulative time (µs) getting CPU memory pages for GPU access at 4K page size. ``XE_GT_STATS_ID_SVM_64K_GET_PAGES_US`` Cumulative time (µs) getting CPU memory pages for GPU access at 64K page size. ``XE_GT_STATS_ID_SVM_2M_GET_PAGES_US`` Cumulative time (µs) getting CPU memory pages for GPU access at 2M page size. ``XE_GT_STATS_ID_SVM_4K_BIND_US`` Cumulative time (µs) binding 4K pages into the GPU page table. ``XE_GT_STATS_ID_SVM_64K_BIND_US`` Cumulative time (µs) binding 64K pages into the GPU page table. ``XE_GT_STATS_ID_SVM_2M_BIND_US`` Cumulative time (µs) binding 2M pages into the GPU page table. ``XE_GT_STATS_ID_HW_ENGINE_GROUP_SUSPEND_LR_QUEUE_COUNT`` Times the scheduler preempted a long-running (LR) GPU exec queue. ``XE_GT_STATS_ID_HW_ENGINE_GROUP_SKIP_LR_QUEUE_COUNT`` Times the scheduler skipped suspend because the system was idle. ``XE_GT_STATS_ID_HW_ENGINE_GROUP_WAIT_DMA_QUEUE_COUNT`` Times the driver stalled waiting for prior GPU work to complete before scheduling more. ``XE_GT_STATS_ID_HW_ENGINE_GROUP_SUSPEND_LR_QUEUE_US`` Cumulative time (µs) spent preempting long-running (LR) GPU exec queues. ``XE_GT_STATS_ID_HW_ENGINE_GROUP_WAIT_DMA_QUEUE_US`` Cumulative time (µs) stalled waiting for prior GPU work to complete. ``XE_GT_STATS_ID_PRL_4K_ENTRY_COUNT`` 4K-page entries from the page reclaim list that were processed. ``XE_GT_STATS_ID_PRL_64K_ENTRY_COUNT`` 64K-page entries from the page reclaim list that were processed. ``XE_GT_STATS_ID_PRL_2M_ENTRY_COUNT`` 2M-page entries from the page reclaim list that were processed. ``XE_GT_STATS_ID_PRL_ISSUED_COUNT`` Times a page reclamation was issued. ``XE_GT_STATS_ID_PRL_ABORTED_COUNT`` Times the page reclaim process was aborted. ``__XE_GT_STATS_NUM_IDS`` Number of valid IDs; not a real counter.h](h)}(h **Constants**h]hstrong)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubhdefinition_list)}(hhh](hdefinition_list_item)}(hF``XE_GT_STATS_ID_SVM_PAGEFAULT_COUNT`` Total SVM page faults handled. h](hterm)}(h&``XE_GT_STATS_ID_SVM_PAGEFAULT_COUNT``h]j)}(hjh]h"XE_GT_STATS_ID_SVM_PAGEFAULT_COUNT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubh definition)}(hhh]h)}(hTotal SVM page faults handled.h]hTotal SVM page faults handled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h```XE_GT_STATS_ID_TLB_INVAL`` Total GPU Translation Lookaside Buffer (TLB) invalidations issued. h](j)}(h``XE_GT_STATS_ID_TLB_INVAL``h]j)}(hj=h]hXE_GT_STATS_ID_TLB_INVAL}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhj7ubj)}(hhh]h)}(hBTotal GPU Translation Lookaside Buffer (TLB) invalidations issued.h]hBTotal GPU Translation Lookaside Buffer (TLB) invalidations issued.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhKhjubj)}(h```XE_GT_STATS_ID_SVM_TLB_INVAL_COUNT`` TLB invalidations issued during SVM page-fault handling. h](j)}(h&``XE_GT_STATS_ID_SVM_TLB_INVAL_COUNT``h]j)}(hjwh]h"XE_GT_STATS_ID_SVM_TLB_INVAL_COUNT}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjqubj)}(hhh]h)}(h8TLB invalidations issued during SVM page-fault handling.h]h8TLB invalidations issued during SVM page-fault handling.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hx``XE_GT_STATS_ID_SVM_TLB_INVAL_US`` Cumulative time (µs) waiting for TLB invalidations during SVM page-fault handling. h](j)}(h#``XE_GT_STATS_ID_SVM_TLB_INVAL_US``h]j)}(hjh]hXE_GT_STATS_ID_SVM_TLB_INVAL_US}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubj)}(hhh]h)}(hSCumulative time (µs) waiting for TLB invalidations during SVM page-fault handling.h]hSCumulative time (µs) waiting for TLB invalidations during SVM page-fault handling.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hT``XE_GT_STATS_ID_VMA_PAGEFAULT_COUNT`` Buffer-object (non-SVM) page faults handled. h](j)}(h&``XE_GT_STATS_ID_VMA_PAGEFAULT_COUNT``h]j)}(hjh]h"XE_GT_STATS_ID_VMA_PAGEFAULT_COUNT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK#hjubj)}(hhh]h)}(h,Buffer-object (non-SVM) page faults handled.h]h,Buffer-object (non-SVM) page faults handled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK#hjubj)}(hf``XE_GT_STATS_ID_VMA_PAGEFAULT_KB`` Size (KiB) of VMAs involved in buffer-object page fault handling. h](j)}(h#``XE_GT_STATS_ID_VMA_PAGEFAULT_KB``h]j)}(hj%h]hXE_GT_STATS_ID_VMA_PAGEFAULT_KB}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK'hjubj)}(hhh]h)}(hASize (KiB) of VMAs involved in buffer-object page fault handling.h]hASize (KiB) of VMAs involved in buffer-object page fault handling.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK&hj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hK'hjubj)}(hm``XE_GT_STATS_ID_INVALID_PREFETCH_PAGEFAULT_COUNT`` GPU prefetch faults for addresses with no valid backing. h](j)}(h3``XE_GT_STATS_ID_INVALID_PREFETCH_PAGEFAULT_COUNT``h]j)}(hj_h]h/XE_GT_STATS_ID_INVALID_PREFETCH_PAGEFAULT_COUNT}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK+hjYubj)}(hhh]h)}(h8GPU prefetch faults for addresses with no valid backing.h]h8GPU prefetch faults for addresses with no valid backing.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK*hjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthK+hjubj)}(hX``XE_GT_STATS_ID_SVM_4K_PAGEFAULT_COUNT`` SVM page faults resolved by mapping 4K pages. h](j)}(h)``XE_GT_STATS_ID_SVM_4K_PAGEFAULT_COUNT``h]j)}(hjh]h%XE_GT_STATS_ID_SVM_4K_PAGEFAULT_COUNT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK/hjubj)}(hhh]h)}(h-SVM page faults resolved by mapping 4K pages.h]h-SVM page faults resolved by mapping 4K pages.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK.hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK/hjubj)}(hZ``XE_GT_STATS_ID_SVM_64K_PAGEFAULT_COUNT`` SVM page faults resolved by mapping 64K pages. h](j)}(h*``XE_GT_STATS_ID_SVM_64K_PAGEFAULT_COUNT``h]j)}(hjh]h&XE_GT_STATS_ID_SVM_64K_PAGEFAULT_COUNT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK3hjubj)}(hhh]h)}(h.SVM page faults resolved by mapping 64K pages.h]h.SVM page faults resolved by mapping 64K pages.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK3hjubj)}(hX``XE_GT_STATS_ID_SVM_2M_PAGEFAULT_COUNT`` SVM page faults resolved by mapping 2M pages. h](j)}(h)``XE_GT_STATS_ID_SVM_2M_PAGEFAULT_COUNT``h]j)}(hj h]h%XE_GT_STATS_ID_SVM_2M_PAGEFAULT_COUNT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK7hjubj)}(hhh]h)}(h-SVM page faults resolved by mapping 2M pages.h]h-SVM page faults resolved by mapping 2M pages.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK6hj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hK7hjubj)}(h``XE_GT_STATS_ID_SVM_4K_VALID_PAGEFAULT_COUNT`` Valid SVM page faults at 4K page size, where the GPU mapping was already valid — resolved without creating new mappings. h](j)}(h/``XE_GT_STATS_ID_SVM_4K_VALID_PAGEFAULT_COUNT``h]j)}(hjGh]h+XE_GT_STATS_ID_SVM_4K_VALID_PAGEFAULT_COUNT}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKCumulative time (µs) for memory copies of 4K pages to device.h]h>Cumulative time (µs) for memory copies of 4K pages to device.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKohjOubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjNhKphjubj)}(hj``XE_GT_STATS_ID_SVM_64K_DEVICE_COPY_US`` Cumulative time (µs) for memory copies of 64K pages to device. h](j)}(h)``XE_GT_STATS_ID_SVM_64K_DEVICE_COPY_US``h]j)}(hjsh]h%XE_GT_STATS_ID_SVM_64K_DEVICE_COPY_US}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKthjmubj)}(hhh]h)}(h?Cumulative time (µs) for memory copies of 64K pages to device.h]h?Cumulative time (µs) for memory copies of 64K pages to device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKshjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhKthjubj)}(hh``XE_GT_STATS_ID_SVM_2M_DEVICE_COPY_US`` Cumulative time (µs) for memory copies of 2M pages to device. h](j)}(h(``XE_GT_STATS_ID_SVM_2M_DEVICE_COPY_US``h]j)}(hjh]h$XE_GT_STATS_ID_SVM_2M_DEVICE_COPY_US}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKxhjubj)}(hhh]h)}(h>Cumulative time (µs) for memory copies of 2M pages to device.h]h>Cumulative time (µs) for memory copies of 2M pages to device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKwhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKxhjubj)}(hj``XE_GT_STATS_ID_SVM_CPU_COPY_US`` Cumulative time (µs) for memory copies to CPU, across all page sizes. h](j)}(h"``XE_GT_STATS_ID_SVM_CPU_COPY_US``h]j)}(hjh]hXE_GT_STATS_ID_SVM_CPU_COPY_US}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK|hjubj)}(hhh]h)}(hFCumulative time (µs) for memory copies to CPU, across all page sizes.h]hFCumulative time (µs) for memory copies to CPU, across all page sizes.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhK{hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK|hjubj)}(hb``XE_GT_STATS_ID_SVM_4K_CPU_COPY_US`` Cumulative time (µs) for memory copies of 4K pages to CPU. h](j)}(h%``XE_GT_STATS_ID_SVM_4K_CPU_COPY_US``h]j)}(hj! h]h!XE_GT_STATS_ID_SVM_4K_CPU_COPY_US}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhj ubj)}(hhh]h)}(h;Cumulative time (µs) for memory copies of 4K pages to CPU.h]h;Cumulative time (µs) for memory copies of 4K pages to CPU.}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhj7 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj6 hKhjubj)}(hd``XE_GT_STATS_ID_SVM_64K_CPU_COPY_US`` Cumulative time (µs) for memory copies of 64K pages to CPU. h](j)}(h&``XE_GT_STATS_ID_SVM_64K_CPU_COPY_US``h]j)}(hj[ h]h"XE_GT_STATS_ID_SVM_64K_CPU_COPY_US}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY ubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjU ubj)}(hhh]h)}(h`h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubj)}(h@struct xe_gt_stats { u64 counters[__XE_GT_STATS_NUM_IDS]; };h]h@struct xe_gt_stats { u64 counters[__XE_GT_STATS_NUM_IDS]; };}hj<sbah}(h]h ]h"]h$]h&]hhuh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubh)}(h **Members**h]j)}(hjMh]hMembers}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubj)}(hhh]j)}(h_``counters`` Array of 64-bit counters indexed by :c:type:`enum xe_gt_stats_id `h](j)}(h ``counters``h]j)}(hjlh]hcounters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjfubj)}(hhh]h)}(hRArray of 64-bit counters indexed by :c:type:`enum xe_gt_stats_id `h](h$Array of 64-bit counters indexed by }(hjhhhNhNubh)}(h.:c:type:`enum xe_gt_stats_id `h]j)}(hjh]henum xe_gt_stats_id}(hjhhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocgpu/xe/xe_gt_stats refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]sb reftargetxe_gt_stats_iduh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjhKhjcubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhjDhNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhhhhubh)}(hThis structure is used for high-frequency, per-CPU statistics collection in the Xe driver. By using a per-CPU allocation and ensuring the structure is cache-line aligned, we avoid the performance-heavy atomics and cache coherency traffic.h]hThis structure is used for high-frequency, per-CPU statistics collection in the Xe driver. By using a per-CPU allocation and ensuring the structure is cache-line aligned, we avoid the performance-heavy atomics and cache coherency traffic.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhhhhubh)}(hUpdates to these counters should be performed using the this_cpu_add() macro to ensure they are atomic with respect to local interrupts and preemption-safe without the overhead of explicit locking.h]hUpdates to these counters should be performed using the this_cpu_add() macro to ensure they are atomic with respect to local interrupts and preemption-safe without the overhead of explicit locking.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhi/var/lib/git/docbuild/linux/Documentation/gpu/xe/xe_gt_stats:10: ./drivers/gpu/drm/xe/xe_gt_stats_types.hhKhhhhubeh}(h]xe-gt-statisticsah ]h"]xe gt statisticsah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj8error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjj8j5jjj0j-u nametypes}(jj8jj0uh}(jhj5hjj;j-jjBjLjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.