Hi. On Saturday 07 July 2007 17:50:18 Pavel Machek wrote: > Hi! > > > The main limitation of the freezer is that it cannot handle uninterruptible > > tasks. Namely, if there are uninterruptible tasks in the system, the freezer > > returns an error, which makes it impossible to suspend the system. > ... > > Unfortunately, this mechanism also leads to severe limitations, such as that it > > makes the freezer unable to handle systems using FUSE in a reliable way. > > > > This patch makes the freezer skip uninterruptible user space tasks (ie. such > > that have an mm of their own) when counting the tasks to be frozen. As a > > result, these tasks have the TIF_FREEZE and TIF_SIGPENDING flags set, but the > > freezer doesn't wait for them to enter the refrigerator. Nevertheless, they > > will enter the refrigerator as soon as they change their state. > > I don't think we can do that. I suspect rename looks like: > > write directory entry in source > A) (uninterruptible wait for write) > write directory entry in destination > (uninterruptible wait for write) > write something else > > If we freeze some task in place "A)", we'll write to the disk when the > directory write is finished :-(. Renaming is a single syscall, so won't the process get frozen when the syscall finishes? The sys_sync will also help here - it will ensure the rename gets flushed before we start on freezing kernel threads. Perhaps you've just found more logic for keeping the sys_sync there? Regards, Nigel -- See http://www.tuxonice.net for Howtos, FAQs, mailing lists, wiki and bugzilla info.
Attachment:
pgpI2IFKGtxDT.pgp
Description: PGP signature
- Follow-Ups:
- Re: [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
- From: Pavel Machek <[email protected]>
- Re: [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
- References:
- [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
- From: "Rafael J. Wysocki" <[email protected]>
- Re: [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
- From: Pavel Machek <[email protected]>
- [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
- Prev by Date: [2.6 patch] include/asm-xtensa/io.h must #include <asm/page.h>
- Next by Date: Re: v2.6.21.5-rt19
- Previous by thread: Re: [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
- Next by thread: Re: [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
- Index(es):