Kernel – 5.16-rc1 Released. OK with Patched VMware 16.2.1, and NVIDIA 470.86
Kernel 5.16-rc1 is out, and brief details are here: http://lkml.iu.edu/hypermail/linux/kernel/2111.1/06814.html
The patched version of VMware 16.2.1 is OK, but NVIDIA 495.44 compile fails:
..............
/home/rgadsdon/NVIDIA-Linux-x86_64-495.44/kernel/nvidia-uvm/uvm_migrate_pageable.c:409:55: error: ‘MIGRATE_PFN_LOCKED’ undeclared (first use in this function); did you mean ‘MIGRATE_PFN_VALID’?
409 | dst[i] = migrate_pfn(page_to_pfn(dst_page)) | MIGRATE_PFN_LOCKED;
| ^~~~~~~~~~~~~~~~~~
| MIGRATE_PFN_VALID
/home/rgadsdon/NVIDIA-Linux-x86_64-495.44/kernel/nvidia-uvm/uvm_migrate_pageable.c:409:55: note: each undeclared identifier is reported only once for each function it appears in
/home/rgadsdon/NVIDIA-Linux-x86_64-495.44/kernel/nvidia-uvm/uvm_migrate_pageable.c: In function ‘migrate_vma_copy_pages_from’:
/home/rgadsdon/NVIDIA-Linux-x86_64-495.44/kernel/nvidia-uvm/uvm_migrate_pageable.c:493:55: error: ‘MIGRATE_PFN_LOCKED’ undeclared (first use in this function); did you mean ‘MIGRATE_PFN_VALID’?
493 | dst[i] = migrate_pfn(page_to_pfn(dst_page)) | MIGRATE_PFN_LOCKED;
| ^~~~~~~~~~~~~~~~~~
| MIGRATE_PFN_VALID
make[2]: *** [scripts/Makefile.build:287: /home/rgadsdon/NVIDIA-Linux-x86_64-495.44/kernel/nvidia-uvm/uvm_migrate_pageable.o] Error 1
.......................
Fortunately, the latest release, of driver 470.86, does compile and load/run OK:
...........................
/home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-modeset/nvidia-modeset-linux.o /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-modeset/nv-kthread-q.o
MODPOST /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/Module.symvers
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-drm.mod.o
LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-drm.ko
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-modeset.mod.o
LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-modeset.ko
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-peermem.mod.o
LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-peermem.ko
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-uvm.mod.o
LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia-uvm.ko
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia.mod.o
LD [M] /home/rgadsdon/NVIDIA-Linux-x86_64-470.86/kernel/nvidia.ko
make[1]: Leaving directory '/usr/src/linux-5.16-rc1'
...............................
Robert Gadsdon. November 14th 2021.
For Nvidia driver 495.44, just try the following patch (inspired by https://lore.kernel.org/linux-mm/20211111043240.E2eKPjFtl%25akpm@linux-foundation.org/ ):
— a/kernel/nvidia-uvm/uvm_migrate_pageable.c 2021-11-18 16:07:54.991678461 +0100
+++ b/kernel/nvidia-uvm/uvm_migrate_pageable.c 2021-11-18 16:08:45.691269289 +0100
@@ -406,7 +406,7 @@
uvm_push_set_flag(&push, UVM_PUSH_FLAG_CE_NEXT_MEMBAR_NONE);
copying_gpu->parent->ce_hal->memset_8(&push, dst_address, 0, PAGE_SIZE);
– dst[i] = migrate_pfn(page_to_pfn(dst_page)) | MIGRATE_PFN_LOCKED;
+ dst[i] = migrate_pfn(page_to_pfn(dst_page));
}
if (copying_gpu) {
@@ -490,7 +490,7 @@
uvm_push_set_flag(&push, UVM_PUSH_FLAG_CE_NEXT_MEMBAR_NONE);
copying_gpu->parent->ce_hal->memcopy(&push, dst_address, src_address, PAGE_SIZE);
– dst[i] = migrate_pfn(page_to_pfn(dst_page)) | MIGRATE_PFN_LOCKED;
+ dst[i] = migrate_pfn(page_to_pfn(dst_page));
}
// TODO: Bug 1766424: If the destination is a GPU and the copy was done by
For the Nvidia driver 390.144, I also have a patch that enables this driver to run with kernel 5.16-RC1.
Unfortunately, this patch is too big to fit in a comment here.
Thanks for these (see latest article..) For ‘larger’ items, I normally use pastebin..
RG.