Skip to content

Commit c273d84

Browse files
committed
580.94.16
1 parent a3af286 commit c273d84

File tree

68 files changed

+160874
-160170
lines changed

Some content is hidden

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

68 files changed

+160874
-160170
lines changed

README.md

Lines changed: 5 additions & 19 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 580.94.13.
4+
version 580.94.16.
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-
580.94.13 driver release. This can be achieved by installing
20+
580.94.16 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/580.94.13/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/580.94.16/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.
@@ -749,7 +749,6 @@ Subsystem Device ID.
749749
| NVIDIA A10 | 2236 10DE 1482 |
750750
| NVIDIA A10G | 2237 10DE 152F |
751751
| NVIDIA A10M | 2238 10DE 1677 |
752-
| NVIDIA H20 NVL16 | 230E 10DE 20DF |
753752
| NVIDIA H100 NVL | 2321 10DE 1839 |
754753
| NVIDIA H800 PCIe | 2322 10DE 17A4 |
755754
| NVIDIA H800 | 2324 10DE 17A6 |
@@ -950,28 +949,21 @@ Subsystem Device ID.
950949
| NVIDIA GB200 | 2941 10DE 20D5 |
951950
| NVIDIA GB200 | 2941 10DE 21C9 |
952951
| NVIDIA GB200 | 2941 10DE 21CA |
953-
| NVIDIA DRIVE P2021 | 29BB 10DE 207C |
954952
| NVIDIA GeForce RTX 5090 | 2B85 |
955953
| NVIDIA GeForce RTX 5090 D | 2B87 |
956-
| NVIDIA GeForce RTX 5090 D v2 | 2B8C |
954+
| NVIDIA GeForce RTX 5090 D v2 | 2B8C 17AA 530C |
957955
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 1028 204B |
958956
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 103C 204B |
959957
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 10DE 204B |
960958
| NVIDIA RTX PRO 6000 Blackwell Workstation Edition | 2BB1 17AA 204B |
961959
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 1028 204D |
962-
| NVIDIA RTX PRO 5000 72GB Blackwell | 2BB3 1028 227A |
963960
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 103C 204D |
964-
| NVIDIA RTX PRO 5000 72GB Blackwell | 2BB3 103C 227A |
965961
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 10DE 204D |
966-
| NVIDIA RTX PRO 5000 72GB Blackwell | 2BB3 10DE 227A |
967962
| NVIDIA RTX PRO 5000 Blackwell | 2BB3 17AA 204D |
968-
| NVIDIA RTX PRO 5000 72GB Blackwell | 2BB3 17AA 227A |
969963
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 1028 204C |
970964
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 103C 204C |
971965
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 10DE 204C |
972966
| NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition | 2BB4 17AA 204C |
973-
| NVIDIA RTX PRO 6000 Blackwell Server Edition | 2BB5 10DE 204E |
974-
| NVIDIA RTX 6000D | 2BB9 10DE 2091 |
975967
| NVIDIA GeForce RTX 5080 | 2C02 |
976968
| NVIDIA GeForce RTX 5070 Ti | 2C05 |
977969
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C18 |
@@ -982,7 +974,6 @@ Subsystem Device ID.
982974
| NVIDIA RTX PRO 4500 Blackwell | 2C31 17AA 2051 |
983975
| NVIDIA RTX PRO 4000 Blackwell SFF Edition | 2C33 1028 2053 |
984976
| NVIDIA RTX PRO 4000 Blackwell SFF Edition | 2C33 103C 2053 |
985-
| NVIDIA RTX PRO 4000 Blackwell SFF Edition | 2C33 10DE 2053 |
986977
| NVIDIA RTX PRO 4000 Blackwell SFF Edition | 2C33 17AA 2053 |
987978
| NVIDIA RTX PRO 4000 Blackwell | 2C34 1028 2052 |
988979
| NVIDIA RTX PRO 4000 Blackwell | 2C34 103C 2052 |
@@ -992,30 +983,25 @@ Subsystem Device ID.
992983
| NVIDIA RTX PRO 4000 Blackwell Generation Laptop GPU | 2C39 |
993984
| NVIDIA GeForce RTX 5090 Laptop GPU | 2C58 |
994985
| NVIDIA GeForce RTX 5080 Laptop GPU | 2C59 |
995-
| NVIDIA RTX PRO 5000 Blackwell Embedded GPU | 2C77 |
996986
| NVIDIA RTX PRO 4000 Blackwell Embedded GPU | 2C79 |
997987
| NVIDIA GeForce RTX 5060 Ti | 2D04 |
998988
| NVIDIA GeForce RTX 5060 | 2D05 |
999989
| NVIDIA GeForce RTX 5070 Laptop GPU | 2D18 |
1000990
| NVIDIA GeForce RTX 5060 Laptop GPU | 2D19 |
1001991
| NVIDIA RTX PRO 2000 Blackwell | 2D30 1028 2054 |
1002992
| NVIDIA RTX PRO 2000 Blackwell | 2D30 103C 2054 |
1003-
| NVIDIA RTX PRO 2000 Blackwell | 2D30 10DE 2054 |
1004993
| NVIDIA RTX PRO 2000 Blackwell | 2D30 17AA 2054 |
1005994
| NVIDIA RTX PRO 2000 Blackwell Generation Laptop GPU | 2D39 |
1006995
| NVIDIA GeForce RTX 5070 Laptop GPU | 2D58 |
1007996
| NVIDIA GeForce RTX 5060 Laptop GPU | 2D59 |
1008997
| NVIDIA RTX PRO 2000 Blackwell Embedded GPU | 2D79 |
1009-
| NVIDIA GeForce RTX 5050 | 2D83 |
998+
| NVIDIA GeForce RTX 5050 | 2D83 17AA C791 |
1010999
| NVIDIA GeForce RTX 5050 Laptop GPU | 2D98 |
10111000
| NVIDIA RTX PRO 1000 Blackwell Generation Laptop GPU | 2DB8 |
10121001
| NVIDIA RTX PRO 500 Blackwell Generation Laptop GPU | 2DB9 |
10131002
| NVIDIA GeForce RTX 5050 Laptop GPU | 2DD8 |
10141003
| NVIDIA RTX PRO 500 Blackwell Embedded GPU | 2DF9 |
1015-
| NVIDIA GB10 | 2E12 10DE 21EC |
10161004
| NVIDIA GeForce RTX 5070 | 2F04 |
10171005
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F18 |
10181006
| NVIDIA RTX PRO 3000 Blackwell Generation Laptop GPU | 2F38 |
10191007
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F58 |
1020-
| NVIDIA B300 SXM6 AC | 3182 10DE 20E6 |
1021-
| NVIDIA GB300 | 31C2 10DE 21F1 |

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=\"580.94.13\"
82+
ccflags-y += -DNV_VERSION_STRING=\"580.94.16\"
8383

