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

From: Pavel Machek
Date: Sun Aug 30 2009 - 02:49:29 EST


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