@@ -402,44 +402,7 @@ _load_driver() {
402402 set +o xtrace -o nounset
403403 fi
404404
405- echo " Starting NVIDIA persistence daemon..."
406- nvidia-persistenced --persistence-mode
407-
408- if [ " ${DRIVER_TYPE} " = " vgpu" ]; then
409- echo " Copying gridd.conf..."
410- cp /drivers/gridd.conf /etc/nvidia/gridd.conf
411- if [ " ${VGPU_LICENSE_SERVER_TYPE} " = " NLS" ]; then
412- echo " Copying ClientConfigToken..."
413- mkdir -p /etc/nvidia/ClientConfigToken/
414- cp /drivers/ClientConfigToken/* /etc/nvidia/ClientConfigToken/
415- fi
416-
417- echo " Starting nvidia-gridd.."
418- LD_LIBRARY_PATH=/usr/lib64/nvidia/gridd nvidia-gridd
419-
420- # Start virtual topology daemon
421- _start_vgpu_topology_daemon
422- fi
423-
424- if _assert_nvlink5_system; then
425- _ensure_nvlink5_prerequisites || return 1
426- echo " Starting NVIDIA fabric manager daemon for NVLink5+..."
427-
428- fm_config_file=/usr/share/nvidia/nvswitch/fabricmanager.cfg
429- fm_pid_file=/var/run/nvidia-fabricmanager/nv-fabricmanager.pid
430- nvlsm_config_file=/usr/share/nvidia/nvlsm/nvlsm.conf
431- nvlsm_pid_file=/var/run/nvidia-fabricmanager/nvlsm.pid
432- /usr/bin/nvidia-fabricmanager-start.sh --mode start \
433- --fm-config-file $fm_config_file \
434- --fm-pid-file $fm_pid_file \
435- --nvlsm-config-file $nvlsm_config_file \
436- --nvlsm-pid-file $nvlsm_pid_file
437-
438- # If not a NVLink5+ switch, check for the presence of NVLink4 (or below) switches
439- elif _assert_nvswitch_system; then
440- echo " Starting NVIDIA fabric manager daemon..."
441- nv-fabricmanager -c /usr/share/nvidia/nvswitch/fabricmanager.cfg
442- fi
405+ _start_daemons
443406}
444407
445408# Stop persistenced and unload the kernel modules if they are currently loaded.
@@ -714,42 +677,45 @@ _ensure_persistence() {
714677 fi
715678}
716679
717- _build_driver_config () {
718- local nvidia_params=" " nvidia_uvm_params=" " nvidia_modeset_params=" " nvidia_peermem_params=" "
719-
720- # Read module parameters from conf files
721- if [ -f " /drivers/nvidia.conf" ]; then
722- nvidia_params=$( cat " /drivers/nvidia.conf" | tr ' \n' ' ' )
723- fi
724- if [ -f " /drivers/nvidia-uvm.conf" ]; then
725- nvidia_uvm_params=$( cat " /drivers/nvidia-uvm.conf" | tr ' \n' ' ' )
726- fi
727- if [ -f " /drivers/nvidia-modeset.conf" ]; then
728- nvidia_modeset_params=$( cat " /drivers/nvidia-modeset.conf" | tr ' \n' ' ' )
729- fi
730- if [ -f " /drivers/nvidia-peermem.conf" ]; then
731- nvidia_peermem_params=$( cat " /drivers/nvidia-peermem.conf" | tr ' \n' ' ' )
732- fi
733-
734- local config=" DRIVER_VERSION=${DRIVER_VERSION}
735- KERNEL_VERSION=$( uname -r)
736- GPU_DIRECT_RDMA_ENABLED=${GPU_DIRECT_RDMA_ENABLED:- false}
737- USE_HOST_MOFED=${USE_HOST_MOFED:- false}
738- KERNEL_MODULE_TYPE=${KERNEL_MODULE_TYPE:- auto}
739- NVIDIA_MODULE_PARAMS=${nvidia_params}
740- NVIDIA_UVM_MODULE_PARAMS=${nvidia_uvm_params}
741- NVIDIA_MODESET_MODULE_PARAMS=${nvidia_modeset_params}
742- NVIDIA_PEERMEM_MODULE_PARAMS=${nvidia_peermem_params} "
743-
744- # Append config file contents directly
745- for conf_file in nvidia.conf nvidia-uvm.conf nvidia-modeset.conf nvidia-peermem.conf; do
746- if [ -f " /drivers/$conf_file " ]; then
747- config=" ${config}
748- $( cat " /drivers/$conf_file " ) "
749- fi
750- done
751-
752- echo " $config "
680+ _start_daemons () {
681+ echo " Starting NVIDIA persistence daemon..."
682+ nvidia-persistenced --persistence-mode
683+
684+ if [ " ${DRIVER_TYPE} " = " vgpu" ]; then
685+ echo " Copying gridd.conf..."
686+ cp /drivers/gridd.conf /etc/nvidia/gridd.conf
687+ if [ " ${VGPU_LICENSE_SERVER_TYPE} " = " NLS" ]; then
688+ echo " Copying ClientConfigToken..."
689+ mkdir -p /etc/nvidia/ClientConfigToken/
690+ cp /drivers/ClientConfigToken/* /etc/nvidia/ClientConfigToken/
691+ fi
692+
693+ echo " Starting nvidia-gridd.."
694+ LD_LIBRARY_PATH=/usr/lib64/nvidia/gridd nvidia-gridd
695+
696+ # Start virtual topology daemon
697+ _start_vgpu_topology_daemon
698+ fi
699+
700+ if _assert_nvlink5_system; then
701+ _ensure_nvlink5_prerequisites || return 1
702+ echo " Starting NVIDIA fabric manager daemon for NVLink5+..."
703+
704+ fm_config_file=/usr/share/nvidia/nvswitch/fabricmanager.cfg
705+ fm_pid_file=/var/run/nvidia-fabricmanager/nv-fabricmanager.pid
706+ nvlsm_config_file=/usr/share/nvidia/nvlsm/nvlsm.conf
707+ nvlsm_pid_file=/var/run/nvidia-fabricmanager/nvlsm.pid
708+ /usr/bin/nvidia-fabricmanager-start.sh --mode start \
709+ --fm-config-file $fm_config_file \
710+ --fm-pid-file $fm_pid_file \
711+ --nvlsm-config-file $nvlsm_config_file \
712+ --nvlsm-pid-file $nvlsm_pid_file
713+
714+ # If not a NVLink5+ switch, check for the presence of NVLink4 (or below) switches
715+ elif _assert_nvswitch_system; then
716+ echo " Starting NVIDIA fabric manager daemon..."
717+ nv-fabricmanager -c /usr/share/nvidia/nvswitch/fabricmanager.cfg
718+ fi
753719}
754720
755721_store_driver_config () {
@@ -759,13 +725,6 @@ _store_driver_config() {
759725 echo " Driver configuration stored at $config_file "
760726}
761727
762- _should_use_fast_path () {
763- [ -f /sys/module/nvidia/refcnt ] && [ -f /run/nvidia/driver-config.state ] || return 1
764- local current_config=$( _build_driver_config)
765- local stored_config=$( cat /run/nvidia/driver-config.state 2> /dev/null || echo " " )
766- [ " ${current_config} " = " ${stored_config} " ]
767- }
768-
769728_userspace_only_install () {
770729 echo " Detected matching loaded driver & config (${DRIVER_VERSION} ); performing userspace-only install"
771730
@@ -802,7 +761,7 @@ _userspace_only_install() {
802761 fi
803762
804763 _mount_rootfs
805- _ensure_persistence
764+ _start_daemons
806765 _write_kernel_update_hook
807766 _store_driver_config
808767
0 commit comments