Linux 内核 mmu_notifier 与 mmu_interval_notifier机制详解

1. 背景与意义

1.1 虚拟内存与设备协作的挑战

在现代操作系统中,虚拟内存(VM)为进程提供了独立、连续的地址空间,并通过页表(Page Table)实现虚拟地址到物理地址的映射。随着虚拟化(如 KVM)、异构计算(如 GPU/FPGA 直连)、高性能网络(如 RDMA)等场景的普及,越来越多的设备需要直接访问用户进程的虚拟地址空间,实现高效的数据共享和“零拷贝”访问。

然而,进程的虚拟地址空间是动态变化的,可能随时发生如下事件:

  • 内存区域被 munmap()mremap()mprotect() 等系统调用修改或释放;

  • 页表项被回收、迁移、换出(swap out);

  • 物理页被迁移到设备私有内存(如 GPU 显存)或回迁到系统内存;

  • 进程退出,整个地址空间被销毁。

如果设备端(如 GPU 页表、DMA 映射等)不能及时感知这些变化,可能导致数据不一致、非法访问、内存泄漏甚至系统崩溃。

1.2 mmu_notifier 与 mmu_interval_notifier 的作用

为了解决上述问题,Linux 内核引入了 mmu_notifier 和 mmu_interval_notifier 机制,允许设备驱动注册回调函数,在进程虚拟地址空间发生变化时获得通知,从而实现设备页表、DMA 映射等的同步和一致性管理。

  • mmu_notifier:为整个进程的地址空间或大范围内存区间提供失效通知,适合 KVM、虚拟化等场景。

  • mmu_interval_notifier:为任意虚拟地址区间(interval)提供高效、细粒度、异步失效通知,适合 HMM、GPU SVM、RDMA 等场景。

2. mmu_notifier 的原理与用法

2.1 设计目标

  • 为设备驱动提供进程虚拟地址空间变化的通知机制。
  • 支持多种事件类型(如 unmap、clear、protection change、migrate 等)。
  • 支持同步和异步通知,保证设备端与 CPU 页表的一致性。

2.2 关键数据结构

2.2.1 struct mmu_notifier_ops
  • 每个回调函数对应一种内存事件,驱动可按需实现。
struct mmu_notifier_ops {
    void (*release)(struct mmu_notifier *subscription, struct mm_struct *mm);
    int (*clear_flush_young)(struct mmu_notifier *subscription, struct mm_struct *mm, unsigned long start, unsigned long end);
    int (*clear_young)(struct mmu_notifier *subscription, struct mm_struct *mm, unsigned long start, unsigned long end);
    int (*test_young)(struct mmu_notifier *subscription, struct mm_struct *mm, unsigned long address);
    int (*invalidate_range_start)(struct mmu_notifier *subscription, const struct mmu_notifier_range *range);
    void (*invalidate_range_end)(struct mmu_notifier *subscription, const struct mmu_notifier_range *range);
    void (*arch_invalidate_secondary_tlbs)(struct mmu_notifier *subscription, struct mm_struct *mm, unsigned long start, unsigned long end);
    struct mmu_notifier *(*alloc_notifier)(struct mm_struct *mm);
    void (*free_notifier)(struct mmu_notifier *subscription);
};
2.2.2 struct mmu_notifier
  • 维护回调函数、关联的进程 mm_struct、引用计数等。
struct mmu_notifier {
    struct hlist_node hlist;
    const struct mmu_notifier_ops *ops;
    struct mm_struct *mm;
    struct rcu_head rcu;
    unsigned int users;
};
2.2.3 struct mmu_notifier_range
  • 描述失效事件的区间、类型、标志等。
struct mmu_notifier_range {
    struct mm_struct *mm;
    unsigned long start;
    unsigned long end;
    unsigned flags;
    enum mmu_notifier_event event;
    void *owner;
};
2.2.4 enum mmu_notifier_event
enum mmu_notifier_event {
    MMU_NOTIFY_UNMAP,
    MMU_NOTIFY_CLEAR,
    MMU_NOTIFY_PROTECTION_VMA,
    MMU_NOTIFY_PROTECTION_PAGE,
    MMU_NOTIFY_SOFT_DIRTY,
    MMU_NOTIFY_RELEASE,
    MMU_NOTIFY_MIGRATE,
    MMU_NOTIFY_EXCLUSIVE,
};
  • 事件类型,驱动可根据类型做不同处理。

