With x11-drivers/nvidia-drivers-384.47, the nvidia_uvm module fails to load on my system. # modprobe nvidia_uvm modprobe: ERROR: could not insert 'nvidia_uvm': Unknown symbol in module, or unknown parameter (see dmesg) dmesg contains this: nvidia_uvm: Unknown symbol nvUvmInterfaceGetBigPageSize (err 0) The nVidia X11 driver itself seems to work (including OpenGL), but this apparently prevents things like ffmpeg's h264_nvenc encoder (and probably CUDA stuff in general) from working. Just for completeness, ffmpeg dies with these messages: [h264_nvenc @ 0x20d06a0] Cannot init CUDA [h264_nvenc @ 0x20d06a0] cuCtxPushCurrent failed My kernel is 4.4.38 plus a custom driver module I wrote for a PCIe card, which I unfortunately haven't had a chance to port to a newer kernel yet.
384.47 does not use nvUvmInterfaceGetBigPageSize. 381.22 does use nvUvmInterfaceGetBigPageSize. It's likely that your nvidia-uvm.ko belongs to the old 381.22 and that your nvidia.ko belongs to 384.47. Needless to say, it works fine for me.
Nice catch. As it turns out, the uvm USE-flag had somehow become unset on this system, leading to a stale nvidia-uvm.ko in /lib/modules. I don't know why the flag changed states, but turning it on fixes the problem. Thanks and sorry for the noise...