Skip to content

Commit 337e28e

Browse files
committed
535.86.05
1 parent 22a077c commit 337e28e

File tree

264 files changed

+67253
-107481
lines changed

Some content is hidden

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

264 files changed

+67253
-107481
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.86.05] 2023-07-18
6+
57
### [535.54.03] 2023-06-14
68

79
### [535.43.02] 2023-05-30

README.md

Lines changed: 6 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.54.03.
4+
version 535.86.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.54.03 driver release. This can be achieved by installing
20+
535.86.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.54.03 release,
183+
(see the table below). However, in the 535.86.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.54.03/README/kernel_open.html
191+
https://us.download.nvidia.com/XFree86/Linux-x86_64/535.86.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
@@ -848,9 +848,11 @@ Subsystem Device ID.
848848
| NVIDIA RTX 3500 Ada Generation Laptop GPU | 27BB |
849849
| NVIDIA GeForce RTX 4080 Laptop GPU | 27E0 |
850850
| NVIDIA GeForce RTX 4060 Ti | 2803 |
851+
| NVIDIA GeForce RTX 4060 Ti | 2805 |
851852
| NVIDIA GeForce RTX 4070 Laptop GPU | 2820 |
852853
| NVIDIA RTX 3000 Ada Generation Laptop GPU | 2838 |
853854
| NVIDIA GeForce RTX 4070 Laptop GPU | 2860 |
855+
| NVIDIA GeForce RTX 4060 | 2882 |
854856
| NVIDIA GeForce RTX 4060 Laptop GPU | 28A0 |
855857
| NVIDIA GeForce RTX 4050 Laptop GPU | 28A1 |
856858
| NVIDIA RTX 2000 Ada Generation Laptop GPU | 28B8 |

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.54.03\"
75+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"535.86.05\"
7676

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

kernel-open/common/inc/nv-linux.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@
211211
#include <linux/highmem.h>
212212

213213
#include <linux/nodemask.h>
214+
#include <linux/memory.h>
214215

215216
#include <linux/workqueue.h> /* workqueue */
216217
#include "nv-kthread-q.h" /* kthread based queue */

kernel-open/common/inc/nv-mm.h

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: Copyright (c) 2016-2017 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
* SPDX-FileCopyrightText: Copyright (c) 2016-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
33
* SPDX-License-Identifier: MIT
44
*
55
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -36,12 +36,21 @@ typedef int vm_fault_t;
3636
* pin_user_pages() was added by commit eddb1c228f7951d399240
3737
* ("mm/gup: introduce pin_user_pages*() and FOLL_PIN") in v5.6-rc1 (2020-01-30)
3838
*
39+
* Removed vmas parameter from pin_user_pages() by commit 40896a02751
40+
* ("mm/gup: remove vmas parameter from pin_user_pages()")
41+
* in linux-next, expected in v6.5-rc1 (2023-05-17)
42+
*
3943
*/
4044

4145
#include <linux/mm.h>
4246
#include <linux/sched.h>
4347
#if defined(NV_PIN_USER_PAGES_PRESENT)
44-
#define NV_PIN_USER_PAGES pin_user_pages
48+
#if defined(NV_PIN_USER_PAGES_HAS_ARGS_VMAS)
49+
#define NV_PIN_USER_PAGES pin_user_pages
50+
#else
51+
#define NV_PIN_USER_PAGES(start, nr_pages, gup_flags, pages, vmas) \
52+
pin_user_pages(start, nr_pages, gup_flags, pages)
53+
#endif // NV_PIN_USER_PAGES_HAS_ARGS_VMAS
4554
#define NV_UNPIN_USER_PAGE unpin_user_page
4655
#else
4756
#define NV_PIN_USER_PAGES NV_GET_USER_PAGES
@@ -64,11 +73,18 @@ typedef int vm_fault_t;
6473
* commit 8e50b8b07f462ab4b91bc1491b1c91bd75e4ad40 which cherry-picked the
6574
* replacement of the write and force parameters with gup_flags
6675
*
76+
* Removed vmas parameter from get_user_pages() by commit 7bbf9c8c99
77+
* ("mm/gup: remove unused vmas parameter from get_user_pages()")
78+
* in linux-next, expected in v6.5-rc1 (2023-05-17)
79+
*
6780
*/
6881

6982
#if defined(NV_GET_USER_PAGES_HAS_ARGS_FLAGS)
83+
#define NV_GET_USER_PAGES(start, nr_pages, flags, pages, vmas) \
84+
get_user_pages(start, nr_pages, flags, pages)
85+
#elif defined(NV_GET_USER_PAGES_HAS_ARGS_FLAGS_VMAS)
7086
#define NV_GET_USER_PAGES get_user_pages
71-
#elif defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS)
87+
#elif defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS_VMAS)
7288
#define NV_GET_USER_PAGES(start, nr_pages, flags, pages, vmas) \
7389
get_user_pages(current, current->mm, start, nr_pages, flags, pages, vmas)
7490
#else
@@ -81,13 +97,13 @@ typedef int vm_fault_t;
8197
int write = flags & FOLL_WRITE;
8298
int force = flags & FOLL_FORCE;
8399

84-
#if defined(NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE)
100+
#if defined(NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS)
85101
return get_user_pages(start, nr_pages, write, force, pages, vmas);
86102
#else
87-
// NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE
103+
// NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS
88104
return get_user_pages(current, current->mm, start, nr_pages, write,
89105
force, pages, vmas);
90-
#endif // NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE
106+
#endif // NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE_VMAS
91107
}
92108
#endif // NV_GET_USER_PAGES_HAS_ARGS_FLAGS
93109