2.3 主要 API

API 名称作用说明
mmu_notifier_register注册 notifier 到指定 mm_struct
mmu_notifier_unregister注销 notifier
mmu_notifier_get / mmu_notifier_put获取/释放 notifier 引用
mmu_notifier_invalidate_range_start / end通知区间失效开始/结束
mmu_notifier_clear_flush_young / clear_young / test_young管理页表 accessed/young 位
mmu_notifier_release通知 mm_struct 释放

2.4 用法流程

  1. 定义并实现 mmu_notifier_ops 回调
    设备驱动实现关心的回调函数,如 invalidate_range_start/end、release 等。

  2. 注册 notifier
    调用 mmu_notifier_register() 将 notifier 注册到进程的 mm_struct。

  3. 事件通知
    当进程虚拟地址空间发生变化时,内核自动调用所有注册 notifier 的回调。

  4. 注销 notifier
    设备不再需要时,调用 mmu_notifier_unregister() 注销。

2.5 典型应用场景

  • KVM 虚拟化:KVM 通过 mmu_notifier 感知 guest 物理内存的变化,动态同步 shadow page table。

  • GPU 驱动:同步 GPU 页表与 CPU 页表,处理 SVM 区间失效。

  • RDMA/DPDK:管理 DMA 映射的生命周期,防止非法访问。

3. mmu_interval_notifier 的原理与用法

3.1 设计目标

  • 为设备驱动提供任意虚拟地址区间的高效、细粒度、异步失效通知。

  • 支持高并发、大规模区间的高效管理。

  • 支持异步、可重试的通知机制,适合 HMM、GPU SVM、RDMA 等场景。

3.2 关键数据结构

3.2.1 struct mmu_interval_notifier_ops
  • invalidate 回调,区间失效时调用。

struct mmu_interval_notifier_ops {
    bool (*invalidate)(struct mmu_interval_notifier *interval_sub,
                       const struct mmu_notifier_range *range,
                       unsigned long cur_seq);
};
3.2.2 struct mmu_interval_notifier
  • 维护区间信息、回调、序号等。

struct mmu_interval_notifier {
    struct interval_tree_node interval_tree;
    const struct mmu_interval_notifier_ops *ops;
    struct mm_struct *mm;
    struct hlist_node deferred_item;
    unsigned long invalidate_seq;
};

3.3 主要 API

API 名称作用说明
mmu_interval_notifier_insert注册 interval_notifier 到指定区间
mmu_interval_notifier_remove注销 interval_notifier
mmu_interval_read_begin开始一次区间的“读保护”操作,获取当前序号
mmu_interval_read_retry检查读操作期间是否有失效事件发生,需重试
mmu_interval_set_seq在 invalidate 回调中设置新的失效序号
mmu_interval_check_retry长操作中间检查是否有失效,便于提前重试

3.4 用法流程

  1. 定义并实现 mmu_interval_notifier_ops 回调
    设备驱动实现 invalidate 回调,处理区间失效。

  2. 注册 interval_notifier
    调用 mmu_interval_notifier_insert() 注册到指定区间。

  3. 设备访问前同步

    • 调用 mmu_interval_read_begin() 获取序号。

    • 执行实际操作(如页表同步、DMA 映射、数据迁移等)。

    • 调用 mmu_interval_read_retry() 检查期间是否有失效,若有则重试。

  4. 失效事件发生

    • 内核检测到区间变化,遍历 interval tree,调用所有重叠区间的 invalidate 回调。

    • 回调中驱动暂停设备访问、unmap 页表、准备恢复等,并调用 mmu_interval_set_seq() 更新序号。

  5. 注销 interval_notifier
    操作结束或区间不再需要时,调用 mmu_interval_notifier_remove() 注销。

