Sometimes my Xorg hangs and locks the console dead, with a “stale frame” of GUI on the monitor. Hardware and driver-related problems are likely (see here for description of particular configuration), but this question is focused on a particularly annoying effect: inability to switch to text mode. Otherwise the system is fully functioning. The box serves a LAN, I can log in and even run somethings like
chvt inside, to no avail. Of course, I can terminate the Xorg process to free the console… but it’s so rude. Not the same situation as in that question, where Ctrl+Alt+F1 failed consistently, but, in my case, it fails sometimes and only when X is unable to work anyway.
So, the question: Which exactly step of console switching is vulnerable to deadlocks? Modern Linux kernels (3.x) are assumed. Many years ago (in the age of Linux 2.4) I had reasonably good understanding of virtual console-related stuff and even wrote some notes about it, but modern
vc_screen.c changed considerably from 10-years-old specimens, with such new calls as
console_unlock() appeared in it.