Skip to content

Commit a8e01be

Browse files
committed
535.104.05
1 parent 12c0739 commit a8e01be

File tree

122 files changed

+41597
-34603
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+41597
-34603
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## Release 535 Entries
44

5+
### [535.104.05] 2023-08-22
6+
57
### [535.98] 2023-08-08
68

79
### [535.86.10] 2023-07-31

README.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# NVIDIA Linux Open GPU Kernel Module Source
22

33
This is the source release of the NVIDIA Linux open GPU kernel modules,
4-
version 535.98.
4+
version 535.104.05.
55

66

77
## How to Build
@@ -17,7 +17,7 @@ as root:
1717

1818
Note that the kernel modules built here must be used with GSP
1919
firmware and user-space NVIDIA GPU driver components from a corresponding
20-
535.98 driver release. This can be achieved by installing
20+
535.104.05 driver release. This can be achieved by installing
2121
the NVIDIA GPU driver from the .run file using the `--no-kernel-modules`
2222
option. E.g.,
2323

@@ -180,15 +180,15 @@ software applications.
180180
## Compatible GPUs
181181

182182
The open-gpu-kernel-modules can be used on any Turing or later GPU
183-
(see the table below). However, in the 535.98 release,
183+
(see the table below). However, in the 535.104.05 release,
184184
GeForce and Workstation support is still considered alpha-quality.
185185

186186
To enable use of the open kernel modules on GeForce and Workstation GPUs,
187187
set the "NVreg_OpenRmEnableUnsupportedGpus" nvidia.ko kernel module
188188
parameter to 1. For more details, see the NVIDIA GPU driver end user
189189
README here:
190190

191-
https://us.download.nvidia.com/XFree86/Linux-x86_64/535.98/README/kernel_open.html
191+
https://us.download.nvidia.com/XFree86/Linux-x86_64/535.104.05/README/kernel_open.html
192192

