NVIDIA / open-gpu-kernel-modules

NVIDIA Linux open GPU kernel module source

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

failed to build on RHEL 8.4

Windywind opened this issue · comments

NVIDIA Open GPU Kernel Modules Version

535.146.02

Operating System and Version

Red Hat Enterprise Linux release 8.4 (Ootpa)

Kernel Release

Linux rhel-edge 4.18.0-305.el8.x86_64 #1 SMP Thu Apr 29 08:54:30 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

Build Command

make modules -j$(nproc)

Terminal output/Build Log

# make modules -j$(nproc)
make -C src/nvidia
make -C src/nvidia-modeset
make[1]: Entering directory '/root/open-gpu-kernel-modules-535.146.02/src/nvidia-modeset'
make[1]: Entering directory '/root/open-gpu-kernel-modules-535.146.02/src/nvidia'
 [ nvidia-modeset    ]  XZ           _out/Linux_x86_64/maxwell_shaders.xz
 [ nvidia-modeset    ]  XZ           _out/Linux_x86_64/pascal_shaders.xz
 [ nvidia-modeset    ]  XZ           _out/Linux_x86_64/volta_shaders.xz
 [ nvidia-modeset    ]  XZ           _out/Linux_x86_64/turing_shaders.xz
 [ nvidia-modeset    ]  XZ           _out/Linux_x86_64/ampere_shaders.xz
 [ nvidia-modeset    ]  XZ           _out/Linux_x86_64/hopper_shaders.xz
 [ nvidia            ]  CC           generated/g_access_cntr_buffer_nvoc.c
 [ nvidia            ]  CC           generated/g_all_dcl_pb.c
 [ nvidia            ]  CC           generated/g_bindata.c
 [ nvidia            ]  CC           generated/g_binary_api_nvoc.c
 [ nvidia            ]  CC           generated/g_ccsl_nvoc.c
 [ nvidia            ]  CC           generated/g_ce_utils_nvoc.c
 [ nvidia            ]  CC           generated/g_channel_descendant_nvoc.c
 [ nvidia            ]  CC           generated/g_chips2halspec_nvoc.c
 [ nvidia            ]  CC           generated/g_chipset_nvoc.c
 [ nvidia            ]  CC           generated/g_client_nvoc.c
......
<omitted output>
......
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_range_allocator.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_va_range.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_va_policy.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_va_block.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_range_group.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_gpu_replayable_faults.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_gpu_non_replayable_faults.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_gpu_access_counters.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_perf_events.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_perf_module.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_mmu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pte_batch.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_tlb_batch.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_push.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pushbuffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_thread_context.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_tracker.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_maxwell.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_maxwell_host.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_maxwell_ce.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_maxwell_mmu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_maxwell_fault_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_maxwell_access_counter_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pascal.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pascal_ce.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pascal_host.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pascal_mmu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pascal_fault_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_volta_ce.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_volta_host.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_volta_mmu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_volta.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_volta_fault_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_volta_access_counter_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_turing.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_turing_access_counter_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_turing_fault_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_turing_mmu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_turing_host.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ampere.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ampere_ce.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ampere_host.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ampere_mmu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_hopper.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_hopper_fault_buffer.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_hopper_ce.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_hopper_host.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_hopper_mmu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ada.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_policy.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_perf_utils.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_kvmalloc.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pmm_sysmem.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_pmm_gpu.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_migrate.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_populate_pageable.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_migrate_pageable.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_map_external.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_user_channel.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_hmm.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_perf_heuristics.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_perf_thrashing.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_perf_prefetch.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_ibm.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_test.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_test_rng.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_range_tree_test.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_range_allocator_test.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_gpu_semaphore_test.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_mem_test.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_rm_mem_test.o
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c: In function ‘ats_compute_residency_mask’:
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:296:10: error: ‘struct hmm_range’ has no member named ‘notifier’
     range.notifier = &ats_context->prefetch_state.notifier;
          ^
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:299:11: error: ‘struct hmm_range’ has no member named ‘hmm_pfns’; did you mean ‘pfns’?
     range.hmm_pfns = ats_context->prefetch_state.pfns;
           ^~~~~~~~
           pfns
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:302:10: error: ‘struct hmm_range’ has no member named ‘dev_private_owner’
     range.dev_private_owner = NULL;
          ^
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:311:45: error: ‘struct hmm_range’ has no member named ‘notifier’
     ret = mmu_interval_notifier_insert(range.notifier, mm, start, end, &uvm_ats_notifier_ops);
                                             ^
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:316:14: error: ‘struct hmm_range’ has no member named ‘notifier_seq’
         range.notifier_seq = mmu_interval_read_begin(range.notifier);
              ^
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:316:59: error: ‘struct hmm_range’ has no member named ‘notifier’
         range.notifier_seq = mmu_interval_read_begin(range.notifier);
                                                           ^
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:317:15: error: too few arguments to function ‘hmm_range_fault’
         ret = hmm_range_fault(&range);
               ^~~~~~~~~~~~~~~