3.5 典型应用场景

  • HMM(异构内存管理):GPU/FPGA 等设备通过 mmu_interval_notifier 感知用户空间 SVM 区间的失效,动态同步页表和数据迁移。

  • KFD/ROCm SVM:AMD GPU 驱动通过 mmu_interval_notifier 管理 SVM 区间,实现 CPU/GPU 共享虚拟内存和 page fault 支持。

  • RDMA/DPDK:高性能网络设备通过 mmu_interval_notifier 管理 DMA 映射,感知用户空间 buffer 的失效和回收。

4. 内核实现机制

4.1 mmu_notifier 的实现

  • 内核为每个 mm_struct 维护一个 notifier 链表,存储所有注册的 mmu_notifier。

  • 当虚拟地址空间发生变化时,内核遍历 notifier 链表,调用所有回调。

  • 事件类型丰富,支持多种内存管理场景。

4.2 mmu_interval_notifier 的实现

  • 内核为每个 mm_struct 维护一个 interval tree,管理所有注册的 mmu_interval_notifier。

  • 当虚拟地址空间发生变化时,内核遍历 interval tree,查找所有与变化区间重叠的 notifier,并调用其 invalidate 回调。

  • 每个 notifier 维护一个 invalidate_seq 序号,支持高效的同步与重试机制。

4.3 失效同步与重试机制

  • 设备访问前,调用 mmu_interval_read_begin 获取当前序号。

  • 操作期间如果有失效事件,invalidate 回调会调用 mmu_interval_set_seq 更新序号。

  • 操作结束后用 mmu_interval_read_retry 检查序号是否变化,若变化则重试。

5. 总结

  • mmu_notifier 和 mmu_interval_notifier 是 Linux 内核支持虚拟化、异构计算、高性能设备协作的关键基础设施,为设备驱动提供了高效、细粒度、异步的虚拟地址区间失效通知机制。

  • 驱动开发者应充分利用其区间注册、失效回调、序号同步等机制,保证设备端与 CPU 页表的一致性和安全性。

  • 在 SVM、HMM、RDMA、虚拟化等场景下,mmu_notifier 和 mmu_interval_notifier 能极大提升系统性能和健壮性。

  • 合理设计区间粒度、失效处理和重试机制,可进一步优化性能和资源利用。

如有帮助,请三连:点赞、收藏、加关注。