193193
In the below table, if three IDs are listed, the first is the PCI Device
194194
ID, the second is the PCI Subsystem Vendor ID, and the third is the PCI
@@ -665,6 +665,7 @@ Subsystem Device ID.
665665
| NVIDIA PG506-232 | 20B6 10DE 1492 |
666666
| NVIDIA A30 | 20B7 10DE 1532 |
667667
| NVIDIA A30 | 20B7 10DE 1804 |
668+
| NVIDIA A800-SXM4-40GB | 20BD 10DE 17F4 |
668669
| NVIDIA A100-PCIE-40GB | 20F1 10DE 145F |
669670
| NVIDIA A800-SXM4-80GB | 20F3 10DE 179B |
670671
| NVIDIA A800-SXM4-80GB | 20F3 10DE 179C |
@@ -676,6 +677,10 @@ Subsystem Device ID.
676677
| NVIDIA A800-SXM4-80GB | 20F3 10DE 17A2 |
677678
| NVIDIA A800 80GB PCIe | 20F5 10DE 1799 |
678679
| NVIDIA A800 80GB PCIe LC | 20F5 10DE 179A |
680+
| NVIDIA A800 40GB Active | 20F6 1028 180A |
681+
| NVIDIA A800 40GB Active | 20F6 103C 180A |
682+
| NVIDIA A800 40GB Active | 20F6 10DE 180A |
683+
| NVIDIA A800 40GB Active | 20F6 17AA 180A |
679684
| NVIDIA GeForce GTX 1660 Ti | 2182 |
680685
| NVIDIA GeForce GTX 1660 | 2184 |
681686
| NVIDIA GeForce GTX 1650 SUPER | 2187 |
@@ -734,13 +739,15 @@ Subsystem Device ID.
734739
| NVIDIA A10 | 2236 10DE 1482 |
735740
| NVIDIA A10G | 2237 10DE 152F |
736741
| NVIDIA A10M | 2238 10DE 1677 |
742+
| NVIDIA H100 NVL | 2321 10DE 1839 |
737743
| NVIDIA H800 PCIe | 2322 10DE 17A4 |
738744
| NVIDIA H800 | 2324 10DE 17A6 |
739745
| NVIDIA H800 | 2324 10DE 17A8 |
740746
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C0 |
741747
| NVIDIA H100 80GB HBM3 | 2330 10DE 16C1 |
742748
| NVIDIA H100 PCIe | 2331 10DE 1626 |
743749
| NVIDIA H100 | 2339 10DE 17FC |
750+
| NVIDIA H800 NVL | 233A 10DE 183A |
744751
| NVIDIA GeForce RTX 3060 Ti | 2414 |
745752
| NVIDIA GeForce RTX 3080 Ti Laptop GPU | 2420 |
746753
| NVIDIA RTX A5500 Laptop GPU | 2438 |
@@ -835,10 +842,13 @@ Subsystem Device ID.
835842
| NVIDIA RTX 5000 Ada Generation | 26B2 17AA 17FA |
836843
| NVIDIA L40 | 26B5 10DE 169D |
837844
| NVIDIA L40 | 26B5 10DE 17DA |
845+
| NVIDIA L40S | 26B9 10DE 1851 |
846+
| NVIDIA L40S | 26B9 10DE 18CF |
838847
| NVIDIA GeForce RTX 4080 | 2704 |
839848
| NVIDIA GeForce RTX 4090 Laptop GPU | 2717 |
840849
| NVIDIA RTX 5000 Ada Generation Laptop GPU | 2730 |
841850
| NVIDIA GeForce RTX 4090 Laptop GPU | 2757 |
851+
| NVIDIA RTX 5000 Ada Generation Embedded GPU | 2770 |
842852
| NVIDIA GeForce RTX 4070 Ti | 2782 |
843853
| NVIDIA GeForce RTX 4070 | 2786 |
844854
| NVIDIA GeForce RTX 4080 Laptop GPU | 27A0 |
@@ -855,6 +865,7 @@ Subsystem Device ID.
855865
| NVIDIA RTX 4000 Ada Generation Laptop GPU | 27BA |
856866
| NVIDIA RTX 3500 Ada Generation Laptop GPU | 27BB |
857867
| NVIDIA GeForce RTX 4080 Laptop GPU | 27E0 |
868+
| NVIDIA RTX 3500 Ada Generation Embedded GPU | 27FB |
858869
| NVIDIA GeForce RTX 4060 Ti | 2803 |
859870
| NVIDIA GeForce RTX 4060 Ti | 2805 |
860871
| NVIDIA GeForce RTX 4070 Laptop GPU | 2820 |
@@ -866,3 +877,4 @@ Subsystem Device ID.
866877
| NVIDIA RTX 2000 Ada Generation Laptop GPU | 28B8 |
867878
| NVIDIA GeForce RTX 4060 Laptop GPU | 28E0 |
868879
| NVIDIA GeForce RTX 4050 Laptop GPU | 28E1 |
880+
| NVIDIA RTX 2000 Ada Generation Embedded GPU | 28F8 |

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
7272
EXTRA_CFLAGS += -I$(src)
7373
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-error -Wno-format-extra-args
7474
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
75-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"535.98\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"535.104.05\"
7676

7777
ifneq ($(SYSSRCHOST1X),)
7878
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)

kernel-open/common/inc/nv_uvm_types.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -566,8 +566,11 @@ typedef struct UvmPlatformInfo_tag
566566
// Out: ATS (Address Translation Services) is supported
567567
NvBool atsSupported;
568568

569-
// Out: AMD SEV (Secure Encrypted Virtualization) is enabled
570-
NvBool sevEnabled;
569+
// Out: True if HW trusted execution, such as AMD's SEV-SNP or Intel's TDX,
570+
// is enabled in the VM, indicating that Confidential Computing must be
571+
// also enabled in the GPU(s); these two security features are either both
572+
// enabled, or both disabled.
573+
NvBool confComputingEnabled;
571574
} UvmPlatformInfo;
572575

