INIT, G2H-EVENT AND REPORTING FLOWS FOR GUC-ERROR-CAPTURE(9)
πΈ Init, G2H-event and reporting flows for GuC-error-capture (9) πΈ
okay so bestie, this is the Kernel API Manual page for the GuC-error-capture init + G2H-event + reporting flows, section 9 β the whole map, no cap. π
β¨ iykyk
π« KMD Init time flows π«
- --> alloc A: GuC input capture regs lists (registered to GuC via
ADS).xe_guc_adsacquires the register lists by callingxe_guc_capture_getlistsizeandxe_guc_capture_getlist'n'times, wheren = 1for global-reg-list +num_engine_classesfor class-reg-list +num_engine_classesfor instance-reg-list (since all instances of the same engine-class type have an identical engine-instance register-list).- The
ADSmodule also calls separately for PF vs VF.
- --> alloc B: GuC output capture buf (registered via
guc_init_params(log_param)).- Size =
XE_GUC_LOG_STATE_CAPTURE_BUFFER_SIZE(warns if on too-small). - Note2:
'x 3'to hold multiple capture groups.
- Size =
π‘ GUC Runtime notify capture π‘
- --> G2H
STATE_CAPTURE_NOTIFICATIONL-->xe_guc_capture_processL-->Loop through B (head..tail) and for each engine instance's err-state-captured register-list we find, we alloc'C':- --> alloc C: A capture-output-node structure that includes misc capture info along with 3 register list dumps (global, engine-class and engine-instance).
- This node is created from a pre-allocated list of blank nodes in
guc->capture->cachelistand populated with the error-capture data from GuC and then it's added intoguc->capture->outlistlinked list. - This list is used for matchup and printout by
xe_devcoredump_readandxe_engine_snapshot_print, (when user invokes the devcoredump sysfs).
- This node is created from a pre-allocated list of blank nodes in
- --> alloc C: A capture-output-node structure that includes misc capture info along with 3 register list dumps (global, engine-class and engine-instance).
π¨ GUC --> notify context reset π¨
- -->
guc_exec_queue_timedout_jobL-->xe_devcoredumpL-->devcoredump_snapshot- -->
xe_hw_engine_snapshot_capture - -->
xe_engine_manual_capture(For manual capture)
π₯οΈ User Sysfs / Debugfs π₯οΈ
- -->
xe_devcoredump_read->L-->xxx_snapshot_printL-->xe_engine_snapshot_print- Print register lists values saved at
guc->capture->outlist.
- Print register lists values saved at
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/xe/xe_guc_capture.c xe_guc_capture_getlistsize(9)xe_guc_capture_getlist(9)xe_guc_capture_getnullheader(9)xe_guc_capture_ads_input_worst_size(9)xe_engine_manual_capture(9)xe_engine_snapshot_print(9)xe_guc_capture_get_matching_and_lock(9)xe_engine_snapshot_capture_for_queue(9)
xoxo bestie, source/version ./drivers/gpu/drm/xe, dated October 2026 ππ«Ά
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms