lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <E1KvDJp-00088f-2b@pomaz-ex.szeredi.hu>
Date:	Wed, 29 Oct 2008 16:50:49 +0100
From:	Miklos Szeredi <miklos@...redi.hu>
To:	stern@...land.harvard.edu
CC:	miklos@...redi.hu, rjw@...k.pl, linux-kernel@...r.kernel.org,
	ncunningham@...a.org.au, linux-pm@...ts.linux-foundation.org
Subject: Re: [linux-pm] Freezer: Don't count threads waiting for frozen
 filesystems.

On Wed, 29 Oct 2008, Alan Stern wrote:
> On Wed, 29 Oct 2008, Miklos Szeredi wrote:
> > I did a random sampling of ->suspend() callbacks, and they don't seem
> > to be taking mutexes.  Does that happen at all?
> 
> It does, particularly among drivers that do runtime PM, which is 
> becoming more and more important.
> 
> Besides, suspend has to synchronize with I/O somehow.  Right now that 
> is handled by making suspend wait until no tasks are doing I/O (because 
> they are all frozen).

What about async I/O?

>  If you allow tasks to be frozen at more or less 
> arbitrary times, while holding arbitrary locks, then you may end up 
> freezing a task that's in the middle of I/O.  That should certainly 
> block the suspend (not to mention messing up the I/O operation).

What is the middle of I/O?  Depending the type of I/O it could be
messed up regardless of whether tasks happen to be in userspace or not
(e.g. printing).

And some types of I/O are already mostly decoupled from userspace
(file I/O, networking), so the userspace freezing shoudln't make any
difference.

> > Did anybody ever try modifying the freezer for suspend (not
> > hibernate), so that it allows tasks not in running state to freeze?
> > If not, I think that's an experiment worth doing.
> 
> What happens if the reason the task isn't running is because it's 
> waiting for I/O to complete?  I just don't think this can be made to 
> work.

Don't know.  I've never written a driver, and I'm not familiar with
runtime PM, etc.  So I can't come up with a detailed design for
solving the freezer issues there.

But I do think that the solution does not lie in "fixing" the VFS.

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