All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20111115173656.GJ27150@suse.de>

diff --git a/a/1.txt b/N1/1.txt
index b8c41ab..a3280ea 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -8,19 +8,19 @@ On Wed, Nov 16, 2011 at 01:13:30AM +0900, Minchan Kim wrote:
 > >
 > > Colin Cross reported;
 > >
-> >  Under the following conditions, __alloc_pages_slowpath can loop forever:
-> >  gfp_mask & __GFP_WAIT is true
-> >  gfp_mask & __GFP_FS is false
-> >  reclaim and compaction make no progress
-> >  order <= PAGE_ALLOC_COSTLY_ORDER
+> >  Under the following conditions, __alloc_pages_slowpath can loop forever:
+> >  gfp_mask & __GFP_WAIT is true
+> >  gfp_mask & __GFP_FS is false
+> >  reclaim and compaction make no progress
+> >  order <= PAGE_ALLOC_COSTLY_ORDER
 > >
-> >  These conditions happen very often during suspend and resume,
-> >  when pm_restrict_gfp_mask() effectively converts all GFP_KERNEL
-> >  allocations into __GFP_WAIT.
+> >  These conditions happen very often during suspend and resume,
+> >  when pm_restrict_gfp_mask() effectively converts all GFP_KERNEL
+> >  allocations into __GFP_WAIT.
 > >
-> >  The oom killer is not run because gfp_mask & __GFP_FS is false,
-> >  but should_alloc_retry will always return true when order is less
-> >  than PAGE_ALLOC_COSTLY_ORDER.
+> >  The oom killer is not run because gfp_mask & __GFP_FS is false,
+> >  but should_alloc_retry will always return true when order is less
+> >  than PAGE_ALLOC_COSTLY_ORDER.
 > >
 > > In his fix, he avoided retrying the allocation if reclaim made no
 > > progress and __GFP_FS was not set. The problem is that this would
@@ -31,7 +31,7 @@ On Wed, Nov 16, 2011 at 01:13:30AM +0900, Minchan Kim wrote:
 > > to behave like GFP_NOIO is that normally flushers will be cleaning
 > > pages and kswapd reclaims pages allowing GFP_NOIO to succeed after
 > > a short delay. The same does not necessarily apply during suspend as
-> > the storage device may be suspended.  Hence, this patch special cases
+> > the storage device may be suspended.  Hence, this patch special cases
 > > the suspend case to fail the page allocation if reclaim cannot make
 > > progress. This might cause suspend to abort but that is better than
 > > a livelock.
@@ -40,49 +40,49 @@ On Wed, Nov 16, 2011 at 01:13:30AM +0900, Minchan Kim wrote:
 > > Reported-and-tested-by: Colin Cross <ccross@android.com>
 > > Signed-off-by: Mel Gorman <mgorman@suse.de>
 > > ---
-> >  mm/page_alloc.c |   22 ++++++++++++++++++++++
-> >  1 files changed, 22 insertions(+), 0 deletions(-)
+> >  mm/page_alloc.c |   22 ++++++++++++++++++++++
+> >  1 files changed, 22 insertions(+), 0 deletions(-)
 > >
 > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
 > > index 9dd443d..5402897 100644
 > > --- a/mm/page_alloc.c
 > > +++ b/mm/page_alloc.c
 > > @@ -127,6 +127,20 @@ void pm_restrict_gfp_mask(void)
-> >        saved_gfp_mask = gfp_allowed_mask;
-> >        gfp_allowed_mask &= ~GFP_IOFS;
-> >  }
+> >        saved_gfp_mask = gfp_allowed_mask;
+> >        gfp_allowed_mask &= ~GFP_IOFS;
+> >  }
 > > +
 > > +static bool pm_suspending(void)
 > > +{
-> > +       if ((gfp_allowed_mask & GFP_IOFS) == GFP_IOFS)
-> > +               return false;
-> > +       return true;
+> > +       if ((gfp_allowed_mask & GFP_IOFS) == GFP_IOFS)
+> > +               return false;
+> > +       return true;
 > > +}
 > > +
 > > +#else
 > > +
 > > +static bool pm_suspending(void)
 > > +{
-> > +       return false;
+> > +       return false;
 > > +}
-> >  #endif /* CONFIG_PM_SLEEP */
+> >  #endif /* CONFIG_PM_SLEEP */
 > >
