diff --git a/CHANGELOG.md b/CHANGELOG.md index b82e19d4a..bde7e9bab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Release 555 Entries +### [555.58] 2024-06-27 + ### [555.52.04] 2024-06-05 ### [555.42.02] 2024-05-21 diff --git a/README.md b/README.md index 86334f2d5..4a4ef191c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # NVIDIA Linux Open GPU Kernel Module Source This is the source release of the NVIDIA Linux open GPU kernel modules, -version 555.52.04. +version 555.58. ## How to Build @@ -17,7 +17,7 @@ as root: Note that the kernel modules built here must be used with GSP firmware and user-space NVIDIA GPU driver components from a corresponding -555.52.04 driver release. This can be achieved by installing +555.58 driver release. This can be achieved by installing the NVIDIA GPU driver from the .run file using the `--no-kernel-modules` option. E.g., @@ -188,7 +188,7 @@ encountered specific to them. For details on feature support and limitations, see the NVIDIA GPU driver end user README here: -https://us.download.nvidia.com/XFree86/Linux-x86_64/555.52.04/README/kernel_open.html +https://us.download.nvidia.com/XFree86/Linux-x86_64/555.58/README/kernel_open.html For vGPU support, please refer to the README.vgpu packaged in the vGPU Host Package for more details. diff --git a/kernel-open/Kbuild b/kernel-open/Kbuild index a4c34d2ff..a23005ebf 100644 --- a/kernel-open/Kbuild +++ b/kernel-open/Kbuild @@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc EXTRA_CFLAGS += -I$(src) EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM -EXTRA_CFLAGS += -DNV_VERSION_STRING=\"555.52.04\" +EXTRA_CFLAGS += -DNV_VERSION_STRING=\"555.58\" ifneq ($(SYSSRCHOST1X),) EXTRA_CFLAGS += -I$(SYSSRCHOST1X) diff --git a/src/common/inc/nvBldVer.h b/src/common/inc/nvBldVer.h index a8827af29..85268e8a2 100644 --- a/src/common/inc/nvBldVer.h +++ b/src/common/inc/nvBldVer.h @@ -36,25 +36,25 @@ // and then checked back in. You cannot make changes to these sections without // corresponding changes to the buildmeister script #ifndef NV_BUILD_BRANCH - #define NV_BUILD_BRANCH r555_97 + #define NV_BUILD_BRANCH r555_00 #endif #ifndef NV_PUBLIC_BRANCH - #define NV_PUBLIC_BRANCH r555_97 + #define NV_PUBLIC_BRANCH r555_00 #endif #if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) -#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r555/r555_97-144" -#define NV_BUILD_CHANGELIST_NUM (34376233) +#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r555/r555_00-164" +#define NV_BUILD_CHANGELIST_NUM (34441657) #define NV_BUILD_TYPE "Official" -#define NV_BUILD_NAME "rel/gpu_drv/r555/r555_97-144" -#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34376233) +#define NV_BUILD_NAME "rel/gpu_drv/r555/r555_00-164" +#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34441657) #else /* Windows builds */ -#define NV_BUILD_BRANCH_VERSION "r555_97-2" -#define NV_BUILD_CHANGELIST_NUM (34367477) +#define NV_BUILD_BRANCH_VERSION "r555_00-166" +#define NV_BUILD_CHANGELIST_NUM (34441657) #define NV_BUILD_TYPE "Official" -#define NV_BUILD_NAME "555.99" -#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34367477) +#define NV_BUILD_NAME "556.09" +#define NV_LAST_OFFICIAL_CHANGELIST_NUM (34441657) #define NV_BUILD_BRANCH_BASE_VERSION R555 #endif // End buildmeister python edited section diff --git a/src/common/inc/nvUnixVersion.h b/src/common/inc/nvUnixVersion.h index 091b1b2ed..4dab18aa8 100644 --- a/src/common/inc/nvUnixVersion.h +++ b/src/common/inc/nvUnixVersion.h @@ -4,7 +4,7 @@ #if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \ (defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1) -#define NV_VERSION_STRING "555.52.04" +#define NV_VERSION_STRING "555.58" #else diff --git a/src/nvidia/src/kernel/core/locks.c b/src/nvidia/src/kernel/core/locks.c index 7d341e5f3..c3b9e720c 100644 --- a/src/nvidia/src/kernel/core/locks.c +++ b/src/nvidia/src/kernel/core/locks.c @@ -628,7 +628,7 @@ rmGpuLockFree(NvU32 gpuInst) // Disable GPUs Interrupts thus blocking the ISR from // entering. // -static void _gpuLocksAcquireDisableInterrupts(NvU32 gpuInst, NvBool bInIsr) +static void _gpuLocksAcquireDisableInterrupts(NvU32 gpuInst, NvU32 flags) { OBJGPU *pGpu = gpumgrGetGpu(gpuInst); @@ -653,6 +653,7 @@ static void _gpuLocksAcquireDisableInterrupts(NvU32 gpuInst, NvBool bInIsr) if (osLockShouldToggleInterrupts(pGpu)) { Intr *pIntr = GPU_GET_INTR(pGpu); + NvBool isIsr = !!(flags & GPU_LOCK_FLAGS_COND_ACQUIRE); NvBool bBcEnabled = gpumgrGetBcEnabledStatus(pGpu); // Always disable intrs for cond code @@ -666,10 +667,10 @@ static void _gpuLocksAcquireDisableInterrupts(NvU32 gpuInst, NvBool bInIsr) tmrRmCallbackIntrDisable(pTmr, pGpu); } - osDisableInterrupts(pGpu, bInIsr); + osDisableInterrupts(pGpu, isIsr); if ((pIntr != NULL) && pIntr->getProperty(pIntr, PDB_PROP_INTR_USE_INTR_MASK_FOR_LOCKING) && - (bInIsr == NV_FALSE) ) + (isIsr == NV_FALSE) ) { NvU64 oldIrql; NvU32 intrMaskFlags; @@ -714,7 +715,7 @@ _rmGpuLocksAcquire(NvU32 gpuMask, NvU32 flags, NvU32 module, void *ra, NvU32 *pG NvU32 gpuMaskLocked = 0; GPULOCK *pAllocLock = &rmGpuLockInfo.gpuAllocLock; GPULOCK *pGpuLock; - NvBool bHighIrql, bInIsr, bCondAcquireCheck; + NvBool bHighIrql, bCondAcquireCheck; NvU32 maxLockableGpuInst; NvU64 threadId = portThreadGetCurrentThreadId(); NvU64 priority = 0; @@ -726,7 +727,6 @@ _rmGpuLocksAcquire(NvU32 gpuMask, NvU32 flags, NvU32 module, void *ra, NvU32 *pG NvU32 loopCount; bHighIrql = (portSyncExSafeToSleep() == NV_FALSE); - bInIsr = portUtilIsInterruptContext(); bCondAcquireCheck = ((flags & GPU_LOCK_FLAGS_COND_ACQUIRE) != 0); if (pGpuLockedMask) @@ -1065,7 +1065,7 @@ per_gpu_lock_acquired: if (gpuInst != GPU_INST_ALLOC_LOCK) { // now disable interrupts - _gpuLocksAcquireDisableInterrupts(gpuInst, bInIsr); + _gpuLocksAcquireDisableInterrupts(gpuInst, flags); // mark this one as locked gpuMaskLocked |= NVBIT(gpuInst); diff --git a/src/nvidia/src/kernel/gpu/gsp/kernel_gsp.c b/src/nvidia/src/kernel/gpu/gsp/kernel_gsp.c index ac9c236ca..59ee117a1 100644 --- a/src/nvidia/src/kernel/gpu/gsp/kernel_gsp.c +++ b/src/nvidia/src/kernel/gpu/gsp/kernel_gsp.c @@ -325,13 +325,17 @@ _kgspCompleteRpcHistoryEntry NvU32 historyIndex; NvU32 historyEntry; + // Complete the current entry (it should be active) + // TODO: assert that ts_end == 0 here when continuation record timestamps are fixed + NV_ASSERT_OR_RETURN_VOID(pHistory[current].ts_start != 0); + pHistory[current].ts_end = osGetTimestamp(); // // Complete any previous entries that aren't marked complete yet, using the same timestamp // (we may not have explicitly waited for them) // - for (historyIndex = 0; historyIndex < RPC_HISTORY_DEPTH; historyIndex++) + for (historyIndex = 1; historyIndex < RPC_HISTORY_DEPTH; historyIndex++) { historyEntry = (current + RPC_HISTORY_DEPTH - historyIndex) % RPC_HISTORY_DEPTH; if (pHistory[historyEntry].ts_start != 0 && @@ -1669,13 +1673,13 @@ _tsDiffToDuration { duration /= 1000; *pDurationUnitsChar = 'm'; - } - // 9999ms then 10s - if (duration >= 10000) - { - duration /= 1000; - *pDurationUnitsChar = ' '; // so caller can always just append 's' + // 9999ms then 10s + if (duration >= 10000) + { + duration /= 1000; + *pDurationUnitsChar = ' '; // so caller can always just append 's' + } } return duration; diff --git a/version.mk b/version.mk index 219133394..77d63001f 100644 --- a/version.mk +++ b/version.mk @@ -1,4 +1,4 @@ -NVIDIA_VERSION = 555.52.04 +NVIDIA_VERSION = 555.58 # This file. VERSION_MK_FILE := $(lastword $(MAKEFILE_LIST))