Re: [PATCH 2/6] PM: Asynchronous resume of devices

Pavel Machek
2009-08-30T06:45:41Z

Hi!

> > > > > > The same goes for the noirq versions.
> > > > >
> > > > > I thought about that, but there are a few things to figure out:
> > > > > - how many threads to start
> > > >
> > > > That's a tough question. Right now you start roughly as many threads
> > > > as there are async devices. That seems like overkill.
> > >
> > > In fact they are substantially fewer than that, for the following reasons.
> > >
> > > First, the async framework will not start more than MAX_THREADS threads,
> > > which is 256 at the moment. This number is less than the number of async
> > > devices to handle on an average system.
> >
> > Okay, but MAX_THREADS isn't under your control. Remember also that
> > each thread takes up some memory, and during hibernation we are in a
> > memory-constrained situation.
>
> We keep some extra free memory for things like this. It's not likely to be
> exhausted by the async threads alone.

What extra memory? You are creating quite a lot of threads. For 256 of
them, it would take cca 2MB... You recently removed code from s2disk
that freed 4MB of extra memory, so you are now essentially relying on
min_free_kbytes -- and even then is not reliable, user might s2disk
under memory pressure. min_free_kbytes is 1MB on my system.

Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html