In file included from /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:34:
/usr/src/kernels/4.18.0-305.el8.x86_64/include/linux/hmm.h:487:6: note: declared here
 long hmm_range_fault(struct hmm_range *range, bool block);
      ^~~~~~~~~~~~~~~
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:335:43: error: ‘struct hmm_range’ has no member named ‘notifier’
         if (!mmu_interval_read_retry(range.notifier, range.notifier_seq))
                                           ^
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:335:59: error: ‘struct hmm_range’ has no member named ‘notifier_seq’
         if (!mmu_interval_read_retry(range.notifier, range.notifier_seq))
                                                           ^
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:346:53: warning: passing argument 1 of ‘hmm_pfn_to_page’ makes pointer from integer without a cast [-Wint-conversion]
                 struct page *page = hmm_pfn_to_page(pfn);
                                                     ^~~
In file included from /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:34:
/usr/src/kernels/4.18.0-305.el8.x86_64/include/linux/hmm.h:321:68: note: expected ‘const struct hmm_range *’ but argument is of type ‘long unsigned int’
 static inline struct page *hmm_pfn_to_page(const struct hmm_range *range,
                                            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:346:37: error: too few arguments to function ‘hmm_pfn_to_page’
                 struct page *page = hmm_pfn_to_page(pfn);
                                     ^~~~~~~~~~~~~~~
In file included from /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:34:
/usr/src/kernels/4.18.0-305.el8.x86_64/include/linux/hmm.h:321:28: note: declared here
 static inline struct page *hmm_pfn_to_page(const struct hmm_range *range,
                            ^~~~~~~~~~~~~~~
/root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.c:358:39: error: ‘struct hmm_range’ has no member named ‘notifier’
     mmu_interval_notifier_remove(range.notifier);
                                       ^
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_page_tree_test.o
  CC [M]  /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_tracker_test.o
make[4]: *** [/usr/src/kernels/4.18.0-305.el8.x86_64/scripts/Makefile.build:315: /root/open-gpu-kernel-modules-535.146.02/kernel-open/nvidia-uvm/uvm_ats_faults.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [/usr/src/kernels/4.18.0-305.el8.x86_64/Makefile:1563: _module_/root/open-gpu-kernel-modules-535.146.02/kernel-open] Error 2
make[3]: Leaving directory '/usr/src/kernels/4.18.0-305.el8.x86_64'
make[2]: *** [Makefile:157: sub-make] Error 2
make[2]: Leaving directory '/usr/src/kernels/4.18.0-305.el8.x86_64'
make[1]: *** [Makefile:82: modules] Error 2
make[1]: Leaving directory '/root/open-gpu-kernel-modules-535.146.02/kernel-open'
make: *** [Makefile:59: modules] Error 2

More Info

Similar error messages were seen when I tried to install from official driver .run file when I specify "-m=open-kernel".

I googled but found nothing helpful. Please kindly help.

According to https://access.redhat.com/sites/default/files/images/rhel_8_life_cycle_8_0620_planning_0.png it seems that RHEL 8.4 it already out of Extended Update Support. I have installed lowest available - 8.6 and the driver compiles properly. I'd suggest the OS update. If there is no way for that, please let us know.