Skip to content

Commit 443ace9

Browse files
committed
570.158.01
1 parent d5cb404 commit 443ace9

File tree

36 files changed

+300
-110
lines changed

36 files changed

+300
-110
lines changed

README.md

Lines changed: 12 additions & 3 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 570.153.02.
4+
version 570.158.01.
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-
570.153.02 driver release. This can be achieved by installing
20+
570.158.01 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

@@ -185,7 +185,7 @@ table below).
185185
For details on feature support and limitations, see the NVIDIA GPU driver
186186
end user README here:
187187

188-
https://us.download.nvidia.com/XFree86/Linux-x86_64/570.153.02/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/570.158.01/README/kernel_open.html
189189

190190
For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
191191
Package for more details.
@@ -966,11 +966,20 @@ Subsystem Device ID.
966966
| NVIDIA GeForce RTX 5070 Ti | 2C05 |
967967
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C18 |
968968
| NVIDIA GeForce RTX 5080 Laptop GPU | 2C19 |
969+
| NVIDIA RTX PRO 5000 Blackwell Generation Laptop GPU | 2C38 |
970+
| NVIDIA RTX PRO 4000 Blackwell Generation Laptop GPU | 2C39 |
969971
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C58 |
970972
| NVIDIA GeForce RTX 5080 Laptop GPU | 2C59 |
971973
| NVIDIA GeForce RTX 5060 Ti | 2D04 |
974+
| NVIDIA GeForce RTX 5060 | 2D05 |
972975
| NVIDIA GeForce RTX 5070 Laptop GPU | 2D18 |
976+
| NVIDIA GeForce RTX 5060 Laptop GPU | 2D19 |
977+
| NVIDIA RTX PRO 2000 Blackwell Generation Laptop GPU | 2D39 |
973978
| NVIDIA GeForce RTX 5070 Laptop GPU | 2D58 |
979+
| NVIDIA GeForce RTX 5060 Laptop GPU | 2D59 |
980+
| NVIDIA RTX PRO 1000 Blackwell Generation Laptop GPU | 2DB8 |
981+
| NVIDIA RTX PRO 500 Blackwell Generation Laptop GPU | 2DB9 |
974982
| NVIDIA GeForce RTX 5070 | 2F04 |
975983
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F18 |
984+
| NVIDIA RTX PRO 3000 Blackwell Generation Laptop GPU | 2F38 |
976985
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F58 |

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ ccflags-y += -I$(src)/common/inc
7979
ccflags-y += -I$(src)
8080
ccflags-y += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
8181
ccflags-y += -D__KERNEL__ -DMODULE -DNVRM
82-
ccflags-y += -DNV_VERSION_STRING=\"570.153.02\"
82+
ccflags-y += -DNV_VERSION_STRING=\"570.158.01\"
8383

8484
ifneq ($(SYSSRCHOST1X),)
8585
ccflags-y += -I$(SYSSRCHOST1X)

