Skip to content

Commit 29f830f

Browse files
committed
535.86.10
1 parent 337e28e commit 29f830f

File tree

14 files changed

+61
-175
lines changed

14 files changed

+61
-175
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.10] 2023-07-31
6+
57
### [535.86.05] 2023-07-18
68

79
### [535.54.03] 2023-06-14

README.md

Lines changed: 4 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.86.05.
4+
version 535.86.10.
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.86.05 driver release. This can be achieved by installing
20+
535.86.10 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.86.05 release,
183+
(see the table below). However, in the 535.86.10 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.86.05/README/kernel_open.html
191+
https://us.download.nvidia.com/XFree86/Linux-x86_64/535.86.10/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

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

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

kernel-open/nvidia-uvm/uvm_channel.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2703,7 +2703,15 @@ static void init_channel_manager_conf(uvm_channel_manager_t *manager)
27032703
// access through the bus, because no cache coherence message is exchanged.
27042704
if (uvm_gpu_is_coherent(gpu->parent)) {
27052705
manager->conf.gpfifo_loc = UVM_BUFFER_LOCATION_SYS;
2706-
manager->conf.gpput_loc = UVM_BUFFER_LOCATION_SYS;
2706+
2707+
// On GPUs with limited ESCHED addressing range, e.g., Volta on P9, RM
2708+
// cannot guarantee that USERD/GPPUT physical address is accessible by
2709+
// ESCHED. We set GPPUT location to vidmem where physical addresses are
2710+
// all accessible by ESCHED. We use the max_host_va as a proxy for the
2711+
// PA limitation, since all architectures with 40b VA limits also have
2712+
// 40b PA limits.
2713+
manager->conf.gpput_loc = gpu->parent->max_host_va == (1ull << 40) ? UVM_BUFFER_LOCATION_VID :
2714+
UVM_BUFFER_LOCATION_SYS;
27072715
}
27082716
else {
27092717
// By default we place GPFIFO and GPPUT on vidmem as it potentially has

kernel-open/nvidia/nvlink_export.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,6 @@ NvlStatus nvlink_lib_unload(void);
4646
*/
4747
NvlStatus nvlink_lib_ioctl_ctrl(nvlink_ioctrl_params *ctrl_params);
4848

49-
/*
50-
* Gets number of devices with type deviceType
51-
*/
52-
NvlStatus nvlink_lib_return_device_count_by_type(NvU32 deviceType, NvU32 *numDevices);
53-
5449
#ifdef __cplusplus
5550
}
5651
#endif

src/common/inc/nvBldVer.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@
4343
#endif
4444

4545
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
46-
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r535/r536_62-214"
47-
#define NV_BUILD_CHANGELIST_NUM (33069717)
46+
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r535/r536_62-219"
47+
#define NV_BUILD_CHANGELIST_NUM (33114094)
4848
#define NV_BUILD_TYPE "Official"
49-
#define NV_BUILD_NAME "rel/gpu_drv/r535/r536_62-214"
50-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (33069717)
49+
#define NV_BUILD_NAME "rel/gpu_drv/r535/r536_62-219"
50+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (33114094)
5151

5252
#else /* Windows builds */
5353
#define NV_BUILD_BRANCH_VERSION "r536_62-3"

src/common/inc/nvUnixVersion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \
55
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1)
66

7-
#define NV_VERSION_STRING "535.86.05"
7+
#define NV_VERSION_STRING "535.86.10"
88

99
#else
1010

src/common/nvlink/interface/nvlink.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -439,11 +439,6 @@ NvlStatus nvlink_lib_register_link(nvlink_device *dev, nvlink_link *link);
439439
*/
440440
NvlStatus nvlink_lib_unregister_link(nvlink_link *link);
441441

442-
/*
443-
* Gets number of devices with type deviceType
444-
*/
445-
NvlStatus nvlink_lib_return_device_count_by_type(NvU32 deviceType, NvU32 *numDevices);
446-
447442

448443
/************************************************************************************************/
449444
/******************************* NVLink link management functions *******************************/

src/common/nvlink/interface/nvlink_export.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,6 @@ NvlStatus nvlink_lib_unload(void);
4646
*/
4747
NvlStatus nvlink_lib_ioctl_ctrl(nvlink_ioctrl_params *ctrl_params);
4848

49-
/*
50-
* Gets number of devices with type deviceType
51-
*/
52-
NvlStatus nvlink_lib_return_device_count_by_type(NvU32 deviceType, NvU32 *numDevices);
53-
5449
#ifdef __cplusplus
5550
}
5651
#endif

src/common/nvlink/kernel/nvlink/nvlink_lib_mgmt.c

Lines changed: 5 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ nvlink_lib_is_registerd_device_with_reduced_config(void)
171171
{
172172
NvlStatus lock_status = NVL_SUCCESS;
173173
nvlink_device *dev = NULL;
174+
NvBool bIsReducedConfg = NV_FALSE;
174175

175176
// Acquire top-level lock
176177
lock_status = nvlink_lib_top_lock_acquire();
@@ -187,58 +188,13 @@ nvlink_lib_is_registerd_device_with_reduced_config(void)
187188
{
188189
if (dev->bReducedNvlinkConfig == NV_TRUE)
189190
{
190-
return NV_TRUE;
191+
bIsReducedConfg = NV_TRUE;
192+
break;
191193
}
192194
}
193195

194-
// Release and free top-level lock
196+
// Release top-level lock
195197
nvlink_lib_top_lock_release();
196-
nvlink_lib_top_lock_free();
197198

198-
return NV_FALSE;
199-
}
200-
201-
/*
202-
* Get the number of devices that have the device type deviceType
203-
*/
204-
NvlStatus
205-
nvlink_lib_return_device_count_by_type
206-
(
207-
NvU32 deviceType,
208-
NvU32 *numDevices
209-
)
210-
{
211-
NvlStatus lock_status = NVL_SUCCESS;
212-
nvlink_device *dev = NULL;
213-
NvU32 device_count = 0;
214-
215-
if (nvlink_lib_is_initialized())
216-
{
217-
// Acquire top-level lock
218-
lock_status = nvlink_lib_top_lock_acquire();
219-
if (lock_status != NVL_SUCCESS)
220-
{
221-
NVLINK_PRINT((DBG_MODULE_NVLINK_CORE, NVLINK_DBG_LEVEL_ERRORS,
222-
"%s: Failed to acquire top-level lock\n",
223-
__FUNCTION__));
224-
225-
return lock_status;
226-
}
227-
228-
// Top-level lock is now acquired
229-
230-
// Loop through device list
231-
FOR_EACH_DEVICE_REGISTERED(dev, nvlinkLibCtx.nv_devicelist_head, node)
232-
{
233-
if (dev->type == deviceType)
234-
{
235-
device_count++;
236-
}
237-
}
238-
239-
// Release top-level lock
240-
nvlink_lib_top_lock_release();
241-
}
242-
*numDevices = device_count;
243-
return NVL_SUCCESS;
199+
return bIsReducedConfg;
244200
}

0 commit comments

Comments
 (0)