Skip to content

Commit e8113f6

Browse files
committed
570.133.20
1 parent c5e439f commit e8113f6

File tree

15 files changed

+47
-105
lines changed

15 files changed

+47
-105
lines changed

README.md

Lines changed: 8 additions & 8 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.133.07.
4+
version 570.133.20.
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.133.07 driver release. This can be achieved by installing
20+
570.133.20 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.133.07/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/570.133.20/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.
@@ -943,11 +943,11 @@ Subsystem Device ID.
943943
| NVIDIA B200 | 2901 10DE 1999 |
944944
| NVIDIA B200 | 2901 10DE 199B |
945945
| NVIDIA B200 | 2901 10DE 20DA |
946-
| NVIDIA HGX GB200 | 2941 10DE 2046 |
947-
| NVIDIA HGX GB200 | 2941 10DE 20CA |
948-
| NVIDIA HGX GB200 | 2941 10DE 20D5 |
949-
| NVIDIA HGX GB200 | 2941 10DE 21C9 |
950-
| NVIDIA HGX GB200 | 2941 10DE 21CA |
946+
| NVIDIA GB200 | 2941 10DE 2046 |
947+
| NVIDIA GB200 | 2941 10DE 20CA |
948+
| NVIDIA GB200 | 2941 10DE 20D5 |
949+
| NVIDIA GB200 | 2941 10DE 21C9 |
950+
| NVIDIA GB200 | 2941 10DE 21CA |
951951
| NVIDIA GeForce RTX 5090 | 2B85 |
952952
| NVIDIA GeForce RTX 5090 D | 2B87 |
953953
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 1028 204B |

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
8686
EXTRA_CFLAGS += -I$(src)
8787
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
8888
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
89-
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"570.133.07\"
89+
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"570.133.20\"
9090

9191
ifneq ($(SYSSRCHOST1X),)
9292
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,6 @@ extern int nv_pat_mode;
345345

346346
#define NV_PAGE_COUNT(page) \
347347
((unsigned int)page_count(page))
348-
#define NV_GET_PAGE_COUNT(page_ptr) \
349-
(NV_PAGE_COUNT(NV_GET_PAGE_STRUCT(page_ptr->phys_addr)))
350348
#define NV_GET_PAGE_FLAGS(page_ptr) \
351349
(NV_GET_PAGE_STRUCT(page_ptr->phys_addr)->flags)
352350

@@ -1161,10 +1159,6 @@ typedef struct nvidia_pte_s {
11611159
NvU64 phys_addr;
11621160
unsigned long virt_addr;
11631161
NvU64 dma_addr;
1164-
#ifdef CONFIG_XEN
1165-
unsigned int guest_pfn;
1166-
#endif
1167-
unsigned int page_count;
11681162
} nvidia_pte_t;
11691163

11701164
#if defined(CONFIG_DMA_SHARED_BUFFER)

kernel-open/nvidia-uvm/uvm_linux.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ static inline const struct cpumask *uvm_cpumask_of_node(int node)
183183
printk(fmt, ##__VA_ARGS__); \
184184
} while (0)
185185

186-
#define NV_UVM_GFP_FLAGS (GFP_KERNEL)
186+
#define NV_UVM_GFP_FLAGS (GFP_KERNEL | __GFP_NOMEMALLOC)
187187