-> >  #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
+> >  #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
 > > @@ -2214,6 +2228,14 @@ rebalance:
 > >
-> >                        goto restart;
-> >                }
+> >                        goto restart;
+> >                }
 > > +
-> > +               /*
-> > +                * Suspend converts GFP_KERNEL to __GFP_WAIT which can
-> > +                * prevent reclaim making forward progress without
-> > +                * invoking OOM. Bail if we are suspending
-> > +                */
-> > +               if (pm_suspending())
-> > +                       goto nopage;
-> >        }
+> > +               /*
+> > +                * Suspend converts GFP_KERNEL to __GFP_WAIT which can
+> > +                * prevent reclaim making forward progress without
+> > +                * invoking OOM. Bail if we are suspending
+> > +                */
+> > +               if (pm_suspending())
+> > +                       goto nopage;
+> >        }
 > >
-> >        /* Check if we should retry the allocation */
+> >        /* Check if we should retry the allocation */
 > >
 > 
 > I don't have much time to look into this problem so I miss some things.
@@ -139,3 +139,10 @@ pm_suspended_storage() test.
 -- 
 Mel Gorman
 SUSE Labs
+
+--
+To unsubscribe, send a message with 'unsubscribe linux-mm' in
+the body to majordomo@kvack.org.  For more info on Linux MM,
+see: http://www.linux-mm.org/ .
+Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
+Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
diff --git a/a/content_digest b/N1/content_digest
index 691a1d0..e9f33c2 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -24,19 +24,19 @@
  "> >\n"
  "> > Colin Cross reported;\n"
  "> >\n"
- "> > \302\240Under the following conditions, __alloc_pages_slowpath can loop forever:\n"
- "> > \302\240gfp_mask & __GFP_WAIT is true\n"
- "> > \302\240gfp_mask & __GFP_FS is false\n"
- "> > \302\240reclaim and compaction make no progress\n"
- "> > \302\240order <= PAGE_ALLOC_COSTLY_ORDER\n"
+ "> >  Under the following conditions, __alloc_pages_slowpath can loop forever:\n"
+ "> >  gfp_mask & __GFP_WAIT is true\n"
+ "> >  gfp_mask & __GFP_FS is false\n"
+ "> >  reclaim and compaction make no progress\n"
+ "> >  order <= PAGE_ALLOC_COSTLY_ORDER\n"
  "> >\n"
- "> > \302\240These conditions happen very often during suspend and resume,\n"
- "> > \302\240when pm_restrict_gfp_mask() effectively converts all GFP_KERNEL\n"
- "> > \302\240allocations into __GFP_WAIT.\n"
+ "> >  These conditions happen very often during suspend and resume,\n"
+ "> >  when pm_restrict_gfp_mask() effectively converts all GFP_KERNEL\n"
+ "> >  allocations into __GFP_WAIT.\n"
  "> >\n"
- "> > \302\240The oom killer is not run because gfp_mask & __GFP_FS is false,\n"
- "> > \302\240but should_alloc_retry will always return true when order is less\n"
- "> > \302\240than PAGE_ALLOC_COSTLY_ORDER.\n"
+ "> >  The oom killer is not run because gfp_mask & __GFP_FS is false,\n"
+ "> >  but should_alloc_retry will always return true when order is less\n"
+ "> >  than PAGE_ALLOC_COSTLY_ORDER.\n"
  "> >\n"
  "> > In his fix, he avoided retrying the allocation if reclaim made no\n"
  "> > progress and __GFP_FS was not set. The problem is that this would\n"
@@ -47,7 +47,7 @@
  "> > to behave like GFP_NOIO is that normally flushers will be cleaning\n"
  "> > pages and kswapd reclaims pages allowing GFP_NOIO to succeed after\n"
  "> > a short delay. The same does not necessarily apply during suspend as\n"
- "> > the storage device may be suspended. \302\240Hence, this patch special cases\n"
+ "> > the storage device may be suspended.  Hence, this patch special cases\n"
  "> > the suspend case to fail the page allocation if reclaim cannot make\n"
  "> > progress. This might cause suspend to abort but that is better than\n"
  "> > a livelock.\n"