kernel-open/conftest.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6602,22 +6602,22 @@ compile_test() {
66026602
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_DUMB_DESTROY" "" "types"
66036603
;;
66046604

6605-
memory_failure_has_trapno_arg)
6605+
memory_failure_queue_has_trapno_arg)
66066606
#
6607-
# Check if memory_failure() has trapno parameter.
6607+
# Check if memory_failure_queue() has trapno parameter.
66086608
#
66096609
# Removed by commit 83b57531c58f ("mm/memory_failure: Remove
66106610
# unused trapno from memory_failure") in v4.16.
66116611
#
66126612
CODE="
66136613
#include <linux/mm.h>
6614-
void conftest_memory_failure_has_trapno_arg(unsigned long pfn,
6614+
void conftest_memory_failure_queue_has_trapno_arg(unsigned long pfn,
66156615
int trapno,
66166616
int flags) {
6617-
(void) memory_failure(pfn, trapno, flags);
6617+
memory_failure_queue(pfn, trapno, flags);
66186618
}"
66196619

6620-
compile_check_conftest "$CODE" "NV_MEMORY_FAILURE_HAS_TRAPNO_ARG" "" "types"
6620+
compile_check_conftest "$CODE" "NV_MEMORY_FAILURE_QUEUE_HAS_TRAPNO_ARG" "" "types"
66216621
;;
66226622

66236623
memory_failure_mf_sw_simulated_defined)
@@ -7571,7 +7571,7 @@ compile_test() {
75717571
CODE="
75727572
#include <linux/mmzone.h>
75737573
int conftest_page_pgmap(void) {
7574-
return page_pgmap(NULL);
7574+
return page_pgmap();
75757575
}"
75767576

75777577
compile_check_conftest "$CODE" "NV_PAGE_PGMAP_PRESENT" "" "functions"

kernel-open/nvidia-uvm/uvm_ats_faults.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,20 @@ NV_STATUS uvm_ats_service_access_counters(uvm_gpu_va_space_t *gpu_va_space,
767767
&ats_context->access_counters.accessed_mask,
768768
&ats_context->prefetch_state.residency_mask);
769769

770+
// Pretend that pages that are already resident at the destination GPU were
771+
// migrated now. This makes sure that the access counter is cleared even if
772+
// the accessed pages, were already resident on the target.
773+
// TODO: Bug 5296998: [uvm][ats] Not clearing stale access counter
774+
// notifications can lead to missed migrations
775+
// The same problem of stale notification exists for migration to other
776+
// locations than local vidmem. However, stale notifications to data
777+
// migrated to another remote location are identical to those triggered
778+
// by accessing memory that cannot or should not be migrated.
779+
if (uvm_id_equal(ats_context->residency_id, gpu_va_space->gpu->id)) {
780+
uvm_page_mask_copy(&ats_context->access_counters.migrated_mask,
781+
&ats_context->prefetch_state.residency_mask);
782+
}
783+
770784
for_each_va_block_subregion_in_mask(subregion, &ats_context->access_counters.accessed_mask, region) {
771785
NV_STATUS status;
772786
NvU64 start = base + (subregion.first * PAGE_SIZE);
@@ -779,7 +793,7 @@ NV_STATUS uvm_ats_service_access_counters(uvm_gpu_va_space_t *gpu_va_space,
779793

780794
status = service_ats_requests(gpu_va_space, vma, start, length, access_type, service_type, ats_context);
781795

782-
// clear access counters if pages were migrated or migration needs to
796+
// Clear access counters if pages were migrated or migration needs to
783797
// be retried
784798
if (status == NV_OK || status == NV_ERR_BUSY_RETRY)
785799
uvm_page_mask_region_fill(migrated_mask, subregion);

kernel-open/nvidia/nv-caps.c

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* SPDX-FileCopyrightText: Copyright (c) 2019-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
* SPDX-FileCopyrightText: Copyright (c) 2019-2025 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
@@ -582,6 +582,9 @@ int NV_API_CALL nv_cap_validate_and_dup_fd(const nv_cap_t *cap, int fd)
582582
void NV_API_CALL nv_cap_close_fd(int fd)
583583
{
584584
#if NV_FILESYSTEM_ACCESS_AVAILABLE
585+
struct file *file;
586+
NvBool is_nv_cap_fd;
587+
585588
if (fd == -1)
586589
{
587590
return;
@@ -600,6 +603,30 @@ void NV_API_CALL nv_cap_close_fd(int fd)
600603
return;
601604
}
602605

606+
file = fget(fd);
607+
if (file == NULL)
608+
{
609+
task_unlock(current);
610+
return;
611+
}
612+
613+
/* Make sure the fd belongs to the nv-cap-drv */
614+
is_nv_cap_fd = (file->f_op == &g_nv_cap_drv_fops);
615+
616+
fput(file);
617+
618+
/*
619+
* In some cases, we may be in shutdown path and execute
620+
* in context of unrelated process. In that case we should
621+
* not access any 'current' state, but instead let kernel
622+
* clean up capability files on its own.
623+
*/
624+
if (!is_nv_cap_fd)
625+
{
626+
task_unlock(current);
627+
return;
628+
}
629+
603630
/*
604631
* From v4.17-rc1 (to v5.10.8) kernels have stopped exporting sys_close(fd)
605632
* and started exporting __close_fd, as of this commit:

kernel-open/nvidia/nvidia.Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ NV_CONFTEST_TYPE_COMPILE_TESTS += add_memory_driver_managed_has_mhp_flags_arg
257257
NV_CONFTEST_TYPE_COMPILE_TESTS += num_registered_fb
258258
NV_CONFTEST_TYPE_COMPILE_TESTS += pci_driver_has_driver_managed_dma
259259
NV_CONFTEST_TYPE_COMPILE_TESTS += vm_area_struct_has_const_vm_flags
260-
NV_CONFTEST_TYPE_COMPILE_TESTS += memory_failure_has_trapno_arg
260+
NV_CONFTEST_TYPE_COMPILE_TESTS += memory_failure_queue_has_trapno_arg
261261
NV_CONFTEST_TYPE_COMPILE_TESTS += foll_longterm_present
262262
NV_CONFTEST_TYPE_COMPILE_TESTS += bus_type_has_iommu_ops
263263
NV_CONFTEST_TYPE_COMPILE_TESTS += class_create_has_no_owner_arg

kernel-open/nvidia/os-interface.c

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2596,7 +2596,6 @@ NV_STATUS NV_API_CALL os_offline_page_at_address
25962596
{
25972597
#if defined(CONFIG_MEMORY_FAILURE)
25982598
int flags = 0;
2599-
int ret;
26002599
NvU64 pfn;
26012600
struct page *page = NV_GET_PAGE_STRUCT(address);
26022601

@@ -2621,22 +2620,18 @@ NV_STATUS NV_API_CALL os_offline_page_at_address
26212620
flags |= MF_SW_SIMULATED;
26222621
#endif
26232622

2624-
#ifdef NV_MEMORY_FAILURE_HAS_TRAPNO_ARG
2625-
ret = memory_failure(pfn, 0, flags);
2623+
nv_printf(NV_DBG_INFO, "NVRM: offlining page at address: 0x%llx pfn: 0x%llx\n",
2624+
address, pfn);
2625+
2626+
#ifdef NV_MEMORY_FAILURE_QUEUE_HAS_TRAPNO_ARG
2627+
memory_failure_queue(pfn, 0, flags);
26262628
#else
2627-
ret = memory_failure(pfn, flags);
2629+
memory_failure_queue(pfn, flags);
26282630
#endif
26292631

2630-
if (ret != 0)
2631-
{
2632-
nv_printf(NV_DBG_ERRORS, "NVRM: page offlining failed. address: 0x%llx pfn: 0x%llx ret: %d\n",
2633-
address, pfn, ret);
2634-
return NV_ERR_OPERATING_SYSTEM;
2635-
}
2636-
26372632
return NV_OK;
26382633
#else // !defined(CONFIG_MEMORY_FAILURE)
2639-
nv_printf(NV_DBG_ERRORS, "NVRM: memory_failure() not supported by kernel. page offlining failed. address: 0x%llx\n",
2634+
nv_printf(NV_DBG_ERRORS, "NVRM: memory_failure_queue() not supported by kernel. page offlining failed. address: 0x%llx\n",
26402635
address);
26412636
return NV_ERR_NOT_SUPPORTED;
26422637
#endif

src/common/inc/nvBldVer.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,25 +36,25 @@
3636
// and then checked back in. You cannot make changes to these sections without
3737
// corresponding changes to the buildmeister script
3838
#ifndef NV_BUILD_BRANCH
39-
#define NV_BUILD_BRANCH r573_24
39+
#define NV_BUILD_BRANCH r573_30
4040
#endif
4141
#ifndef NV_PUBLIC_BRANCH
42-
#define NV_PUBLIC_BRANCH r573_24
42+
#define NV_PUBLIC_BRANCH r573_30
4343
#endif
4444

4545
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
46-
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r570/r573_24-444"
47-
#define NV_BUILD_CHANGELIST_NUM (35974374)
46+
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r570/r573_30-464"
47+
#define NV_BUILD_CHANGELIST_NUM (36065453)
4848
#define NV_BUILD_TYPE "Official"
49-
#define NV_BUILD_NAME "rel/gpu_drv/r570/r573_24-444"
50-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35974374)
49+
#define NV_BUILD_NAME "rel/gpu_drv/r570/r573_30-464"
50+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (36065453)
5151

5252
#else /* Windows builds */
53-
#define NV_BUILD_BRANCH_VERSION "r573_24-1"
54-
#define NV_BUILD_CHANGELIST_NUM (35972701)
53+
#define NV_BUILD_BRANCH_VERSION "r573_30-1"
54+
#define NV_BUILD_CHANGELIST_NUM (36065453)
5555
#define NV_BUILD_TYPE "Official"
56-
#define NV_BUILD_NAME "573.25"
57-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35972701)
56+
#define NV_BUILD_NAME "573.32"
57+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (36065453)
5858
#define NV_BUILD_BRANCH_BASE_VERSION R570
5959
#endif
6060
// End buildmeister python edited section

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 "570.153.02"
7+
#define NV_VERSION_STRING "570.158.01"
88

99
#else
1010

src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpu.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2634,7 +2634,14 @@ typedef struct NV2080_CTRL_GPU_SET_PARTITION_INFO {
26342634
#define NV2080_CTRL_GPU_PARTITION_FLAG_GFX_SIZE__SIZE 8U
26352635

26362636

2637-
#define NV2080_CTRL_GPU_PARTITION_MAX_TYPES 40U
2637+
#define NV2080_CTRL_GPU_PARTITION_MAX_TYPES 90U
2638+
2639+
#define NV2080_CTRL_GPU_PARTITION_FLAG_REQ_ALL_MEDIA 29:28
2640+
#define NV2080_CTRL_GPU_PARTITION_FLAG_REQ_ALL_MEDIA_DEFAULT 0U
2641+
#define NV2080_CTRL_GPU_PARTITION_FLAG_REQ_ALL_MEDIA_DISABLE 1U
2642+
#define NV2080_CTRL_GPU_PARTITION_FLAG_REQ_ALL_MEDIA_ENABLE 2U
2643+
2644+
26382645
#define NV2080_CTRL_GPU_PARTITION_FLAG_REQ_DEC_JPG_OFA 30:30
26392646
#define NV2080_CTRL_GPU_PARTITION_FLAG_REQ_DEC_JPG_OFA_DISABLE 0U
26402647
#define NV2080_CTRL_GPU_PARTITION_FLAG_REQ_DEC_JPG_OFA_ENABLE 1U

0 commit comments

Comments
 (0)