573576
typedef struct UvmGpuClientInfo_tag

kernel-open/conftest.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6341,6 +6341,21 @@ compile_test() {
63416341
compile_check_conftest "$CODE" "NV_MEMPOLICY_HAS_HOME_NODE" "" "types"
63426342
;;
63436343

6344+
mmu_interval_notifier)
6345+
#
6346+
# Determine if mmu_interval_notifier struct is present or not
6347+
#
6348+
# Added by commit 99cb252f5 ("mm/mmu_notifier: add an interval tree
6349+
# notifier") in v5.10 (2019-11-12).
6350+
#
6351+
CODE="
6352+
#include <linux/mmu_notifier.h>
6353+
struct mmu_interval_notifier interval_notifier;
6354+
"
6355+
6356+
compile_check_conftest "$CODE" "NV_MMU_INTERVAL_NOTIFIER" "" "types"
6357+
;;
6358+
63446359
# When adding a new conftest entry, please use the correct format for
63456360
# specifying the relevant upstream Linux kernel commit.
63466361
#

kernel-open/nvidia-uvm/nvidia-uvm.Kbuild

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,6 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += handle_mm_fault_has_mm_arg
110110
NV_CONFTEST_TYPE_COMPILE_TESTS += handle_mm_fault_has_pt_regs_arg
111111
NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_unified_nodes
112112
NV_CONFTEST_TYPE_COMPILE_TESTS += mempolicy_has_home_node
113+
NV_CONFTEST_TYPE_COMPILE_TESTS += mmu_interval_notifier
113114

114115
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_int_active_memcg

kernel-open/nvidia-uvm/uvm_ats.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ void uvm_ats_init(const UvmPlatformInfo *platform_info)
4444

4545
void uvm_ats_init_va_space(uvm_va_space_t *va_space)
4646
{
47+
uvm_init_rwsem(&va_space->ats.lock, UVM_LOCK_ORDER_LEAF);
48+
4749
if (UVM_ATS_IBM_SUPPORTED())
4850
uvm_ats_ibm_init_va_space(va_space);
4951
}

kernel-open/nvidia-uvm/uvm_ats.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,32 @@
2828
#include "uvm_forward_decl.h"
2929
#include "uvm_ats_ibm.h"
3030
#include "nv_uvm_types.h"
31+
#include "uvm_lock.h"
3132

3233
#include "uvm_ats_sva.h"
3334

3435
#define UVM_ATS_SUPPORTED() (UVM_ATS_IBM_SUPPORTED() || UVM_ATS_SVA_SUPPORTED())
3536

37+
// ATS prefetcher uses hmm_range_fault() to query residency information.
38+
// hmm_range_fault() needs CONFIG_HMM_MIRROR. To detect racing CPU invalidates
39+
// of memory regions while hmm_range_fault() is being called, MMU interval
40+
// notifiers are needed.
41+
#if defined(CONFIG_HMM_MIRROR) && defined(NV_MMU_INTERVAL_NOTIFIER)
42+
#define UVM_ATS_PREFETCH_SUPPORTED() 1
43+
#else
44+
#define UVM_ATS_PREFETCH_SUPPORTED() 0
45+
#endif
46+
3647
typedef struct
3748
{
3849
// Mask of gpu_va_spaces which are registered for ATS access. The mask is
3950
// indexed by gpu->id. This mask is protected by the VA space lock.
4051
uvm_processor_mask_t registered_gpu_va_spaces;
4152

53+
// Protects racing invalidates in the VA space while hmm_range_fault() is
54+
// being called in ats_compute_residency_mask().
55+
uvm_rw_semaphore_t lock;
56+
4257
union
4358
{
4459
uvm_ibm_va_space_t ibm;

0 commit comments

Comments
 (0)