@@ -56,49 +56,49 @@
  "> > Reported-and-tested-by: Colin Cross <ccross@android.com>\n"
  "> > Signed-off-by: Mel Gorman <mgorman@suse.de>\n"
  "> > ---\n"
- "> > \302\240mm/page_alloc.c | \302\240 22 ++++++++++++++++++++++\n"
- "> > \302\2401 files changed, 22 insertions(+), 0 deletions(-)\n"
+ "> >  mm/page_alloc.c |   22 ++++++++++++++++++++++\n"
+ "> >  1 files changed, 22 insertions(+), 0 deletions(-)\n"
  "> >\n"
  "> > diff --git a/mm/page_alloc.c b/mm/page_alloc.c\n"
  "> > index 9dd443d..5402897 100644\n"
  "> > --- a/mm/page_alloc.c\n"
  "> > +++ b/mm/page_alloc.c\n"
  "> > @@ -127,6 +127,20 @@ void pm_restrict_gfp_mask(void)\n"
- "> > \302\240 \302\240 \302\240 \302\240saved_gfp_mask = gfp_allowed_mask;\n"
- "> > \302\240 \302\240 \302\240 \302\240gfp_allowed_mask &= ~GFP_IOFS;\n"
- "> > \302\240}\n"
+ "> >        saved_gfp_mask = gfp_allowed_mask;\n"
+ "> >        gfp_allowed_mask &= ~GFP_IOFS;\n"
+ "> >  }\n"
  "> > +\n"
  "> > +static bool pm_suspending(void)\n"
  "> > +{\n"
- "> > + \302\240 \302\240 \302\240 if ((gfp_allowed_mask & GFP_IOFS) == GFP_IOFS)\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 return false;\n"
- "> > + \302\240 \302\240 \302\240 return true;\n"
+ "> > +       if ((gfp_allowed_mask & GFP_IOFS) == GFP_IOFS)\n"
+ "> > +               return false;\n"
+ "> > +       return true;\n"
  "> > +}\n"
  "> > +\n"
  "> > +#else\n"
  "> > +\n"
  "> > +static bool pm_suspending(void)\n"
  "> > +{\n"
- "> > + \302\240 \302\240 \302\240 return false;\n"
+ "> > +       return false;\n"
  "> > +}\n"
- "> > \302\240#endif /* CONFIG_PM_SLEEP */\n"
+ "> >  #endif /* CONFIG_PM_SLEEP */\n"
  "> >\n"
- "> > \302\240#ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE\n"
+ "> >  #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE\n"
  "> > @@ -2214,6 +2228,14 @@ rebalance:\n"
  "> >\n"
- "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240goto restart;\n"
- "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240}\n"
+ "> >                        goto restart;\n"
+ "> >                }\n"
  "> > +\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 /*\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240* Suspend converts GFP_KERNEL to __GFP_WAIT which can\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240* prevent reclaim making forward progress without\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240* invoking OOM. Bail if we are suspending\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240*/\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 if (pm_suspending())\n"
- "> > + \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 goto nopage;\n"
- "> > \302\240 \302\240 \302\240 \302\240}\n"
+ "> > +               /*\n"
+ "> > +                * Suspend converts GFP_KERNEL to __GFP_WAIT which can\n"
+ "> > +                * prevent reclaim making forward progress without\n"
+ "> > +                * invoking OOM. Bail if we are suspending\n"
+ "> > +                */\n"
+ "> > +               if (pm_suspending())\n"
+ "> > +                       goto nopage;\n"
+ "> >        }\n"
  "> >\n"
- "> > \302\240 \302\240 \302\240 \302\240/* Check if we should retry the allocation */\n"
+ "> >        /* Check if we should retry the allocation */\n"
  "> >\n"
  "> \n"
  "> I don't have much time to look into this problem so I miss some things.\n"
@@ -154,6 +154,13 @@
  "\n"
  "-- \n"
  "Mel Gorman\n"
- SUSE Labs
+ "SUSE Labs\n"
+ "\n"
+ "--\n"
+ "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
+ "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
+ "see: http://www.linux-mm.org/ .\n"
+ "Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/\n"
+ "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
 
-edd0682cd787cfe8c60b1dfd4692e011604bb62b8c5f6aac04e8a102f37db2d0
+3fbd15f0e34ee348ad0b4cb67c4315225934c3f3879000f11bd6442901987c9b

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.