188188
#if defined(NVCPU_X86)
189189
/* Some old IA32 kernels don't have 64/64 division routines,

kernel-open/nvidia-uvm/uvm_va_block.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1569,7 +1569,7 @@ static NV_STATUS block_alloc_cpu_chunk(uvm_va_block_t *block,
15691569
if (status == NV_OK)
15701570
break;
15711571

1572-
if (flags & UVM_CPU_CHUNK_ALLOC_FLAGS_STRICT) {
1572+
if ((flags & UVM_CPU_CHUNK_ALLOC_FLAGS_STRICT) && (num_possible_nodes() > 1)) {
15731573
flags &= ~UVM_CPU_CHUNK_ALLOC_FLAGS_STRICT;
15741574
numa_fallback = true;
15751575
status = uvm_cpu_chunk_alloc(alloc_size, flags, NUMA_NO_NODE, chunk);

kernel-open/nvidia/nv-vm.c

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,6 @@ NV_STATUS nv_alloc_contig_pages(
431431

432432
page_ptr = at->page_table[i];
433433
page_ptr->phys_addr = phys_addr;
434-
page_ptr->page_count = NV_GET_PAGE_COUNT(page_ptr);
435434
page_ptr->virt_addr = virt_addr;
436435
page_ptr->dma_addr = nv_phys_to_dma(dev, page_ptr->phys_addr);
437436

@@ -486,17 +485,6 @@ void nv_free_contig_pages(
486485
{
487486
page_ptr = at->page_table[i];
488487

489-
if (NV_GET_PAGE_COUNT(page_ptr) != page_ptr->page_count)
490-
{
491-
static int count = 0;
492-
if (count++ < NV_MAX_RECURRING_WARNING_MESSAGES)
493-
{
494-
nv_printf(NV_DBG_ERRORS,
495-
"NVRM: VM: %s: page count != initial page count (%u,%u)\n",
496-
__FUNCTION__, NV_GET_PAGE_COUNT(page_ptr),
497-
page_ptr->page_count);
498-
}
499-
}
500488
NV_MAYBE_UNRESERVE_PAGE(page_ptr);
501489
}
502490

@@ -600,7 +588,6 @@ NV_STATUS nv_alloc_system_pages(
600588

601589
page_ptr = at->page_table[(i * os_pages_in_page) + sub_page_idx];
602590
page_ptr->phys_addr = phys_addr;
603-
page_ptr->page_count = NV_GET_PAGE_COUNT(page_ptr);
604591
page_ptr->virt_addr = sub_page_virt_addr;
605592

606593
//
@@ -667,18 +654,6 @@ void nv_free_system_pages(
667654
{
668655
page_ptr = at->page_table[i];
669656

670-
if (NV_GET_PAGE_COUNT(page_ptr) != page_ptr->page_count)
671-
{
672-
static int count = 0;
673-
if (count++ < NV_MAX_RECURRING_WARNING_MESSAGES)
674-
{
675-
nv_printf(NV_DBG_ERRORS,
676-
"NVRM: VM: %s: page count != initial page count (%u,%u)\n",
677-
__FUNCTION__, NV_GET_PAGE_COUNT(page_ptr),
678-
page_ptr->page_count);
679-
}
680-
}
681-
682657
NV_MAYBE_UNRESERVE_PAGE(page_ptr);
683658
}
684659

src/common/inc/nvBldVer.h

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

4545
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
46-
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r570/r572_77-376"
47-
#define NV_BUILD_CHANGELIST_NUM (35688848)
46+
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r570/r572_77-389"
47+
#define NV_BUILD_CHANGELIST_NUM (35826456)
4848
#define NV_BUILD_TYPE "Official"
49-
#define NV_BUILD_NAME "rel/gpu_drv/r570/r572_77-376"
50-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35688848)
49+
#define NV_BUILD_NAME "rel/gpu_drv/r570/r572_77-389"
50+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35826456)
5151

5252
#else /* Windows builds */
53-
#define NV_BUILD_BRANCH_VERSION "r572_77-2"
54-
#define NV_BUILD_CHANGELIST_NUM (35681611)
53+
#define NV_BUILD_BRANCH_VERSION "r572_77-4"
54+
#define NV_BUILD_CHANGELIST_NUM (35784913)
5555
#define NV_BUILD_TYPE "Official"
56-
#define NV_BUILD_NAME "572.80"
57-
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35681611)
56+
#define NV_BUILD_NAME "572.95"
57+
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35784913)
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.133.07"
7+
#define NV_VERSION_STRING "570.133.20"
88

99
#else
1010

src/nvidia/generated/g_chipset_nvoc.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ struct PCIECONFIGSPACEBASE
157157
#define CL_AER_ERROR_SOURCE (CL_AER_BEGIN + 0x34)
158158
#define CL_AER_END (CL_AER_BEGIN + 0x34)
159159

