lkml.org 
[lkml]   [2009]   [May]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/4] PM/Hibernate: Use memory allocations to free memory (rev. 2)
    Hi!

    > > Remove the shrinking of memory from the suspend-to-RAM code, where it is
    > > not really necessary.
    >
    > Hmm. Shouldn't we do this _regardless_?
    >
    > IOW, shouldn't this be a totally separate patch? It seems to be left-over
    > from when we shared the same code-paths, and before the split of the STR
    > and hibernate code?
    >
    > IOW, shouldn't the very _first_ patch just be this part? That code doesn't
    > make any sense anyway (that FREE_PAGE_NUMBER really _is_ totally
    > arbitrary).
    >
    > This part seems to be totally independent of all the other parts in your
    > patch-series. No?

    I'm not sure this one is a good idea: drivers will need to allocate
    memory during suspend/resume, and when processes are frozen/disk
    driver is suspended, normal memory management will no longer work.

    So, freeing 4M of memory before starting suspend seems like a good
    idea. That way those small alocations will not fail.
    Pavel


    > @@ -188,9 +188,6 @@ static void suspend_test_finish(const char *label)
    >
    > #endif
    >
    > -/* This is just an arbitrary number */
    > -#define FREE_PAGE_NUMBER (100)
    > -
    > static struct platform_suspend_ops *suspend_ops;
    >
    > /**
    > @@ -241,24 +238,10 @@ static int suspend_prepare(void)
    > if (error)
    > goto Finish;
    >
    > - if (suspend_freeze_processes()) {
    > - error = -EAGAIN;
    > - goto Thaw;
    > - }
    > -
    > - free_pages = global_page_state(NR_FREE_PAGES);
    > - if (free_pages < FREE_PAGE_NUMBER) {
    > - pr_debug("PM: free some memory\n");
    > - shrink_all_memory(FREE_PAGE_NUMBER - free_pages);
    > - if (nr_free_pages() < FREE_PAGE_NUMBER) {
    > - error = -ENOMEM;
    > - printk(KERN_ERR "PM: No enough memory\n");
    > - }
    > - }
    > + error = suspend_freeze_processes();
    > if (!error)
    > return 0;
    >
    > - Thaw:
    > suspend_thaw_processes();
    > usermodehelper_enable();
    > Finish:

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


    \
     
     \ /
      Last update: 2009-05-03 11:37    [W:0.024 / U:1.016 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site