Kernel – 5.9-rc – Preliminary Testing – Breaks VMware and NVIDIA, and VirtualBox..
After all the excitement around the release of Kernel 5.8, I ran some tests on the work-in-progress git version (August 9th) of Kernel 5.9-rc1. Obviously, there are more changes to come before RC1 is actually released..
NVIDIA 450.57 compile fails:
.........................
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia-uvm/nv-kthread-q.o
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia-uvm/nv-kthread-q-selftest.o
CC [M] /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia-uvm/uvm8.o
In file included from /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia-uvm/uvm8.c:31:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia-uvm/uvm8_va_range.h: In function ‘uvm_va_range_block’:
/home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia-uvm/uvm8_va_range.h:758:5: error: implicit declaration of function ‘smp_read_barrier_depends’ [-Werror=implicit-function-declaration]
758 | smp_read_barrier_depends();
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:283: /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel/nvidia-uvm/uvm8.o] Error 1
make[1]: *** [Makefile:1785: /home/rgadsdon/NVIDIA-Linux-x86_64-450.57/kernel] Error 2
make[1]: Leaving directory '/usr/src/linux-5.9-rc1pre0809'
make: *** [Makefile:81: modules] Error 2
VMware 15.5.6 – with latest patches.. vmnet compiles ok, but vmmon fails:
[rgadsdon@rgz220 vmmon-only]$ make
Using kernel build system.
make -C /lib/modules/5.9.0rc1pre0809/build/include/.. M=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-5.9-rc1pre0809'
CC [M] /home/rgadsdon/kernel/vmware-host-modules-workstation-15.5.6/vmmon-only/linux/driver.o
CC [M] /home/rgadsdon/kernel/vmware-host-modules-workstation-15.5.6/vmmon-only/linux/hostif.o
/home/rgadsdon/kernel/vmware-host-modules-workstation-15.5.6/vmmon-only/linux/hostif.c: In function ‘HostIF_EstimateLockedPageLimit’:
/home/rgadsdon/kernel/vmware-host-modules-workstation-15.5.6/vmmon-only/linux/hostif.c:1744:42: error: ‘NR_SLAB_UNRECLAIMABLE’ undeclared (first use in this function); did you mean ‘NR_SLAB_UNRECLAIMABLE_B’?
1744 | lockedPages += global_node_page_state(NR_SLAB_UNRECLAIMABLE);
| ^~~~~~~~~~~~~~~~~~~~~
| NR_SLAB_UNRECLAIMABLE_B
/home/rgadsdon/kernel/vmware-host-modules-workstation-15.5.6/vmmon-only/linux/hostif.c:1744:42: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [scripts/Makefile.build:283: /home/rgadsdon/kernel/vmware-host-modules-workstation-15.5.6/vmmon-only/linux/hostif.o] Error 1
make[1]: *** [Makefile:1785: /home/rgadsdon/kernel/vmware-host-modules-workstation-15.5.6/vmmon-only] Error 2
make[1]: Leaving directory '/usr/src/linux-5.9-rc1pre0809'
make: *** [Makefile:117: vmmon.ko] Error 2
I also did a quick compile test on VirtualBox (latest svn 6.1.97 version, that compiled OK with Kernel 5.8.0) and this failed:
........................................
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_ttm.c: In function ‘vbox_bo_gpu_offset’:
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_ttm.c:451:15: error: ‘struct ttm_buffer_object’ has no member named ‘offset’
.......................................
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_drv.c:320:16: error: initialization of ‘void (*)(struct drm_device *, struct drm_file *, bool)’ {aka ‘void (*)(struct drm_device *, struct drm_file *, _Bool)’} from incompatible pointer type ‘int (*)(struct drm_device *, struct drm_file *, bool)’ {aka ‘int (*)(struct drm_device *, struct drm_file *, _Bool)’} [-Werror=incompatible-pointer-types]
320 | .master_set = vbox_master_set,
| ^~~~~~~~~~~~~~~
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_drv.c:320:16: note: (near initialization for ‘driver.master_set’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:283: /opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_drv.o] Error 1
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_fb.c: In function ‘vbox_fbdev_fini’:
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_fb.c:403:3: error: implicit declaration of function ‘drm_gem_object_put_unlocked’; did you mean ‘drm_gem_object_put_locked’? [-Werror=implicit-function-declaration]
403 | drm_gem_object_put_unlocked(afb->obj);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| drm_gem_object_put_locked
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:283: /opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_fb.o] Error 1
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_main.c: In function ‘vbox_user_framebuffer_destroy’:
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_main.c:44:3: error: implicit declaration of function ‘drm_gem_object_put_unlocked’; did you mean ‘drm_gem_object_put_locked’? [-Werror=implicit-function-declaration]
44 | drm_gem_object_put_unlocked(vbox_fb->obj);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| drm_gem_object_put_locked
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:283: /opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_main.o] Error 1
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_mode.c: In function ‘vbox_cursor_set2’:
/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_mode.c:887:2: error: implicit declaration of function ‘drm_gem_object_put_unlocked’; did you mean ‘drm_gem_object_put_locked’? [-Werror=implicit-function-declaration]
887 | drm_gem_object_put_unlocked(obj);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
| drm_gem_object_put_locked
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:283: /opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/vbox_mode.o] Error 1
make[1]: *** [Makefile:1785: /opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod] Error 2
make: *** [/opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_mod/Makefile-footer.gmk:117: vboxvideo] Error 2
kmk: *** [/home/rgadsdon/kernel/virtualbox/vbox/src/VBox/Additions/linux/Makefile.kmk:355: /opt/VirtualBox/linux.amd64/release/obj/tstvboxvideo-src_lib_modules_5.9.0rc1pre0809_build_mod.run] Error 2
kmk: *** Waiting for unfinished jobs....
In file included from /opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod/combined-os-specific.c:28:
/opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod/r0drv/linux/the-linux-kernel.h:141:11: fatal error: linux/smp_lock.h: No such file or directory
141 | # include <linux/smp_lock.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:283: /opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod/combined-os-specific.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod/VBoxGuest-linux.c:36:
/opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod/r0drv/linux/the-linux-kernel.h:141:11: fatal error: linux/smp_lock.h: No such file or directory
141 | # include <linux/smp_lock.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [scripts/Makefile.build:283: /opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod/VBoxGuest-linux.o] Error 1
make[1]: *** [Makefile:1785: /opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod] Error 2
make: *** [/opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_mod/Makefile-footer.gmk:117: vboxguest] Error 2
kmk: *** [/home/rgadsdon/kernel/virtualbox/vbox/src/VBox/Additions/common/VBoxGuest/Makefile.kmk:239: /opt/VirtualBox/linux.amd64/release/obj/tstvboxguest-src_lib_modules_5.9.0rc1pre0809_build_mod.run] Error 2
kmk: *** Exiting with status 2
More testing to be done, as things progress..
Robert Gadsdon. August 10th, 2020.
there’s already a patch here – https://gitlab.com/EULA/snippets
Just to be clear, the patch mentioned above is for Nvidia. I’ve tried it on k5.8.1 successfully but not yet on k5.9-rc.
Thanks for the direct link – for some reason, it isn’t shown on the main snippets/user menu I had bookmarked.
NVIDIA 450.57 compiles OK with Kernel 5.8.1 without any patch..
RG.
The NR_SLAB_UNRECLAIMABLE issue is trivial and I have it patched in tmp/workstation-16 branch but it’s kind of pointless as current Workstation/Player is not going to work anyway.