cik_vm_decode_fault(9)
π cik_vm_decode_fault(9) β kernel API manual realness
okay bestie, so this page is literally the cik_vm_decode_fault(9) kernel API manual, and it's the whole entire vibe for one tiny little function that makes GPU boo-boos actually readable. π
β¨ NAME β¨
cik_vm_decode_fault β print human readable fault info ππ
like, it takes the scary hex numbers and turns them into words a human can actually read. iconic behavior fr fr.
πΈ SYNOPSIS πΈ
void cik_vm_decode_fault (struct radeon_device *rdev , u32 status , u32 addr , u32 mc_client );
that's it. that's the whole signature. four args, returns void, no cap. π«Ά
π¦ ARGUMENTS π¦
okay so here's the rundown of what you're feeding it, keep up:
rdevβ aradeon_devicepointer. yes bestie, the radeon device. that's your main character. πstatusβ the value of theVM_CONTEXT1_PROTECTION_FAULT_STATUSregister. this is the gossip, the lore, the what actually happened. βaddrβ the value of theVM_CONTEXT1_PROTECTION_FAULT_ADDRregister. the address where the whole mess went down. πmc_clientβ the value of theVM_CONTEXT1_PROTECTION_FAULT_MCCLIENTregister. which client. who did this. we WILL be finding out. π
π DESCRIPTION π
It prints human readable fault information (CIK).
that's the whole thing. so unbothered, so concise, so real. it takes a fault and makes it make sense β like a translator but for GPU suffering. β¨
ngl the description is short because the function's whole job is literally "make the fault info readable". no extra plot, just vibes and output. π§
π₯ SEE ALSO π₯
First up, the birthplace of all this: the kernel file ./drivers/gpu/drm/radeon/cik.c β go read the source bestie, it's all in there. π
And now the iconic lineup, every single one of these reference cuties, in order, no skips:
cik_get_allowed_info_register(9), cik_get_xclk(9), cik_mm_rdoorbell(9), cik_mm_wdoorbell(9), cik_srbm_select(9), ci_mc_load_microcode(9), cik_init_microcode(9), cik_tiling_mode_table_init(9), cik_select_se_sh(9), cik_create_bitmask(9), cik_get_rb_disabled(9), cik_setup_rb(9), cik_gpu_init(9), cik_scratch_init(9), cik_ring_test(9), cik_hdp_flush_cp_ring_emit(9), cik_fence_gfx_ring_emit(9), cik_fence_compute_ring_emit(9), cik_semaphore_ring_emit(9), cik_copy_cpdma(9), cik_ring_ib_execute(9), cik_ib_test(9), cik_cp_gfx_enable(9), cik_cp_gfx_load_microcode(9), cik_cp_gfx_start(9), cik_cp_gfx_fini(9), cik_cp_gfx_resume(9), cik_cp_compute_enable(9), cik_cp_compute_load_microcode(9), cik_cp_compute_start(9), cik_cp_compute_fini(9), cik_cp_compute_resume(9), cik_gpu_check_soft_reset(9), cik_gpu_soft_reset(9), cik_asic_reset(9), cik_gfx_is_lockup(9), cik_mc_program(9), cik_mc_init(9), cik_pcie_gart_tlb_flush(9), cik_pcie_gart_enable(9), cik_pcie_gart_disable(9), cik_pcie_gart_fini(9), cik_ib_parse(9), cik_vm_init(9), cik_vm_fini(9), cik_rlc_stop(9), cik_rlc_start(9), cik_rlc_resume(9), cik_enable_interrupts(9), cik_disable_interrupts(9), cik_disable_interrupt_state(9), cik_irq_init(9), cik_irq_set(9), cik_irq_ack(9), cik_irq_disable(9), cik_irq_suspend(9), cik_irq_fini(9), cik_get_ih_wptr(9), cik_irq_process(9), cik_startup(9), cik_resume(9), cik_suspend(9), cik_init(9), cik_fini(9), dce8_line_buffer_adjust(9), cik_get_number_of_dram_channels(9), dce8_dram_bandwidth(9), dce8_dram_bandwidth_for_display(9), dce8_data_return_bandwidth(9), dce8_dmif_request_bandwidth(9), dce8_available_bandwidth(9), dce8_average_bandwidth(9), dce8_latency_watermark(9), dce8_average_bandwidth_vs_dram_bandwidth_for_display(9), dce8_average_bandwidth_vs_available_bandwidth(9), dce8_check_latency_hiding(9), dce8_program_watermarks(9), dce8_bandwidth_update(9), cik_get_gpu_clock_counter(9)
likeβ¦ that's a whole friend group right there. iykyk π
π sign-off π
so yeah, this page lives in ./drivers/gpu/drm/radeon, and it's dated October 2026 β future-coded of it honestly. go forth and decode those faults, bestie. you've got this. πβ¨π¦
π¦ 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