Re: [PATCH 2/3] swsusp: Do not use page flags



Hi!

On Mon, 12 Mar 2007 22:19:20 +0100 "Rafael J. Wysocki" <rjw@xxxxxxx> wrote:
+int create_basic_memory_bitmaps(void)
+{
+ struct memory_bitmap *bm1, *bm2;
+ int error = 0;
+
+ BUG_ON(forbidden_pages_map || free_pages_map);
+
+ bm1 = kzalloc(sizeof(struct memory_bitmap), GFP_ATOMIC);
+ if (!bm1)
+ return -ENOMEM;
+
+ error = memory_bm_create(bm1, GFP_ATOMIC | __GFP_COLD, PG_ANY);
+ if (error)
+ goto Free_first_object;
+
+ bm2 = kzalloc(sizeof(struct memory_bitmap), GFP_ATOMIC);
+ if (!bm2)
+ goto Free_first_bitmap;
+
+ error = memory_bm_create(bm2, GFP_ATOMIC | __GFP_COLD, PG_ANY);
+ if (error)

What is the risk that we'll go OOM here? GFP_ATOMIC is rather unreliable.

Well, this can be called after processes (including kswapd) has been frozen.
We can't go to sleep at this point.

So it _is_ unreliable?

We are careful to leave some memory aside for suspend... We actually
free memory at beggining of suspend, and there's some simple "add few
percent for our overhead" there.
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/



Relevant Pages

  • Re: [PATCH 2/3] swsusp: Do not use page flags
    ... What is the risk that we'll go OOM here? ... And why _does_ suspend use GFP_ATOMIC all over the place? ... Please read the FAQ at http://www.tux.org/lkml/ ...
    (Linux-Kernel)
  • Re: [RFC] [PATCH] Cgroup based OOM killer controller
    ... that the administrator has designated. ... If it is oom, the kernel must ... cpuset feature is hardcoded into the selection algorithm. ... killing a task will free memory in these cpuset-constrained ooms. ...
    (Linux-Kernel)