160+
// Advanced Error Reporting Root Error Status ERR_COR Subclass Capable Mask
161+
#define CL_AER_ROOT_ERROR_STATUS_ERR_COR_SUBCLASS_MASK (NVBIT32(7) | NVBIT32(8))
162+
160163
// PCI Express Device Capabilities 2
161164
#define CL_PCIE_DEV_CAP_2_ATOMICS_SUPPORTED_BIT NVBIT(6)
162165
#define CL_PCIE_DEV_CAP_2_ATOMIC_32BIT NVBIT(7)

src/nvidia/generated/g_gpu_acct_nvoc.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ extern "C" {
4949
#include "ctrl/ctrl0000/ctrl0000gpuacct.h"
5050
#include "ctrl/ctrl0000/ctrl0000gpu.h" // NV0000_CTRL_GPU_MAX_ATTACHED_GPUS
5151
#include "ctrl/ctrl2080/ctrl2080perf.h" // NV2080_CTRL_PERF_GET_GPUMON_PERFMON_UTIL_SAMPLES_V2_PARAMS
52-
#include "rmapi/client.h"
5352

5453
typedef struct TMR_EVENT TMR_EVENT;
5554

@@ -75,7 +74,6 @@ typedef struct
7574
{
7675
NvU32 procId; // Pid of the process.
7776
NvU32 procType; // Type of the process.
78-
struct RmClient *pClient; // Process' RmClient.
7977
NvU32 gpuUtil; // Process's average GR engine utilization.
8078
NvU64 sumUtil; // Running sum of process's GR engine utilization.
8179
NvU32 fbUtil; // Process's average FB bandwidth utilization.
@@ -242,15 +240,15 @@ static inline NV_STATUS gpuacctClearAccountingData(struct GpuAccounting *arg1, N
242240
#define gpuacctClearAccountingData(arg1, arg2, arg3) gpuacctClearAccountingData_IMPL(arg1, arg2, arg3)
243241
#endif //__nvoc_gpu_acct_h_disabled
244242

245-
NV_STATUS gpuacctStartGpuAccounting_IMPL(struct GpuAccounting *arg1, NvU32 arg2, NvU32 arg3, NvU32 arg4, struct RmClient *arg5);
243+
NV_STATUS gpuacctStartGpuAccounting_IMPL(struct GpuAccounting *arg1, NvU32 arg2, NvU32 arg3, NvU32 arg4);
246244

247245
#ifdef __nvoc_gpu_acct_h_disabled
248-
static inline NV_STATUS gpuacctStartGpuAccounting(struct GpuAccounting *arg1, NvU32 arg2, NvU32 arg3, NvU32 arg4, struct RmClient *arg5) {
246+
static inline NV_STATUS gpuacctStartGpuAccounting(struct GpuAccounting *arg1, NvU32 arg2, NvU32 arg3, NvU32 arg4) {
249247
NV_ASSERT_FAILED_PRECOMP("GpuAccounting was disabled!");
250248
return NV_ERR_NOT_SUPPORTED;
251249
}
252250
#else //__nvoc_gpu_acct_h_disabled
253-
#define gpuacctStartGpuAccounting(arg1, arg2, arg3, arg4, arg5) gpuacctStartGpuAccounting_IMPL(arg1, arg2, arg3, arg4, arg5)
251+
#define gpuacctStartGpuAccounting(arg1, arg2, arg3, arg4) gpuacctStartGpuAccounting_IMPL(arg1, arg2, arg3, arg4)
254252
#endif //__nvoc_gpu_acct_h_disabled
255253

256254
NV_STATUS gpuacctStopGpuAccounting_IMPL(struct GpuAccounting *arg1, NvU32 arg2, NvU32 arg3, NvU32 arg4);

src/nvidia/generated/g_nv_name_released.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5409,11 +5409,11 @@ static const CHIPS_RELEASED sChipsReleased[] = {
54095409
{ 0x2901, 0x1999, 0x10de, "NVIDIA B200" },
54105410
{ 0x2901, 0x199b, 0x10de, "NVIDIA B200" },
54115411
{ 0x2901, 0x20da, 0x10de, "NVIDIA B200" },
5412-
{ 0x2941, 0x2046, 0x10de, "NVIDIA HGX GB200" },
5413-
{ 0x2941, 0x20ca, 0x10de, "NVIDIA HGX GB200" },
5414-
{ 0x2941, 0x20d5, 0x10de, "NVIDIA HGX GB200" },
5415-
{ 0x2941, 0x21c9, 0x10de, "NVIDIA HGX GB200" },
5416-
{ 0x2941, 0x21ca, 0x10de, "NVIDIA HGX GB200" },
5412+
{ 0x2941, 0x2046, 0x10de, "NVIDIA GB200" },
5413+
{ 0x2941, 0x20ca, 0x10de, "NVIDIA GB200" },
5414+
{ 0x2941, 0x20d5, 0x10de, "NVIDIA GB200" },
5415+
{ 0x2941, 0x21c9, 0x10de, "NVIDIA GB200" },
5416+
{ 0x2941, 0x21ca, 0x10de, "NVIDIA GB200" },
54175417
{ 0x2B85, 0x0000, 0x0000, "NVIDIA GeForce RTX 5090" },
54185418
{ 0x2B87, 0x0000, 0x0000, "NVIDIA GeForce RTX 5090 D" },
54195419
{ 0x2BB1, 0x204b, 0x1028, "NVIDIA RTX PRO 6000 Blackwell Workstation Edition" },

src/nvidia/src/kernel/diagnostics/gpu_acct.c

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static NvU64 gpuacctGetCurrTime(void);
3838
static NV_STATUS gpuacctAddProcEntry(GPU_ACCT_PROC_DATA_STORE *, GPUACCT_PROC_ENTRY *, NvBool);
3939
static NV_STATUS gpuacctRemoveProcEntry(GPU_ACCT_PROC_DATA_STORE *, GPUACCT_PROC_ENTRY *);
4040
static NV_STATUS gpuacctLookupProcEntry(GPU_ACCT_PROC_DATA_STORE *, NvU32, GPUACCT_PROC_ENTRY **);
41-
static NV_STATUS gpuacctAllocProcEntry(GPU_ACCT_PROC_DATA_STORE *, NvU32, NvU32, RmClient *, GPUACCT_PROC_ENTRY **);
41+
static NV_STATUS gpuacctAllocProcEntry(GPU_ACCT_PROC_DATA_STORE *, NvU32, NvU32, GPUACCT_PROC_ENTRY **);
4242
static NV_STATUS gpuacctFreeProcEntry(GPU_ACCT_PROC_DATA_STORE *, GPUACCT_PROC_ENTRY *);
4343
static NV_STATUS gpuacctCleanupDataStore(GPU_ACCT_PROC_DATA_STORE *);
4444
static NV_STATUS gpuacctDestroyDataStore(GPU_ACCT_PROC_DATA_STORE *);
@@ -218,7 +218,6 @@ void gpuacctDestruct_IMPL
218218
* @param[in] pDS Pointer to data store where process entry is to be added.
219219
* @param[in] pid PID of the process.
220220
* @param[in] procType Type of the process.
221-
* @param[in] pClient Process RmClient
222221
* @param[out] ppEntry Pointer to process entry.
223222
*
224223
* @return NV_OK
@@ -233,7 +232,6 @@ gpuacctAllocProcEntry
233232
GPU_ACCT_PROC_DATA_STORE *pDS,
234233
NvU32 pid,
235234
NvU32 procType,
236-
RmClient *pClient,
237235
GPUACCT_PROC_ENTRY **ppEntry
238236
)
239237
{
@@ -252,7 +250,6 @@ gpuacctAllocProcEntry
252250

253251
pEntry->procId = pid;
254252
pEntry->procType = procType;
255-
pEntry->pClient = pClient;
256253

257254
status = gpuacctAddProcEntry(pDS, pEntry, NV_TRUE);
258255
if (status != NV_OK)
@@ -653,8 +650,7 @@ gpuacctStartGpuAccounting_IMPL
653650
GpuAccounting *pGpuAcct,
654651
NvU32 gpuInstance,
655652
NvU32 pid,
656-
NvU32 subPid,
657-
RmClient *pClient
653+
NvU32 subPid
658654
)
659655
{
660656
OBJGPU *pGpu;
@@ -713,7 +709,7 @@ gpuacctStartGpuAccounting_IMPL
713709

714710
// Create entry for the incoming pid.
715711
status = gpuacctAllocProcEntry(pDS, searchPid,
716-
NV_GPUACCT_PROC_TYPE_CPU, pClient, &pEntry);
712+
NV_GPUACCT_PROC_TYPE_CPU, &pEntry);
717713
NV_ASSERT_OR_RETURN(status == NV_OK, status);
718714
NV_ASSERT_OR_RETURN(pEntry != NULL, NV_ERR_NO_MEMORY);
719715

@@ -866,7 +862,6 @@ gpuacctStopGpuAccounting_IMPL
866862
}
867863

868864
// Move the entry to dead procs data store
869-
pEntry->pClient = NULL;
870865
status = gpuacctRemoveProcEntry(pLiveDS, pEntry);
871866
if (status != NV_OK)
872867
{
@@ -1201,25 +1196,6 @@ gpuacctGetProcAcctInfo_IMPL
12011196
return NV_OK;
12021197
}
12031198

1204-
static NV_STATUS _gpuAcctGetPidValue(GPUACCT_PROC_ENTRY *pEntry, NvU32 vmIndex, NvU32 *nsPid)
1205-
{
1206-
if ((vmIndex != NV_INVALID_VM_INDEX) ||
1207-
(pEntry->pClient == NULL) ||
1208-
(pEntry->pClient->pOsPidInfo == NULL))
1209-
{
1210-
*nsPid = pEntry->procId;
1211-
}
1212-
else
1213-
{
1214-
if (osFindNsPid(pEntry->pClient->pOsPidInfo, nsPid) != NV_OK)
1215-
{
1216-
return NV_ERR_OBJECT_NOT_FOUND;
1217-
}
1218-
}
1219-
1220-
return NV_OK;
1221-
}
1222-
12231199
/*!
12241200
* Gets all the pids for which accounting data is available.
12251201
*
@@ -1239,7 +1215,6 @@ gpuacctGetAcctPids_IMPL
12391215
{
12401216
GPUACCT_PROC_ENTRY *pEntry;
12411217
GPU_ACCT_PROC_LIST *pList;
1242-
NV_STATUS status;
12431218
OBJGPU *pGpu;
12441219
NvU32 count;
12451220
NvU32 vmPid;
@@ -1292,7 +1267,7 @@ gpuacctGetAcctPids_IMPL
12921267

12931268
if (vmIndex == NV_INVALID_VM_INDEX)
12941269
{
1295-
// Skip dead info if the request is for baremetal and from container.
1270+
// Skip dead info if the requester is not from root namespace.
12961271
if (osIsInitNs() != NV_TRUE)
12971272
{
12981273
goto addLiveProc;
@@ -1333,11 +1308,7 @@ gpuacctGetAcctPids_IMPL
13331308
pEntry = iter.pValue;
13341309
if (pEntry && pEntry->procType == NV_GPUACCT_PROC_TYPE_GPU)
13351310
{
1336-
status = _gpuAcctGetPidValue(pEntry, vmIndex, &pParams->pidTbl[count]);
1337-
if (status == NV_OK)
1338-
{
1339-
count++;
1340-
}
1311+
pParams->pidTbl[count++] = pEntry->procId;
13411312
}
13421313
}
13431314

src/nvidia/src/kernel/gpu/device.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ _deviceInit
431431
// If gpuacctStartGpuAccounting() fails, just assert and print error.
432432
// gpuacctStartGpuAccounting() is not a major failure, we will continue with deviceInit() as normal.
433433
if ((pRsClient->type == CLIENT_TYPE_USER) && (gpuacctStartGpuAccounting(pGpuAcct,
434-
pGpu->gpuInstance, pClient->ProcID, pClient->SubProcessID, pClient) != NV_OK))
434+
pGpu->gpuInstance, pClient->ProcID, pClient->SubProcessID) != NV_OK))
435435
{
436436
NV_ASSERT(0);
437437
NV_PRINTF(LEVEL_ERROR,

0 commit comments

Comments
 (0)