Are there more details about this alleged ctrl+c issue? It's not clear to me what you're doing, let alone what you expect.
Ctrl+C doesn't do anything but signal some loops to break in the control logic. Which loops depends on if it's the first or second time you've pressed it. It doesn't actually touch the GPUs at all.
I think you're either observing the intended behavior or a driver bug.
If you press ctrl+c once, then see GPUs drop to power-saving, that's expected behavior. You've told the GPU worker threads to stop after they're done with current work. So as the threads complete, you will see GPUs drop to low power modes, since they have nothing to do. App is just waiting for the rest of the threads to finish before exiting.
If you're running ccminer, killing it with ctrl+c, then starting it again and seeing low performance until a reboot. That sounds like a driver bug to me.
Agreed on the driver issue. The following summary illustrates my experience and I believe the experience
of others. I'm sure I'll be corrected if not.
There are a few scenarios where the GPU will get stuck at low performance. It can happen if the GPU crashes
such as an out of memory error on launch. It can also happen if ccminer is killed with a Ctrl-C. Windows will
also pop up an error window when this occurs. I have seen the degradation on Linux although I'm not sure if
it was ever associated with Ctrl-C.
This seems to be a fairly new problem introduced sometime in the ccminer 1.5 branch (both tpruvot and sp_).
There was some work done around proper_exit when I first started noticing the problem. It's possible that is
just a coincidence and a driver update around the same time could have introduced it.
Ctrl-C is expected to kill the shell process without any side effects such as Windows errors or degraded HW.
For some reason the problem does not seem to occur if the process is killed from another shell
but I can't say it's never occurred. I don't know if any of the recent changes has resolved the Ctrl-C aspect
of the problem because I exclusively use taskkill/pkill.
It's clear that something is messing up the GPU under certain task termination situations. A messy recovery can be
forgiven when the GPU crashes but controlled terminations should be clean.