还是报错, nvidia-installer log file '/var/log/nvidia-installer.log' creation time: Mon Nov 10 13:26:24 2025 installer version: 560.35.03 PATH: /root/.local/bin:/root/bin:/usr/share/Modules/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin nvidia-installer command line: ./nvidia-installer --no-opengl-files Using: nvidia-installer ncurses v6 user interface -> Detected 48 CPUs online; setting concurrency level to 32. -> Scanning the initramfs with lsinitrd... -> /usr/bin/lsinitrd requires a file path argument, but none was given. -> Executing: /usr/bin/lsinitrd /boot/initramfs-5.14.0-570.12.1.el9_6.x86_64.img -> Nouveau detected in initramfs -> Initramfs scan complete. -> Multiple kernel module types are available for this system. Which would you like to use? (Answer: NVIDIA Proprietary) -> Installing NVIDIA driver version 560.35.03. -> Performing CC sanity check with CC="/usr/bin/cc". -> Performing CC check. -> Kernel source path: '/lib/modules/5.14.0-570.12.1.el9_6.x86_64/source' -> Kernel output path: '/lib/modules/5.14.0-570.12.1.el9_6.x86_64/build' -> Performing Compiler check. -> Performing Dom0 check. -> Performing Xen check. -> Performing PREEMPT_RT check. -> Performing vgpu_kvm check. -> Cleaning kernel module build directory. executing: 'cd kernel; /usr/bin/make -k -j32 NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/5.14.0-570.12.1.el9_6.x86_64/source" SYSOUT="/lib/modules/5.14.0-570.12.1.el9_6.x86_64/build" clean'... rm -f -r conftest make[1]: Entering directory '/usr/src/kernels/5.14.0-570.12.1.el9_6.x86_64' make[1]: Leaving directory '/usr/src/kernels/5.14.0-570.12.1.el9_6.x86_64' -> Building kernel modules executing: 'cd kernel; /usr/bin/make -k -j32 NV_EXCLUDE_KERNEL_MODULES="" SYSSRC="/lib/modules/5.14.0-570.12.1.el9_6.x86_64/source" SYSOUT="/lib/modules/5.14.0-570.12.1.el9_6.x86_64/build" '... make[1]: Entering directory '/usr/src/kernels/5.14.0-570.12.1.el9_6.x86_64' SYMLINK /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-kernel.o SYMLINK /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-modeset/nv-modeset-kernel.o CONFTEST: hash__remap_4k_pfn CONFTEST: set_pages_uc CONFTEST: list_is_first CONFTEST: set_memory_uc CONFTEST: set_memory_array_uc CONFTEST: set_pages_array_uc CONFTEST: ioremap_cache CONFTEST: ioremap_wc CONFTEST: ioremap_driver_hardened CONFTEST: ioremap_driver_hardened_wc CONFTEST: ioremap_cache_shared CONFTEST: pci_get_domain_bus_and_slot CONFTEST: get_num_physpages CONFTEST: pde_data CONFTEST: xen_ioemu_inject_msi CONFTEST: phys_to_dma CONFTEST: get_dma_ops CONFTEST: dma_attr_macros CONFTEST: dma_map_page_attrs CONFTEST: write_cr4 CONFTEST: of_find_node_by_phandle CONFTEST: of_node_to_nid CONFTEST: pnv_pci_get_npu_dev CONFTEST: of_get_ibm_chip_id CONFTEST: pci_bus_address CONFTEST: pci_stop_and_remove_bus_device CONFTEST: pci_rebar_get_possible_sizes CONFTEST: wait_for_random_bytes CONFTEST: register_cpu_notifier CONFTEST: cpuhp_setup_state CONFTEST: dma_map_resource CONFTEST: get_backlight_device_by_name CONFTEST: timer_setup CONFTEST: pci_enable_msix_range CONFTEST: kernel_read_has_pointer_pos_arg CONFTEST: kernel_write_has_pointer_pos_arg CONFTEST: dma_direct_map_resource CONFTEST: tegra_get_platform CONFTEST: tegra_bpmp_send_receive CONFTEST: flush_cache_all CONFTEST: vmf_insert_pfn CONFTEST: jiffies_to_timespec CONFTEST: ktime_get_raw_ts64 CONFTEST: ktime_get_real_ts64 CONFTEST: full_name_hash CONFTEST: pci_enable_atomic_ops_to_root CONFTEST: vga_tryget CONFTEST: cc_platform_has CONFTEST: seq_read_iter CONFTEST: follow_pfn CONFTEST: drm_gem_object_get CONFTEST: drm_gem_object_put_unlocked CONFTEST: add_memory_driver_managed CONFTEST: device_property_read_u64 CONFTEST: devm_of_platform_populate CONFTEST: of_dma_configure CONFTEST: of_property_count_elems_of_size CONFTEST: of_property_read_variable_u8_array CONFTEST: of_property_read_variable_u32_array CONFTEST: i2c_new_client_device CONFTEST: i2c_unregister_device CONFTEST: of_get_named_gpio CONFTEST: devm_gpio_request_one CONFTEST: gpio_direction_input CONFTEST: gpio_direction_output CONFTEST: gpio_get_value CONFTEST: gpio_set_value CONFTEST: gpio_to_irq CONFTEST: icc_get CONFTEST: icc_put CONFTEST: icc_set_bw CONFTEST: dma_buf_export_args CONFTEST: dma_buf_ops_has_kmap CONFTEST: dma_buf_ops_has_kmap_atomic CONFTEST: dma_buf_ops_has_map CONFTEST: dma_buf_ops_has_map_atomic CONFTEST: dma_buf_has_dynamic_attachment CONFTEST: dma_buf_attachment_has_peer2peer CONFTEST: dma_set_mask_and_coherent CONFTEST: devm_clk_bulk_get_all CONFTEST: get_task_ioprio CONFTEST: mdev_set_iommu_device CONFTEST: offline_and_remove_memory CONFTEST: stack_trace CONFTEST: crypto_tfm_ctx_aligned CONFTEST: wait_on_bit_lock_argument_count CONFTEST: radix_tree_empty CONFTEST: radix_tree_replace_slot CONFTEST: pnv_npu2_init_context CONFTEST: cpumask_of_node CONFTEST: ioasid_get CONFTEST: mm_pasid_drop CONFTEST: mmget_not_zero CONFTEST: mmgrab CONFTEST: iommu_sva_bind_device_has_drvdata_arg CONFTEST: vm_fault_to_errno CONFTEST: find_next_bit_wrap CONFTEST: iommu_is_dma_domain CONFTEST: acpi_video_backlight_use_native CONFTEST: drm_dev_unref CONFTEST: drm_reinit_primary_mode_group CONFTEST: get_user_pages_remote CONFTEST: get_user_pages CONFTEST: pin_user_pages_remote CONFTEST: pin_user_pages CONFTEST: drm_gem_object_lookup CONFTEST: drm_atomic_state_ref_counting CONFTEST: drm_driver_has_gem_prime_res_obj CONFTEST: drm_atomic_helper_connector_dpms CONFTEST: drm_connector_funcs_have_mode_in_name CONFTEST: drm_connector_has_vrr_capable_property CONFTEST: drm_framebuffer_get CONFTEST: drm_dev_put CONFTEST: drm_format_num_planes CONFTEST: drm_connector_for_each_possible_encoder CONFTEST: drm_rotation_available CONFTEST: drm_vma_offset_exact_lookup_locked CONFTEST: nvhost_dma_fence_unpack CONFTEST: dma_fence_set_error CONFTEST: fence_set_error CONFTEST: sync_file_get_fence CONFTEST: drm_aperture_remove_conflicting_pci_framebuffers CONFTEST: drm_fbdev_generic_setup CONFTEST: drm_connector_attach_hdr_output_metadata_property CONFTEST: drm_helper_crtc_enable_color_mgmt CONFTEST: drm_crtc_enable_color_mgmt CONFTEST: drm_atomic_helper_legacy_gamma_set CONFTEST: is_export_symbol_gpl_of_node_to_nid CONFTEST: is_export_symbol_gpl_sme_active CONFTEST: is_export_symbol_present_swiotlb_map_sg_attrs CONFTEST: is_export_symbol_present_swiotlb_dma_ops CONFTEST: is_export_symbol_present___close_fd CONFTEST: is_export_symbol_present_close_fd CONFTEST: is_export_symbol_present_get_unused_fd CONFTEST: is_export_symbol_present_get_unused_fd_flags CONFTEST: is_export_symbol_present_nvhost_get_default_device CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_byte_offset CONFTEST: is_export_symbol_present_nvhost_syncpt_unit_interface_get_aperture CONFTEST: is_export_symbol_present_tegra_dce_register_ipc_client CONFTEST: is_export_symbol_present_tegra_dce_unregister_ipc_client CONFTEST: is_export_symbol_present_tegra_dce_client_ipc_send_recv CONFTEST: is_export_symbol_present_dram_clk_to_mc_clk CONFTEST: is_export_symbol_present_get_dram_num_channels CONFTEST: is_export_symbol_present_tegra_dram_types CONFTEST: is_export_symbol_present_pxm_to_node CONFTEST: is_export_symbol_present_screen_info CONFTEST: is_export_symbol_gpl_screen_info CONFTEST: is_export_symbol_present_i2c_bus_status CONFTEST: is_export_symbol_present_tegra_fuse_control_read CONFTEST: is_export_symbol_present_tegra_get_platform CONFTEST: is_export_symbol_present_pci_find_host_bridge CONFTEST: is_export_symbol_present_tsec_comms_send_cmd CONFTEST: is_export_symbol_present_tsec_comms_set_init_cb CONFTEST: is_export_symbol_present_tsec_comms_clear_init_cb CONFTEST: is_export_symbol_present_tsec_comms_alloc_mem_from_gscco CONFTEST: is_export_symbol_present_tsec_comms_free_gscco_mem CONFTEST: is_export_symbol_present_memory_block_size_bytes CONFTEST: crypto CONFTEST: is_export_symbol_present_follow_pte CONFTEST: is_export_symbol_present_int_active_memcg CONFTEST: is_export_symbol_present_migrate_vma_setup CONFTEST: dma_ops CONFTEST: swiotlb_dma_ops CONFTEST: noncoherent_swiotlb_dma_ops CONFTEST: vm_fault_has_address CONFTEST: vm_insert_pfn_prot CONFTEST: vmf_insert_pfn_prot CONFTEST: vm_ops_fault_removed_vma_arg CONFTEST: kmem_cache_has_kobj_remove_work CONFTEST: sysfs_slab_unlink CONFTEST: proc_ops CONFTEST: timespec64 CONFTEST: vmalloc_has_pgprot_t_arg CONFTEST: mm_has_mmap_lock CONFTEST: pci_channel_state CONFTEST: pci_dev_has_ats_enabled CONFTEST: remove_memory_has_nid_arg CONFTEST: add_memory_driver_managed_has_mhp_flags_arg CONFTEST: num_registered_fb CONFTEST: pci_driver_has_driver_managed_dma CONFTEST: vm_area_struct_has_const_vm_flags CONFTEST: memory_failure_has_trapno_arg CONFTEST: foll_longterm_present CONFTEST: bus_type_has_iommu_ops CONFTEST: backing_dev_info CONFTEST: mm_context_t CONFTEST: vm_fault_t CONFTEST: mmu_notifier_ops_invalidate_range CONFTEST: mmu_notifier_ops_arch_invalidate_secondary_tlbs CONFTEST: migrate_vma_added_flags CONFTEST: migrate_device_range CONFTEST: handle_mm_fault_has_mm_arg CONFTEST: handle_mm_fault_has_pt_regs_arg CONFTEST: mempolicy_has_unified_nodes CONFTEST: mempolicy_has_home_node CONFTEST: mpol_preferred_many_present CONFTEST: mmu_interval_notifier CONFTEST: fault_flag_remote_present CONFTEST: drm_bus_present CONFTEST: drm_bus_has_bus_type CONFTEST: drm_bus_has_get_irq CONFTEST: drm_bus_has_get_name CONFTEST: drm_driver_has_device_list CONFTEST: drm_driver_has_legacy_dev_list CONFTEST: drm_driver_has_set_busid CONFTEST: drm_crtc_state_has_connectors_changed CONFTEST: drm_init_function_args CONFTEST: drm_helper_mode_fill_fb_struct CONFTEST: drm_master_drop_has_from_release_arg CONFTEST: drm_driver_unload_has_int_return_type CONFTEST: drm_atomic_helper_crtc_destroy_state_has_crtc_arg CONFTEST: drm_atomic_helper_plane_destroy_state_has_plane_arg CONFTEST: drm_mode_object_find_has_file_priv_arg CONFTEST: dma_buf_owner CONFTEST: drm_connector_list_iter CONFTEST: drm_atomic_helper_swap_state_has_stall_arg CONFTEST: drm_driver_prime_flag_present CONFTEST: drm_gem_object_has_resv CONFTEST: drm_crtc_state_has_async_flip CONFTEST: drm_crtc_state_has_pageflip_flags CONFTEST: drm_crtc_state_has_vrr_enabled CONFTEST: drm_format_modifiers_present CONFTEST: drm_vma_node_is_allowed_has_tag_arg CONFTEST: drm_vma_offset_node_has_readonly CONFTEST: drm_display_mode_has_vrefresh CONFTEST: drm_driver_master_set_has_int_return_type CONFTEST: drm_driver_has_gem_free_object CONFTEST: drm_prime_pages_to_sg_has_drm_device_arg CONFTEST: drm_driver_has_gem_prime_callbacks CONFTEST: drm_crtc_atomic_check_has_atomic_state_arg CONFTEST: drm_gem_object_vmap_has_map_arg CONFTEST: drm_plane_atomic_check_has_atomic_state_arg CONFTEST: drm_device_has_pdev CONFTEST: drm_crtc_state_has_no_vblank CONFTEST: drm_mode_config_has_allow_fb_modifiers CONFTEST: drm_has_hdr_output_metadata CONFTEST: dma_resv_add_fence CONFTEST: dma_resv_reserve_fences CONFTEST: reservation_object_reserve_shared_has_num_fences_arg CONFTEST: drm_connector_has_override_edid CONFTEST: drm_master_has_leases CONFTEST: drm_file_get_master CONFTEST: drm_modeset_lock_all_end CONFTEST: drm_connector_lookup CONFTEST: drm_connector_put CONFTEST: drm_driver_has_dumb_destroy CONFTEST: fence_ops_use_64bit_seqno CONFTEST: drm_aperture_remove_conflicting_pci_framebuffers_has_driver_arg CONFTEST: drm_mode_create_dp_colorspace_property_has_supported_colorspaces_arg CONFTEST: drm_syncobj_features_present CONFTEST: drm_unlocked_ioctl_flag_present CONFTEST: dom0_kernel_present CONFTEST: nvidia_vgpu_kvm_build CONFTEST: nvidia_grid_build CONFTEST: nvidia_grid_csp_build CONFTEST: pm_runtime_available CONFTEST: pci_class_multimedia_hd_audio CONFTEST: drm_available CONFTEST: vfio_pci_core_available CONFTEST: mdev_available CONFTEST: cmd_uphy_display_port_init CONFTEST: cmd_uphy_display_port_off CONFTEST: memory_failure_mf_sw_simulated_defined CONFTEST: drm_atomic_available CONFTEST: is_export_symbol_gpl_refcount_inc CONFTEST: is_export_symbol_gpl_refcount_dec_and_test CONFTEST: drm_alpha_blending_available CONFTEST: is_export_symbol_present_drm_gem_prime_fd_to_handle CONFTEST: is_export_symbol_present_drm_gem_prime_handle_to_fd CONFTEST: ib_peer_memory_symbols CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-pci.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-dmabuf.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-nano-timer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-acpi.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-cray.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-dma.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-i2c.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-mmap.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-p2p.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-pat.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-procfs.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-usermap.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-vm.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-vtophys.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-interface.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-mlock.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-pci.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-registry.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-usermap.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-modeset-interface.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-pci-table.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-kthread-q.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-memdbg.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-ibmnpu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-report-err.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-rsync.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-msi.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-caps.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-caps-imex.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-host1x.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv_uvm_interface.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_aead.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_ecc.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_hkdf.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_rand.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_shash.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_rsa.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_aead_aes_gcm.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_sha.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_hmac_sha.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_internal_crypt_lib.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_hkdf_sha.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_ec.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_x509.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_rsa_ext.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nvlink_linux.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nvlink_caps.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/linux_nvswitch.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/procfs_nvswitch.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/i2c_nvswitch.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ats_sva.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_conf_computing.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_sec2_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_maxwell_sec2.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hopper_sec2.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_blackwell.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_blackwell_fault_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_blackwell_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_blackwell_host.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_common.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_linux.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/nvstatus.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/nvCpuUuid.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/nv-kthread-q.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/nv-kthread-q-selftest.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_tools.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_global.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_gpu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_gpu_isr.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_procfs.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_va_space.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_va_space_mm.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_gpu_semaphore.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_mem.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_rm_mem.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_channel.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_lock.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hal.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_processors.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_range_tree.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_rb_tree.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_range_allocator.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_va_range.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_va_policy.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_va_block.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_range_group.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_gpu_replayable_faults.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_gpu_non_replayable_faults.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_gpu_access_counters.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_events.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_module.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pte_batch.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_tlb_batch.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_push.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pushbuffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_thread_context.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_tracker.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_maxwell.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_maxwell_host.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_maxwell_ce.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_maxwell_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_maxwell_fault_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_maxwell_access_counter_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pascal.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pascal_ce.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pascal_host.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pascal_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pascal_fault_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_volta_ce.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_volta_host.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_volta_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_volta.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_volta_fault_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_volta_access_counter_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_turing.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_turing_access_counter_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_turing_fault_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_turing_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_turing_host.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ampere.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ampere_ce.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ampere_host.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ampere_fault_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ampere_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hopper.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hopper_fault_buffer.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hopper_ce.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hopper_host.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hopper_mmu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ada.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_policy.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_utils.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_kvmalloc.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pmm_sysmem.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pmm_gpu.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_migrate.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_populate_pageable.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_migrate_pageable.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_map_external.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_user_channel.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_hmm.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_heuristics.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_thrashing.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_prefetch.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ats.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ats_ibm.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ats_faults.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_test_rng.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_range_tree_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_range_allocator_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_gpu_semaphore_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_mem_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_rm_mem_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_page_tree_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_tracker_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_push_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_channel_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_ce_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_host_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_lock_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_utils_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_kvmalloc_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pmm_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_pmm_sysmem_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_events_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_perf_module_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_get_rm_ptes_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_fault_buffer_flush_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_peer_identity_mappings_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_va_block_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_range_group_tree_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_thread_context_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm/uvm_rb_tree_test.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-modeset/nvidia-modeset-linux.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-modeset/nv-kthread-q.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-utils.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-crtc.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-encoder.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-connector.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-gem.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-fb.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-modeset.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-fence.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-helper.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nv-kthread-q.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.c:207:6: error: 'const struct drm_mode_config_funcs' has no member named 'output_poll_changed' 207 | .output_poll_changed = nv_drm_output_poll_changed, | ^~~~~~~~~~~~~~~~~~~ /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.c:207:28: error: initialization of 'struct drm_atomic_state * (*)(struct drm_device *)' from incompatible pointer type 'void (*)(struct drm_device *)' [-Werror=incompatible-pointer-types] 207 | .output_poll_changed = nv_drm_output_poll_changed, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.c:207:28: note: (near initialization for 'nv_mode_config_funcs.atomic_state_alloc') cc1: some warnings being treated as errors CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nv-pci-table.o make[2]: *** [scripts/Makefile.build:249: /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-drv.o] Error 1 CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-gem-nvkms-memory.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-gem-user-memory.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-gem-dma-buf.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-format.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-os-interface.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-drm/nvidia-drm-linux.o CC [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-peermem/nvidia-peermem.o LD [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia.o ld -r -o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-interface.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-pci.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-dmabuf.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-nano-timer.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-acpi.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-cray.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-dma.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-i2c.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-mmap.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-p2p.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-pat. o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-procfs.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-usermap.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-vm.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-vtophys.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-interface.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-mlock.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-pci.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-registry.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/os-usermap.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-modeset-interface.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-pci-table.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-kthread-q.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-memdbg.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nv idia/nv-ibmnpu.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-report-err.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-rsync.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-msi.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-caps.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-caps-imex.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv-host1x.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nv_uvm_interface.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_aead.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_ecc.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_hkdf.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_rand.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_shash.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_rsa.o /tmp/selfgz29405/NVIDIA-Linux-x86 _64-560.35.03/kernel/nvidia/libspdm_aead_aes_gcm.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_sha.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_hmac_sha.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_internal_crypt_lib.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_hkdf_sha.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_ec.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_x509.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/libspdm_rsa_ext.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nvlink_linux.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/nvlink_caps.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/linux_nvswitch.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/procfs_nvswitch.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia/i2c_nvswitch.o LD [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-peermem.o ld -r -o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-modeset/nv-modeset-interface.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-modeset/nvidia-modeset-linux.o /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-modeset/nv-kthread-q.o LD [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-modeset.o LD [M] /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel/nvidia-uvm.o make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1947: /tmp/selfgz29405/NVIDIA-Linux-x86_64-560.35.03/kernel] Error 2 make[1]: Target 'modules' not remade because of errors. make[1]: Leaving directory '/usr/src/kernels/5.14.0-570.12.1.el9_6.x86_64' make: *** [Makefile:89: modules] Error 2 -> Error.
最新发布
11-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeeplyMind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值