Comment copied from Colin's comment in the upstream stress-ng project [1]:
This appears to be a kernel issue triggered by the stress-ng dev stressor on a tty device. One can corner this by working through the devices by specifying the dev file, for example: stress-ng --dev 0 --dev-file /dev/tty0
By the look of the commit it could be due to the enablement of the TIOCGETD ioctl() call, the commit has the following change:
/*
* On some older 3.13 kernels this can lock up, need to add
* a method to detect and skip this somehow. For the moment
* disable this stress test.
*/
-#if defined(TIOCGETD) && 0
+#if defined(TIOCGETD)
{
{
int ldis;
This seems to match up with the ldisc issue shown in the kernel trace. So I suspect there is a kernel fix for this that needs to be backported as this does not occur with newer kernels.
Comment copied from Colin's comment in the upstream stress-ng project [1]:
This appears to be a kernel issue triggered by the stress-ng dev stressor on a tty device. One can corner this by working through the devices by specifying the dev file, for example: stress-ng --dev 0 --dev-file /dev/tty0
By the look of the commit it could be due to the enablement of the TIOCGETD ioctl() call, the commit has the following change:
/*
* On some older 3.13 kernels this can lock up, need to add
* a method to detect and skip this somehow. For the moment
* disable this stress test.
*/
-#if defined(TIOCGETD) && 0
+#if defined(TIOCGETD)
{
{
int ldis;
@@ -705,9 +779,13 @@ static void stress_dev_tty(
ret = ioctl(fd, TIOCSETD, &ldis);
if (ret == 0) {
}
+#else
+ UNEXPECTED
#endif
This seems to match up with the ldisc issue shown in the kernel trace. So I suspect there is a kernel fix for this that needs to be backported as this does not occur with newer kernels.
[1] https:/ /github. com/ColinIanKin g/stress- ng/issues/ 202