amdgpu_devic...u_direct_map(9)
π amdgpu_devic...u_direct_map(9) β Kernel API Manual β¨
okay so bestie, welcome to the Kernel API Manual entry for amdgpu_devic...u_direct_map(9). yes the title is truncated, no that's not a you problem, that's just how the man page tooling renders it. we move. π«Ά
πΈ NAME πΈ
amdgpu_device_check_iommu_direct_map β literally just checks if RAM is direct mapped to the GPU π₯
π SYNOPSIS π
void amdgpu_device_check_iommu_direct_map (struct amdgpu_device *adev );
that's it. one function, one argument, void return, she's lowkey minimal and I respect it. β¨
π¦ ARGUMENTS π¦
adevβ anamdgpu_devicepointer. that's the whole personality description. it's the device struct, bestie, you already know. π
π DESCRIPTION π
so here's the tea: RAM is direct mapped to the GPU if IOMMU is not enabled, or if IOMMU is in pass through mode. that's the entire condition. no cap. π§
like, that's what this function is checking for, periodt. two vibes and only two vibes get you a direct map: IOMMU off, or IOMMU in pass through mode. π―
π SEE ALSO π
the source file lives at ./drivers/gpu/drm/amd/amdgpu/amdgpu_device.c β go read it, it's giving main character energy. π
and here's the entire friend group, no one left out, I would never do that to you:
pcie_replay_count(9)board_info(9)uma/carveout_options(9)uma/carveout(9)amdgpu_device_supports_px(9)amdgpu_device_supports_boco(9)amdgpu_device_supports_baco(9)amdgpu_device_supports_smart_shift(9)amdgpu_device_mm_access(9)amdgpu_device_aper_access(9)amdgpu_device_vram_access(9)amdgpu_device_get_rev_id(9)amdgpu_device_asic_init(9)amdgpu_device_mem_scratch_init(9)amdgpu_device_mem_scratch_fini(9)amdgpu_device_program_register_sequence(9)amdgpu_device_pci_config_reset(9)amdgpu_device_pci_reset(9)amdgpu_device_resize_fb_bar(9)amdgpu_device_need_post(9)amdgpu_device_should_use_aspm(9)amdgpu_device_vga_set_decode(9)amdgpu_device_check_block_size(9)amdgpu_device_check_vm_size(9)amdgpu_device_check_arguments(9)amdgpu_switcheroo_set_state(9)amdgpu_switcheroo_can_switch(9)amdgpu_device_enable_virtual_display(9)amdgpu_device_parse_gpu_info_fw(9)amdgpu_device_ip_early_init(9)amdgpu_device_ip_init(9)amdgpu_device_fill_reset_magic(9)amdgpu_device_check_vram_lost(9)amdgpu_device_set_cg_state(9)amdgpu_device_ip_late_init(9)amdgpu_device_smu_fini_early(9)amdgpu_device_ip_fini(9)amdgpu_device_delayed_init_work_handler(9)amdgpu_device_ip_suspend_phase1(9)amdgpu_device_ip_suspend_phase2(9)amdgpu_device_ip_suspend(9)amdgpu_device_ip_resume_phase1(9)amdgpu_device_ip_resume_phase2(9)amdgpu_device_ip_resume_phase3(9)amdgpu_device_ip_resume(9)amdgpu_device_detect_sriov_bios(9)amdgpu_device_asic_has_dc_support(9)amdgpu_device_has_dc_support(9)amdgpu_device_check_iommu_remap(9)amdgpu_device_init(9)amdgpu_device_fini_hw(9)amdgpu_device_evict_resources(9)amdgpu_device_pm_notifier(9)amdgpu_device_prepare(9)amdgpu_device_complete(9)amdgpu_device_suspend(9)amdgpu_device_resume(9)amdgpu_device_reset_sriov(9)amdgpu_device_has_job_running(9)amdgpu_device_should_recover_gpu(9)amdgpu_device_gpu_recover(9)amdgpu_device_partner_bandwidth(9)amdgpu_device_gpu_bandwidth(9)amdgpu_device_get_pcie_info(9)amdgpu_device_is_peer_accessible(9)amdgpu_pci_error_detected(9)amdgpu_pci_mmio_enabled(9)amdgpu_pci_slot_reset(9)amdgpu_pci_resume(9)amdgpu_device_halt(9)amdgpu_device_get_gang(9)amdgpu_device_switch_gang(9)amdgpu_device_enforce_isolation(9)
like, that's the whole squad. ate and left no crumbs. π
reminder bestie: the IOMMU condition is the whole point of this page, don't overthink it, just remember β no IOMMU or pass through mode equals RAM direct mapped to the GPU. iykyk. π
mwah π this page lives in ./drivers/gpu/drm/amd/amdgpu, dated October 2026 β that's the source and the version date, and yes I memorized both, obsessed with me honestly. β
π¦ 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