diff options
Diffstat (limited to 'patches')
| -rw-r--r-- | patches/nvidia/0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch | 198 | ||||
| -rw-r--r-- | patches/nvidia/README.md | 45 |
2 files changed, 144 insertions, 99 deletions
diff --git a/patches/nvidia/0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch b/patches/nvidia/0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch index eb5d282..1c7c286 100644 --- a/patches/nvidia/0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch +++ b/patches/nvidia/0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch @@ -1,4 +1,4 @@ -From d189201451e4abc29b57a1ec710d894e778790bf Mon Sep 17 00:00:00 2001 +From 1fe277fb1c48a7ba73fea588102062de281b610a Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson <arthur@vgpu.io> Date: Mon, 21 Sep 2026 04:42:04 -0400 Subject: [PATCH] Build fixes and vGPU VFIO interface integration @@ -22,7 +22,7 @@ Subject: [PATCH] Build fixes and vGPU VFIO interface integration create mode 100644 kernel-open/common/inc/nv-vgpu-vfio-interface.h diff --git a/kernel-open/Kbuild b/kernel-open/Kbuild -index d1811c6..978ef1d 100644 +index d1811c6..b56f1c0 100644 --- a/kernel-open/Kbuild +++ b/kernel-open/Kbuild @@ -79,7 +79,7 @@ ccflags-y += -I$(src)/common/inc @@ -42,7 +42,7 @@ index d1811c6..978ef1d 100644 endif +# Always include extra symbols from open-iov-vfio.ko for vGPU VFIO interface -+KBUILD_EXTRA_SYMBOLS := $OPEN_IOV_ROOT/kernel/Module.symvers ++KBUILD_EXTRA_SYMBOLS := $(abspath $(src)/../../kernel/Module.symvers) + # Some Android kernels prohibit driver use of filesystem functions like # filp_open() and kernel_read(). Disable the NV_FILESYSTEM_ACCESS_AVAILABLE @@ -57,7 +57,7 @@ index d1811c6..978ef1d 100644 NV_CONFTEST_HEADER := $(obj)/conftest/headers.h diff --git a/kernel-open/Makefile b/kernel-open/Makefile -index 341d55b..6558e19 100644 +index 341d55b..ac78628 100644 --- a/kernel-open/Makefile +++ b/kernel-open/Makefile @@ -94,8 +94,12 @@ else @@ -67,7 +67,7 @@ index 341d55b..6558e19 100644 - NV_VERBOSE ?= - SPECTRE_V2_RETPOLINE ?= 0 +# KBUILD_EXTRA_SYMBOLS for vGPU VFIO interface symbols from open-iov-vfio.ko -+KBUILD_EXTRA_SYMBOLS := $OPEN_IOV_ROOT/kernel/Module.symvers ++KBUILD_EXTRA_SYMBOLS := $(abspath $(CURDIR)/../../kernel/Module.symvers) + +NV_VERBOSE ?= +SPECTRE_V2_RETPOLINE ?= 0 @@ -79,108 +79,108 @@ index 341d55b..6558e19 100644 KBUILD_PARAMS += NV_KERNEL_MODULES="$(NV_KERNEL_MODULES)" KBUILD_PARAMS += INSTALL_MOD_DIR="$(INSTALL_MOD_DIR)" KBUILD_PARAMS += NV_SPECTRE_V2=$(SPECTRE_V2_RETPOLINE) -+ KBUILD_PARAMS += KBUILD_EXTRA_SYMBOLS=$OPEN_IOV_ROOT/kernel/Module.symvers ++ KBUILD_PARAMS += KBUILD_EXTRA_SYMBOLS=$(KBUILD_EXTRA_SYMBOLS) export ORIG_PAHOLE := $(PAHOLE) diff --git a/kernel-open/Module.symvers.open-iov b/kernel-open/Module.symvers.open-iov new file mode 100644 -index 0000000..24fd736 +index 0000000..553549f --- /dev/null +++ b/kernel-open/Module.symvers.open-iov @@ -0,0 +1,92 @@ -+0x805e4667 nv_vgpu_register_type_info $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x2510f9e4 nv_vgpu_find_type_info $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xb1cd7273 nv_vgpu_create_mdev_types $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xa3720b3e nv_vgpu_free_type_info $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x3ba3d107 nvidia_vgpu_vfio_get_ops $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xc61962f1 nvidia_vgpu_vfio_set_ops $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x536fe9e2 nv_vgpu_mdev_driver_register $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xe2db996e nv_vgpu_mdev_driver_unregister $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x71713730 nv_vgpu_mdev_register_parent $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xb0486899 nv_vgpu_mdev_unregister_parent $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xdb194166 nvidia_vgpu_vfio_probe $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xc34501b8 nvidia_vgpu_vfio_remove $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x3972fd88 gsp_client_init $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xaf9978fc gsp_client_fini $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x0994eed6 gsp_rpc_alloc $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x01ed1ec0 gsp_rpc_free $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x014ef707 gsp_rpc_map $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x577cba23 gsp_rpc_unmap $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xf55eb4ab gsp_rpc_pin $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x7f0922ac gsp_rpc_unpin $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xc7abb90f gsp_rpc_schedule $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xf64c68e2 gsp_rpc_yield $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x2111f684 gsp_rpc_bar_trap $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xd0b1131e gsp_rpc_migrate_save $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xbd8c881d gsp_rpc_migrate_restore $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x0f989cd0 gsp_wpr_write_mutex_acquire $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x03323922 gsp_wpr_write_mutex_release $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xae7f48d2 gsp_wpr_scratch_mutex_acquire $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xa2d5ed20 gsp_wpr_scratch_mutex_release $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x04a15dd5 gsp_rpc_emulation_set $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x980c5e08 gsp_rpc_emulation_is_enabled $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xa6751cae gsp_rpc_notify_register $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x46ab86c5 gsp_rpc_notify_unregister $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x42fe196a nv_vgpu_gsp_rpc_integration_init $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x3af2d161 nv_vgpu_gsp_rpc_integration_cleanup $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xd748c59b nv_vgpu_gsp_rpc_alloc_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x153fa014 nv_vgpu_gsp_rpc_free_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x637c076f nv_vgpu_gsp_rpc_map_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x34f998ca nv_vgpu_gsp_rpc_unmap_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xeb1110bd nv_vgpu_gsp_rpc_pin_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xf3037685 nv_vgpu_gsp_rpc_unpin_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x21d884f8 nv_vgpu_gsp_rpc_schedule_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xab6ad746 nv_vgpu_gsp_rpc_yield_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x1c4d1f08 nv_vgpu_gsp_rpc_bar_trap_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x708f30d4 nv_vgpu_gsp_rpc_migrate_save_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x8e7872e6 nv_vgpu_gsp_rpc_migrate_restore_fw $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x2ade3dd6 nv_vgpu_gsp_wpr_write_mutex_acquire $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x8dff96a4 nv_vgpu_gsp_wpr_write_mutex_release $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xec05ceea nv_vgpu_gsp_wpr_scratch_mutex_acquire $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x4b246598 nv_vgpu_gsp_wpr_scratch_mutex_release $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xfe33a432 nv_vgpu_gsp_get_primary_dispatcher $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xc1979caa nv_vgpu_gsp_get_secondary_dispatcher $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x89b21e78 nv_vgpu_gsp_get_alloc_main $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x972e5e45 nv_vgpu_gsp_get_schedule_main $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xa6809adb nv_vgpu_gsp_get_bar_trap_handler_jt $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0xcf2a6ed8 nv_vgpu_gsp_get_bar_trap_handler_primary $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x1ba6baef nv_vgpu_gsp_get_entry_point $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL -+0x4fa3b818 fw_analyzer_analyze $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x424272d4 fw_analyzer_load_and_analyze $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x7f7c5e6c fw_analyzer_print_result $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x8c7dcd3c dynamic_dispatcher_init $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x01dca6c2 dynamic_dispatcher_fini $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xcd45da5f dynamic_dispatcher_use_emulation $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x5c69b70b dynamic_dispatcher_alloc $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x436485b4 dynamic_dispatcher_free $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xd4547701 dynamic_dispatcher_map $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xa69f56a4 dynamic_dispatcher_unmap $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x444e6538 dynamic_dispatcher_pin $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x8eeace2b dynamic_dispatcher_unpin $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x39142c5c dynamic_dispatcher_schedule $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xb5bb4890 dynamic_dispatcher_yield $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x5bd014a6 dynamic_dispatcher_bar_trap $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xc6bc85d2 dynamic_dispatcher_migrate_save $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x2f480b10 dynamic_dispatcher_migrate_restore $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xd1994a67 dynamic_dispatcher_notify_register $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xeb6d1fbc dynamic_dispatcher_notify_unregister $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x4c369e34 dynamic_dispatcher_get_version $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xc5d8eb77 dynamic_dispatcher_get_fw_addresses $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x48cbd40e arch_get_by_name $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x90c7d953 arch_get_by_pci_id $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x750f8f00 arch_get_default $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xa505fad7 arch_get_bar_config $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x6707466a arch_get_doorbell_offset $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xc9ed25fd arch_get_shared_mem_offset $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x1d6af5c9 arch_get_msix_vectors $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x835587f5 arch_supports_mig $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x9d3f1b2f arch_supports_sriov $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xd2409aef arch_get_gsp_version $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xc75537a2 version_get_interface $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xe7818f08 version_get_by_kernel_version $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0x12d7fadb version_has_feature $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL -+0xfab46c68 version_get_string $OPEN_IOV_ROOT/kernel/open-iov-vfio EXPORT_SYMBOL_GPL ++0x805e4667 nv_vgpu_register_type_info open-iov-vfio EXPORT_SYMBOL ++0x2510f9e4 nv_vgpu_find_type_info open-iov-vfio EXPORT_SYMBOL ++0xb1cd7273 nv_vgpu_create_mdev_types open-iov-vfio EXPORT_SYMBOL ++0xa3720b3e nv_vgpu_free_type_info open-iov-vfio EXPORT_SYMBOL ++0x3ba3d107 nvidia_vgpu_vfio_get_ops open-iov-vfio EXPORT_SYMBOL ++0xc61962f1 nvidia_vgpu_vfio_set_ops open-iov-vfio EXPORT_SYMBOL ++0x536fe9e2 nv_vgpu_mdev_driver_register open-iov-vfio EXPORT_SYMBOL ++0xe2db996e nv_vgpu_mdev_driver_unregister open-iov-vfio EXPORT_SYMBOL ++0x71713730 nv_vgpu_mdev_register_parent open-iov-vfio EXPORT_SYMBOL ++0xb0486899 nv_vgpu_mdev_unregister_parent open-iov-vfio EXPORT_SYMBOL ++0xdb194166 nvidia_vgpu_vfio_probe open-iov-vfio EXPORT_SYMBOL ++0xc34501b8 nvidia_vgpu_vfio_remove open-iov-vfio EXPORT_SYMBOL ++0x3972fd88 gsp_client_init open-iov-vfio EXPORT_SYMBOL ++0xaf9978fc gsp_client_fini open-iov-vfio EXPORT_SYMBOL ++0x0994eed6 gsp_rpc_alloc open-iov-vfio EXPORT_SYMBOL ++0x01ed1ec0 gsp_rpc_free open-iov-vfio EXPORT_SYMBOL ++0x014ef707 gsp_rpc_map open-iov-vfio EXPORT_SYMBOL ++0x577cba23 gsp_rpc_unmap open-iov-vfio EXPORT_SYMBOL ++0xf55eb4ab gsp_rpc_pin open-iov-vfio EXPORT_SYMBOL ++0x7f0922ac gsp_rpc_unpin open-iov-vfio EXPORT_SYMBOL ++0xc7abb90f gsp_rpc_schedule open-iov-vfio EXPORT_SYMBOL ++0xf64c68e2 gsp_rpc_yield open-iov-vfio EXPORT_SYMBOL ++0x2111f684 gsp_rpc_bar_trap open-iov-vfio EXPORT_SYMBOL ++0xd0b1131e gsp_rpc_migrate_save open-iov-vfio EXPORT_SYMBOL ++0xbd8c881d gsp_rpc_migrate_restore open-iov-vfio EXPORT_SYMBOL ++0x0f989cd0 gsp_wpr_write_mutex_acquire open-iov-vfio EXPORT_SYMBOL ++0x03323922 gsp_wpr_write_mutex_release open-iov-vfio EXPORT_SYMBOL ++0xae7f48d2 gsp_wpr_scratch_mutex_acquire open-iov-vfio EXPORT_SYMBOL ++0xa2d5ed20 gsp_wpr_scratch_mutex_release open-iov-vfio EXPORT_SYMBOL ++0x04a15dd5 gsp_rpc_emulation_set open-iov-vfio EXPORT_SYMBOL ++0x980c5e08 gsp_rpc_emulation_is_enabled open-iov-vfio EXPORT_SYMBOL ++0xa6751cae gsp_rpc_notify_register open-iov-vfio EXPORT_SYMBOL ++0x46ab86c5 gsp_rpc_notify_unregister open-iov-vfio EXPORT_SYMBOL ++0x42fe196a nv_vgpu_gsp_rpc_integration_init open-iov-vfio EXPORT_SYMBOL ++0x3af2d161 nv_vgpu_gsp_rpc_integration_cleanup open-iov-vfio EXPORT_SYMBOL ++0xd748c59b nv_vgpu_gsp_rpc_alloc_fw open-iov-vfio EXPORT_SYMBOL ++0x153fa014 nv_vgpu_gsp_rpc_free_fw open-iov-vfio EXPORT_SYMBOL ++0x637c076f nv_vgpu_gsp_rpc_map_fw open-iov-vfio EXPORT_SYMBOL ++0x34f998ca nv_vgpu_gsp_rpc_unmap_fw open-iov-vfio EXPORT_SYMBOL ++0xeb1110bd nv_vgpu_gsp_rpc_pin_fw open-iov-vfio EXPORT_SYMBOL ++0xf3037685 nv_vgpu_gsp_rpc_unpin_fw open-iov-vfio EXPORT_SYMBOL ++0x21d884f8 nv_vgpu_gsp_rpc_schedule_fw open-iov-vfio EXPORT_SYMBOL ++0xab6ad746 nv_vgpu_gsp_rpc_yield_fw open-iov-vfio EXPORT_SYMBOL ++0x1c4d1f08 nv_vgpu_gsp_rpc_bar_trap_fw open-iov-vfio EXPORT_SYMBOL ++0x708f30d4 nv_vgpu_gsp_rpc_migrate_save_fw open-iov-vfio EXPORT_SYMBOL ++0x8e7872e6 nv_vgpu_gsp_rpc_migrate_restore_fw open-iov-vfio EXPORT_SYMBOL ++0x2ade3dd6 nv_vgpu_gsp_wpr_write_mutex_acquire open-iov-vfio EXPORT_SYMBOL ++0x8dff96a4 nv_vgpu_gsp_wpr_write_mutex_release open-iov-vfio EXPORT_SYMBOL ++0xec05ceea nv_vgpu_gsp_wpr_scratch_mutex_acquire open-iov-vfio EXPORT_SYMBOL ++0x4b246598 nv_vgpu_gsp_wpr_scratch_mutex_release open-iov-vfio EXPORT_SYMBOL ++0xfe33a432 nv_vgpu_gsp_get_primary_dispatcher open-iov-vfio EXPORT_SYMBOL ++0xc1979caa nv_vgpu_gsp_get_secondary_dispatcher open-iov-vfio EXPORT_SYMBOL ++0x89b21e78 nv_vgpu_gsp_get_alloc_main open-iov-vfio EXPORT_SYMBOL ++0x972e5e45 nv_vgpu_gsp_get_schedule_main open-iov-vfio EXPORT_SYMBOL ++0xa6809adb nv_vgpu_gsp_get_bar_trap_handler_jt open-iov-vfio EXPORT_SYMBOL ++0xcf2a6ed8 nv_vgpu_gsp_get_bar_trap_handler_primary open-iov-vfio EXPORT_SYMBOL ++0x1ba6baef nv_vgpu_gsp_get_entry_point open-iov-vfio EXPORT_SYMBOL ++0x4fa3b818 fw_analyzer_analyze open-iov-vfio EXPORT_SYMBOL_GPL ++0x424272d4 fw_analyzer_load_and_analyze open-iov-vfio EXPORT_SYMBOL_GPL ++0x7f7c5e6c fw_analyzer_print_result open-iov-vfio EXPORT_SYMBOL_GPL ++0x8c7dcd3c dynamic_dispatcher_init open-iov-vfio EXPORT_SYMBOL_GPL ++0x01dca6c2 dynamic_dispatcher_fini open-iov-vfio EXPORT_SYMBOL_GPL ++0xcd45da5f dynamic_dispatcher_use_emulation open-iov-vfio EXPORT_SYMBOL_GPL ++0x5c69b70b dynamic_dispatcher_alloc open-iov-vfio EXPORT_SYMBOL_GPL ++0x436485b4 dynamic_dispatcher_free open-iov-vfio EXPORT_SYMBOL_GPL ++0xd4547701 dynamic_dispatcher_map open-iov-vfio EXPORT_SYMBOL_GPL ++0xa69f56a4 dynamic_dispatcher_unmap open-iov-vfio EXPORT_SYMBOL_GPL ++0x444e6538 dynamic_dispatcher_pin open-iov-vfio EXPORT_SYMBOL_GPL ++0x8eeace2b dynamic_dispatcher_unpin open-iov-vfio EXPORT_SYMBOL_GPL ++0x39142c5c dynamic_dispatcher_schedule open-iov-vfio EXPORT_SYMBOL_GPL ++0xb5bb4890 dynamic_dispatcher_yield open-iov-vfio EXPORT_SYMBOL_GPL ++0x5bd014a6 dynamic_dispatcher_bar_trap open-iov-vfio EXPORT_SYMBOL_GPL ++0xc6bc85d2 dynamic_dispatcher_migrate_save open-iov-vfio EXPORT_SYMBOL_GPL ++0x2f480b10 dynamic_dispatcher_migrate_restore open-iov-vfio EXPORT_SYMBOL_GPL ++0xd1994a67 dynamic_dispatcher_notify_register open-iov-vfio EXPORT_SYMBOL_GPL ++0xeb6d1fbc dynamic_dispatcher_notify_unregister open-iov-vfio EXPORT_SYMBOL_GPL ++0x4c369e34 dynamic_dispatcher_get_version open-iov-vfio EXPORT_SYMBOL_GPL ++0xc5d8eb77 dynamic_dispatcher_get_fw_addresses open-iov-vfio EXPORT_SYMBOL_GPL ++0x48cbd40e arch_get_by_name open-iov-vfio EXPORT_SYMBOL_GPL ++0x90c7d953 arch_get_by_pci_id open-iov-vfio EXPORT_SYMBOL_GPL ++0x750f8f00 arch_get_default open-iov-vfio EXPORT_SYMBOL_GPL ++0xa505fad7 arch_get_bar_config open-iov-vfio EXPORT_SYMBOL_GPL ++0x6707466a arch_get_doorbell_offset open-iov-vfio EXPORT_SYMBOL_GPL ++0xc9ed25fd arch_get_shared_mem_offset open-iov-vfio EXPORT_SYMBOL_GPL ++0x1d6af5c9 arch_get_msix_vectors open-iov-vfio EXPORT_SYMBOL_GPL ++0x835587f5 arch_supports_mig open-iov-vfio EXPORT_SYMBOL_GPL ++0x9d3f1b2f arch_supports_sriov open-iov-vfio EXPORT_SYMBOL_GPL ++0xd2409aef arch_get_gsp_version open-iov-vfio EXPORT_SYMBOL_GPL ++0xc75537a2 version_get_interface open-iov-vfio EXPORT_SYMBOL_GPL ++0xe7818f08 version_get_by_kernel_version open-iov-vfio EXPORT_SYMBOL_GPL ++0x12d7fadb version_has_feature open-iov-vfio EXPORT_SYMBOL_GPL ++0xfab46c68 version_get_string open-iov-vfio EXPORT_SYMBOL_GPL diff --git a/kernel-open/common/inc/nv-linux.h b/kernel-open/common/inc/nv-linux.h index 7733e80..8331487 100644 --- a/kernel-open/common/inc/nv-linux.h diff --git a/patches/nvidia/README.md b/patches/nvidia/README.md new file mode 100644 index 0000000..9c74f75 --- /dev/null +++ b/patches/nvidia/README.md @@ -0,0 +1,45 @@ +# NVIDIA open-gpu-kernel-modules Patches + +Open-IOV does **not** vendor the NVIDIA OpenRM source tree. Instead, the +installer clones upstream at a pinned tag and applies this patch series. + +## Pinned upstream + +- Repository: <https://github.com/NVIDIA/open-gpu-kernel-modules.git> +- Tag: `610.57.04` +- Pristine-tree SHA256 of the delta base: tag `610.57.04` + +## Applying + +```bash +git clone --depth 1 --branch 610.57.04 \ + https://github.com/NVIDIA/open-gpu-kernel-modules.git +cd open-gpu-kernel-modules +git apply /path/to/open-iov/patches/nvidia/*.patch +``` + +(`install.sh` does this automatically.) + +## Regenerating the series + +If you modify the NVIDIA tree, regenerate the patches with: + +```bash +cd nvidia-open-gpu-kernel-modules +git format-patch 610.57.04..HEAD -o ../patches/nvidia/ +``` + +## What the series does + +`0001-Build-fixes-and-vGPU-VFIO-interface-integration.patch`: + +- Adds the vGPU VFIO interface headers (`nv-vgpu-vfio-interface.h`, + `nv-vgpu-vfio-interface-nvidia.h`) that `open-iov-vfio.ko` and + `nvidia.ko` share. +- Exports the vGPU VFIO symbols from `nvidia.ko` + (`nvidia_vgpu_vfio_probe/remove`, `nvidia_vgpu_vfio_get_ops/set_ops`, + `nv_vgpu_mdev_register_parent/unregister_parent`, ...). +- Reports version `570.144` to match the GSP firmware the guest driver + stack is validated against. +- Build fixes for kernel 6.8 out-of-tree builds and the + `Module.symvers.open-iov` reference list. |
