KERNEL – 4.8-rc1 Out – Breaks VMware and NVIDIA – and Fixes..
Kernel 4.8-rc1 is out, and brief details are here: http://lkml.iu.edu/hypermail/linux/kernel/1608.0/04804.html
VMware 12.1.1 – with the previous 4.6/4.7 patches, fails to compile vmmon:
/tmp/modconfig-gfkQLR/vmmon-only/linux/hostif.c: In function ‘HostIF_EstimateLockedPageLimit’: /tmp/modconfig-gfkQLR/vmmon-only/linux/hostif.c:1597:47: error: ‘NR_ANON_PAGES’ undeclared (first use in this function)
Further research revealed that NR_ANON_PAGES has been changed to NR_ANON_MAPPED in 4.8, and so the fix is quite simple..
In ~/vmmon-only/linux/hostif.c, around line 1594, change
unsigned int anonPages = global_page_state(NR_ANON_PAGES);
to
unsigned int anonPages = global_page_state(NR_ANON_MAPPED);
With this change, vmmon compiles OK again..
For NVIDIA driver 367.35 – with the 4.7 patches – the compilation fails with 4.8-rc1:
/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c: In function ‘nvidia_drm_migrate_modeset_ownership’: /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c:455:26: error: ‘struct drm_minor’ has no member named ‘master’ !file_priv->minor->master) ^~ /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c:476:5: error: implicit declaration of function ‘drm_master_put’ [-Werror=implicit-function-declaration] drm_master_put(&file_priv->minor->master); ^~~~~~~~~~~~~~ /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm/nvidia-drm-drv.c:476:37: error: ‘struct drm_minor’ has no member named ‘master’ drm_master_put(&file_priv->minor->master);
The fix is already documented, thanks to m00ster and andresu on the Devtalk forum, and details are here: https://devtalk.nvidia.com/default/topic/954279/linux/nvidia-367-35-dkms-build-errors-for-a-4-7-0-kernel/
I have been running driver 367.35 without these particular patches on 4.7 Final, for some time.. I applied the changes – manually – and now 367.35, with the original 4.7 patches plus these patches, compiles OK on 4.8-rc1:
Building modules, stage 2. MODPOST 4 modules CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm.mod.o LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-drm.ko CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-modeset.mod.o LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-modeset.ko CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-uvm.mod.o LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia-uvm.ko CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia.mod.o LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-367.35-patched/kernel/nvidia.ko make[2]: Leaving directory '/usr/src/linux-4.8-rc1' make[1]: Leaving directory '/usr/src/linux-4.8-rc1'
Robert Gadsdon. August 8, 2016.
thanks indeed!
Thank you, just came in handy.
Exactly which patches do I have to apply? And also, what 4.7 patches are u referering to? pls help. thx!
If you are running the latest version of VMware (12.5.2) with the current (4.8.x) kernel, there is no need to patch anything..
RG.
I’m a noob. Where do I find ~/vmmon-only/linux/hostif.c I have no clue where the file is located. Please help
vmmon-only/linux/hostif.c is the result of unTARing vmmon.tar, which should be in /usr/lib/vmware/modules/source..
RG.
Thank you! Worked like a charm.
Kernel 4.8.15-gentoo + vmware-modules-308.1.1 (from laymna repos: vmware).
Yes its compiling. but. when you starts any VM’s – its starts insane memory leak, almost instanly – system freeze to 0 movement.
sry fo my english.