lkml.org 
[lkml]   [2006]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH -mm] swsusp: freeze user space processes first

* Rafael J. Wysocki <rjw@sisk.pl> wrote:

> > The logic in that loop makes my brain burst.
> >
> > What happens if a process does vfork();sleep(100000000)?
>
> The freezing of processes will fail due to the timeout.
>
> Without the if (!p->vfork_done) it would fail too, because the child
> would be frozen and the parent would wait for the vfork completion in
> the TASK_UNINTERRUPTIBLE state (ie. unfreezeable). But in that case
> we have a race between the "freezer" and the child process (ie. if the
> child gets frozen before it completes the vfork completion, the paret
> will be unfreezeable) which sometimes leads to a failure when it
> should not. [We have a test case showing this.]

then i'd suggest to change the vfork implementation to make this code
freezable. Nothing that userspace does should cause freezing to fail.
If it does, we've designed things incorrectly on the kernel side.

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-02-05 11:56    [W:0.047 / U:0.348 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site