Difference of CUDA in Xen and non-Xen Kernel what makes xen kernel fail to use nvidia device

Currently, I’m trying to use cuda program in Xen kernel (dom0 : opensuse 11.4, 2.6.37-xen, xen : 4.0.2)
on my machine (intel xeon x5650, 2 node system, 64bit machine … )

non-xen kernel works fine. All SDK examples work well.

However, xen kernel doesn’t.

While device query and nvidia-smi gives same successful result with non-xen kernel,

SDK examples show error on the console. ( " cudaSafeCall() Runtime API error : all CUDA-capable devices are busy or unavailable" )

What is the solution for it?

In my machine, i tried to find some clues.

Only thing i found is that, the dma size setting differs in non-xen kernel and xen kernel (32bits vs 40bits)

Though you don’t have an answer for it, please post your experience if you succeed to port nvidia driver in xen kernel. Thanks.

p.s. nouveau is disables. every environemnt of xen kernel is same with non-xen kernel except the kernel image and xen.


I have the exact same problem. Is there a solution to this problem ?

Best regards


Problem still persist in CUDA-5.5.
(CUDA 5.5, NVdriver 319.37, kernel 3.9.11-200.fc18.x86_64, XEN 4.4, GTX 770).

deviceQuery - OK
bandwidthTest… - FAIL, code=46(cudaErrorDevicesUnavailable)

Recompiling + installing new driver " /usr/src/nvidia-319.37# IGNORE_XEN_PRESENCE=y make clean module " does not help.

Any progress on this issue ?