Re: Hot/cold allocation -- swsusp can not handle hot pages

Pavel Machek (pavel@ucw.cz)
Sun, 3 Nov 2002 21:26:36 +0100


Hi!

> > ...
> > "big-picture" should be in Documentation/swsusp.txt...
> >
> > *Should* be :-(. I need to copy all used memory, to make sure my
> > snapshot is atomic.
> >
> > Copying works by looking at what is allocated, counting needed pages,
> > allocating 'directory' for them, allocating memory for copies, and
> > actually copying.
>
> Ah. I see.
>
> > When I suddenly find I have less data to copy than I thought, it
> > screws up the code.
>
> Having a less-than-expected amount to copy sounds like it can
> be safely handled?

It means I have to kill some sanity checks and complicate things a
little bit. Yes it can be done.

> > > I'm not really sure what to suggest here. Emptying the per-cpu
> > > page pools would be tricky. Maybe a swsusp-special page allocator
> > > which goes direct to the buddy lists or something.
> >
> > Well, see the patch above. That seems to do the trick for
> > me. It seems that even "cold" allocation can give page from per-cpu
> > pool. I thought that was a bug?
>
> There are two queues per cpu. cache-warm pages and cache-cold
> pages. The cold queue is mainly for lock amortisation, to avoid
> taking the zone lock once per page. But we can also allocate
> from the cold queue for situations where we'll be invalidating the
> cache anyway (file readahead). We don't want to waste cache-hot
> pages. Your change breaks that.

I thought I was making it go to "cold" pages when user requested it,
not to hot ones, but I did not read the code too much.

Pavel

-- 
Casualities in World Trade Center: ~3k dead inside the building,
cryptography in U.S.A. and free speech in Czech Republic.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/