@@ -100,15 +116,22 @@ typedef int vm_fault_t;
100116
* 64019a2e467a ("mm/gup: remove task_struct pointer for all gup code")
101117
* in v5.9-rc1 (2020-08-11). *
102118
*
119+
* Removed unused vmas parameter from pin_user_pages_remote() by commit
120+
* 83bcc2e132("mm/gup: remove unused vmas parameter from pin_user_pages_remote()")
121+
* in linux-next, expected in v6.5-rc1 (2023-05-14)
122+
*
103123
*/
104124

105125
#if defined(NV_PIN_USER_PAGES_REMOTE_PRESENT)
106-
#if defined (NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK)
126+
#if defined(NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS)
107127
#define NV_PIN_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \
108128
pin_user_pages_remote(NULL, mm, start, nr_pages, flags, pages, vmas, locked)
109-
#else
129+
#elif defined(NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_VMAS)
110130
#define NV_PIN_USER_PAGES_REMOTE pin_user_pages_remote
111-
#endif // NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK
131+
#else
132+
#define NV_PIN_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \
133+
pin_user_pages_remote(mm, start, nr_pages, flags, pages, locked)
134+
#endif // NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK_VMAS
112135
#else
113136
#define NV_PIN_USER_PAGES_REMOTE NV_GET_USER_PAGES_REMOTE
114137
#endif // NV_PIN_USER_PAGES_REMOTE_PRESENT
@@ -135,22 +158,30 @@ typedef int vm_fault_t;
135158
* commit 64019a2e467a ("mm/gup: remove task_struct pointer for
136159
* all gup code") in v5.9-rc1 (2020-08-11).
137160
*
161+
* Removed vmas parameter from get_user_pages_remote() by commit a4bde14d549
162+
* ("mm/gup: remove vmas parameter from get_user_pages_remote()")
163+
* in linux-next, expected in v6.5-rc1 (2023-05-14)
164+
*
138165
*/
139166

140167
#if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
141168
#if defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED)
169+
#define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \
170+
get_user_pages_remote(mm, start, nr_pages, flags, pages, locked)
171+
172+
#elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED_VMAS)
142173
#define NV_GET_USER_PAGES_REMOTE get_user_pages_remote
143174

144-
#elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED)
175+
#elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED_VMAS)
145176
#define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \
146177
get_user_pages_remote(NULL, mm, start, nr_pages, flags, pages, vmas, locked)
147178

148-
#elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS)
179+
#elif defined(NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_VMAS)
149180
#define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \
150181
get_user_pages_remote(NULL, mm, start, nr_pages, flags, pages, vmas)
151182

152183
#else
153-
// NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE
184+
// NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE_VMAS
154185
static inline long NV_GET_USER_PAGES_REMOTE(struct mm_struct *mm,
155186
unsigned long start,
156187
unsigned long nr_pages,
@@ -167,7 +198,7 @@ typedef int vm_fault_t;
167198
}
168199
#endif // NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED
169200
#else
170-
#if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE)
201+
#if defined(NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS)
171202
static inline long NV_GET_USER_PAGES_REMOTE(struct mm_struct *mm,
172203
unsigned long start,
173204
unsigned long nr_pages,
@@ -185,7 +216,7 @@ typedef int vm_fault_t;
185216
#else
186217
#define NV_GET_USER_PAGES_REMOTE(mm, start, nr_pages, flags, pages, vmas, locked) \
187218
get_user_pages(NULL, mm, start, nr_pages, flags, pages, vmas)
188-
#endif // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE
219+
#endif // NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE_VMAS
189220
#endif // NV_GET_USER_PAGES_REMOTE_PRESENT
190221

191222
/*

kernel-open/common/inc/nv_uvm_types.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,14 @@ typedef union UvmFaultMetadataPacket_tag
852852
NvU8 _padding[32];
853853
} UvmFaultMetadataPacket;
854854

855+
// This struct shall not be accessed nor modified directly by UVM as it is
856+
// entirely managed by the RM layer
857+
typedef struct UvmCslContext_tag
858+
{
859+
struct ccslContext_t *ctx;
860+
void *nvidia_stack;
861+
} UvmCslContext;
862+
855863
typedef struct UvmGpuFaultInfo_tag
856864
{
857865
struct
@@ -909,6 +917,10 @@ typedef struct UvmGpuFaultInfo_tag
909917
// Confidential Computing is disabled.
910918
UvmFaultMetadataPacket *bufferMetadata;
911919

920+
// CSL context used for performing decryption of replayable faults when
921+
// Confidential Computing is enabled.
922+
UvmCslContext cslCtx;
923+
912924
// Indicates whether UVM owns the replayable fault buffer.
913925
// The value of this field is always NV_TRUE When Confidential Computing
914926
// is disabled.
@@ -1047,14 +1059,6 @@ typedef UvmGpuPagingChannelInfo gpuPagingChannelInfo;
10471059
typedef UvmGpuPagingChannelAllocParams gpuPagingChannelAllocParams;
10481060
typedef UvmPmaAllocationOptions gpuPmaAllocationOptions;
10491061

1050-
// This struct shall not be accessed nor modified directly by UVM as it is
1051-
// entirely managed by the RM layer
1052-
typedef struct UvmCslContext_tag
1053-
{
1054-
struct ccslContext_t *ctx;
1055-
void *nvidia_stack;
1056-
} UvmCslContext;
1057-
10581062
typedef struct UvmCslIv
10591063
{
10601064
NvU8 iv[12];

0 commit comments

Comments
 (0)