Lockup on Kill signal

I have two GPUs in my machine - a GeForce GTX470 (with a display connected) and Tesla C2050 on openSUSE 11.4. I’m running some CUDA code on the Tesla C2050 however if I want to terminate it or issue a kill command to it, it locks up the entire graphical output of the machine and there is a huge amount of linux kernel use on the CPU (Core i7).

I’m guessing this is because the OS tries to kill all the threads on the GPU by issuing a command to each of them. It really doesn’t seem like the best way to do it with such a huge number of threads…

The main things I want to know is:

  1. Is the correct way to kill this code? Is there something in CUDA which can be issued to kill it instead?
  2. Has anyone else experienced this before?

Any help in answering this would be appreciated.