8484
# Include and link Tegra out-of-tree modules.
8585
ifneq ($(wildcard /usr/src/nvidia/nvidia-oot),)

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -693,9 +693,9 @@ static inline dma_addr_t nv_phys_to_dma(struct device *dev, NvU64 pa)
693693
#define NV_PRINT_AT(nv_debug_level,at) \
694694
{ \
695695
nv_printf(nv_debug_level, \
696-
"NVRM: VM: %s:%d: 0x%p, %d page(s), count = %d, " \
696+
"NVRM: VM: %s:%d: 0x%p, %d page(s), count = %lld, " \
697697
"page_table = 0x%p\n", __FUNCTION__, __LINE__, at, \
698-
at->num_pages, NV_ATOMIC_READ(at->usage_count), \
698+
at->num_pages, (long long)atomic64_read(&at->usage_count), \
699699
at->page_table); \
700700
}
701701

@@ -970,7 +970,7 @@ struct nv_dma_buf
970970
typedef struct nv_alloc_s {
971971
struct nv_alloc_s *next;
972972
struct device *dev;
973-
atomic_t usage_count;
973+
atomic64_t usage_count;
974974
struct {
975975
NvBool contig : 1;
976976
NvBool guest : 1;
@@ -1258,6 +1258,10 @@ typedef struct coherent_link_info_s {
12581258
* of virutalized OS environment it is Intermediate Physical Address(IPA) */
12591259
NvU64 gpu_mem_pa;
12601260

1261+
/* Size of the GPU memory mappable through coherent link. It is possible
1262+
that less than whole FB is mapped to CPU. */
1263+
NvU64 gpu_mem_size;
1264+
12611265
/* Physical address of the reserved portion of the GPU memory, applicable
12621266
* only in Grace Hopper self hosted passthrough virtualizatioan platform. */
12631267
NvU64 rsvd_mem_pa;
@@ -1294,7 +1298,7 @@ struct nv_pci_tegra_devfreq_dev;
12941298
typedef struct nv_linux_state_s {
12951299
nv_state_t nv_state;
12961300

1297-
atomic_t usage_count;
1301+
atomic64_t usage_count;
12981302

12991303
NvU32 suspend_count;
13001304

@@ -1670,9 +1674,9 @@ static inline NvBool nv_alloc_release(nv_linux_file_private_t *nvlfp, nv_alloc_t
16701674
{
16711675
NV_PRINT_AT(NV_DBG_MEMINFO, at);
16721676

1673-
if (NV_ATOMIC_DEC_AND_TEST(at->usage_count))
1677+
if (atomic64_dec_and_test(&at->usage_count))
16741678
{
1675-
NV_ATOMIC_INC(at->usage_count);
1679+
atomic64_inc(&at->usage_count);
16761680

16771681
at->next = nvlfp->free_list;
16781682
nvlfp->free_list = at;

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

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -196,14 +196,33 @@ static inline struct rw_semaphore *nv_mmap_get_lock(struct mm_struct *mm)
196196
* Commit 45ad9f5290dc updated vma_start_write() to call __vma_start_write().
197197
*/
198198
void nv_vma_start_write(struct vm_area_struct *);
199+
200+
static inline void nv_vma_flags_set_word(struct vm_area_struct *vma, unsigned long flags)
201+
{
202+
nv_vma_start_write(vma);
203+
#if defined(NV_VMA_FLAGS_SET_WORD_PRESENT)
204+
vma_flags_set_word(&vma->flags, flags);
205+
#else
206+
ACCESS_PRIVATE(vma, __vm_flags) |= flags;
199207
#endif
208+
}
209+
210+
static inline void nv_vma_flags_clear_word(struct vm_area_struct *vma, unsigned long flags)
211+
{
212+
nv_vma_start_write(vma);
213+
#if defined(NV_VMA_FLAGS_SET_WORD_PRESENT)
214+
vma_flags_clear_word(&vma->flags, flags);
215+
#else
216+
ACCESS_PRIVATE(vma, __vm_flags) &= ~flags;
217+
#endif
218+
}
219+
#endif // !NV_CAN_CALL_VMA_START_WRITE
200220

201221
static inline void nv_vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
202222
{
203223
#if !NV_CAN_CALL_VMA_START_WRITE
204-
nv_vma_start_write(vma);
205-
ACCESS_PRIVATE(vma, __vm_flags) |= flags;
206-
#elif defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS)
224+
nv_vma_flags_set_word(vma, flags);
225+
#elif defined(NV_VM_FLAGS_SET_PRESENT)
207226
vm_flags_set(vma, flags);
208227
#else
209228
vma->vm_flags |= flags;
@@ -213,9 +232,8 @@ static inline void nv_vm_flags_set(struct vm_area_struct *vma, vm_flags_t flags)
213232
static inline void nv_vm_flags_clear(struct vm_area_struct *vma, vm_flags_t flags)
214233
{
215234
#if !NV_CAN_CALL_VMA_START_WRITE
216-
nv_vma_start_write(vma);
217-
ACCESS_PRIVATE(vma, __vm_flags) &= ~flags;
218-
#elif defined(NV_VM_AREA_STRUCT_HAS_CONST_VM_FLAGS)
235+
nv_vma_flags_clear_word(vma, flags);
236+
#elif defined(NV_VM_FLAGS_SET_PRESENT)
219237
vm_flags_clear(vma, flags);
220238
#else
221239
vma->vm_flags &= ~flags;

kernel-open/common/inc/nv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -959,7 +959,7 @@ void NV_API_CALL nv_put_firmware(const void *);
959959
nv_file_private_t* NV_API_CALL nv_get_file_private(NvS32, NvBool, void **);
960960
void NV_API_CALL nv_put_file_private(void *);
961961

962-
NV_STATUS NV_API_CALL nv_get_device_memory_config(nv_state_t *, NvU64 *, NvU64 *, NvU64 *, NvU32 *, NvS32 *);
962+
NV_STATUS NV_API_CALL nv_get_device_memory_config(nv_state_t *, NvU64 *, NvU64 *, NvU64 *, NvU64 *, NvU32 *, NvS32 *);
963963
NV_STATUS NV_API_CALL nv_get_egm_info(nv_state_t *, NvU64 *, NvU64 *, NvS32 *);
964964

965965
void NV_API_CALL nv_p2p_free_platform_data(void *data);

0 commit comments

Comments
 (0)