vfork makes processes uninterruptible [was Re: [PATCH -mm] swsusp: freeze user space processes first]

From: Pavel Machek
Date: Fri Feb 10 2006 - 15:19:42 EST


Hi!

> > Can you produce userland testcase? If we have uninterruptible process for
> > days... that's a bug in kernel, suspend or not.
>
> Sure, no problem. [Pretty scary, no?]

Yes, pretty scary. It will also raise system load for 300 seconds
without any real load.

> The test code:
>
> #include <sys/types.h>
> #include <unistd.h>
>
> int main(int argc, char *argv[])
> {
> vfork();
> sleep(300);
>
> return 0;
> }
>
> The result:
>
> rafael@albercik:~/programming/c> ./vfork_test &
> [1] 12288
> rafael@albercik:~/programming/c> ps l
> F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
> 0 500 6937 6931 17 0 10048 2368 read_c Ss+ pts/1 0:00 /bin/bash
> 0 500 12139 12133 15 0 10052 2380 wait Ss pts/2 0:00 /bin/bash
> 0 500 12288 12139 15 0 2420 304 fork D pts/2 0:00 ./vfork_tes
> 1 500 12291 12288 18 0 2420 304 hrtime S pts/2 0:00 ./vfork_tes
> 0 500 12372 12139 15 0 3596 820 - R+ pts/2 0:00 ps l
> rafael@albercik:~/programming/c> kill 12288
> rafael@albercik:~/programming/c> ps l
> F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
> 0 500 6937 6931 17 0 10048 2368 read_c Ss+ pts/1 0:00 /bin/bash
> 0 500 12139 12133 15 0 10052 2380 wait Ss pts/2 0:00 /bin/bash
> 0 500 12288 12139 15 0 2420 304 fork D pts/2 0:00 ./vfork_tes
> 1 500 12291 12288 18 0 2420 304 hrtime S pts/2 0:00 ./vfork_tes
> 0 500 12380 12139 17 0 3600 820 - R+ pts/2 0:00 ps l
> rafael@albercik:~/programming/c> kill -9 12288
> rafael@albercik:~/programming/c> ps l
> F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
> 0 500 6937 6931 17 0 10048 2368 read_c Ss+ pts/1 0:00 /bin/bash
> 0 500 12139 12133 15 0 10052 2380 wait Ss pts/2 0:00 /bin/bash
> 0 500 12288 12139 15 0 2420 304 fork D pts/2 0:00 ./vfork_tes
> 1 500 12291 12288 18 0 2420 304 hrtime S pts/2 0:00 ./vfork_tes
> 0 500 12387 12139 16 0 3596 816 - R+ pts/2 0:00 ps l
> rafael@albercik:~/programming/c>
>
> Greetings,
> Rafael

--
Web maintainer for suspend.sf.net (www.sf.net/projects/suspend) wanted...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/