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:
pgpwKhQWBQSwH.pgp
Description: PGP signature
_______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm