diff for duplicates of <20090627153630.GA6803@cmpxchg.org> diff --git a/a/1.txt b/N1/1.txt index d09b1e4..47c00f9 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -4,35 +4,35 @@ On Sat, Jun 27, 2009 at 10:50:25PM +0900, Minchan Kim wrote: > On Sat, Jun 27, 2009 at 9:54 PM, Johannes Weiner<hannes@cmpxchg.org> wrote: > > On Sat, Jun 27, 2009 at 08:12:49AM +0100, David Howells wrote: > >> -> >> I've managed to bisect things to find the commit that causes the OOMs. It's: +> >> I've managed to bisect things to find the commit that causes the OOMs. A It's: > >> -> >> commit 69c854817566db82c362797b4a6521d0b00fe1d8 -> >> Author: MinChan Kim <minchan.kim@gmail.com> -> >> Date: Tue Jun 16 15:32:44 2009 -0700 +> >> A A A commit 69c854817566db82c362797b4a6521d0b00fe1d8 +> >> A A A Author: MinChan Kim <minchan.kim@gmail.com> +> >> A A A Date: A Tue Jun 16 15:32:44 2009 -0700 > >> -> >> vmscan: prevent shrinking of active anon lru list in case of no swap space V3 +> >> A A A A A vmscan: prevent shrinking of active anon lru list in case of no swap space V3 > >> -> >> shrink_zone() can deactivate active anon pages even if we don't have a -> >> swap device. Many embedded products don't have a swap device. So the -> >> deactivation of anon pages is unnecessary. +> >> A A A A A shrink_zone() can deactivate active anon pages even if we don't have a +> >> A A A A A swap device. A Many embedded products don't have a swap device. A So the +> >> A A A A A deactivation of anon pages is unnecessary. > >> -> >> This patch prevents unnecessary deactivation of anon lru pages. But, it -> >> don't prevent aging of anon pages to swap out. +> >> A A A A A This patch prevents unnecessary deactivation of anon lru pages. A But, it +> >> A A A A A don't prevent aging of anon pages to swap out. > >> -> >> Signed-off-by: Minchan Kim <minchan.kim@gmail.com> -> >> Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> -> >> Cc: Johannes Weiner <hannes@cmpxchg.org> -> >> Acked-by: Rik van Riel <riel@redhat.com> -> >> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -> >> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +> >> A A A A A Signed-off-by: Minchan Kim <minchan.kim@gmail.com> +> >> A A A A A Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> +> >> A A A A A Cc: Johannes Weiner <hannes@cmpxchg.org> +> >> A A A A A Acked-by: Rik van Riel <riel@redhat.com> +> >> A A A A A Signed-off-by: Andrew Morton <akpm@linux-foundation.org> +> >> A A A A A Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> > >> -> >> This exhibits the problem. The previous commit: +> >> This exhibits the problem. A The previous commit: > >> -> >> commit 35282a2de4e5e4e173ab61aa9d7015886021a821 -> >> Author: Brice Goglin <Brice.Goglin@ens-lyon.org> -> >> Date: Tue Jun 16 15:32:43 2009 -0700 +> >> A A A commit 35282a2de4e5e4e173ab61aa9d7015886021a821 +> >> A A A Author: Brice Goglin <Brice.Goglin@ens-lyon.org> +> >> A A A Date: A Tue Jun 16 15:32:43 2009 -0700 > >> -> >> migration: only migrate_prep() once per move_pages() +> >> A A A A A migration: only migrate_prep() once per move_pages() > >> > >> survives 16 iterations of the LTP syscall testsuite without exhibiting the > >> problem. @@ -44,14 +44,14 @@ On Sat, Jun 27, 2009 at 10:50:25PM +0900, Minchan Kim wrote: > > --- a/mm/vmscan.c > > +++ b/mm/vmscan.c > > @@ -1570,7 +1570,7 @@ static void shrink_zone(int priority, struct zone *zone, -> > * Even if we did not try to evict anon pages at all, we want to -> > * rebalance the anon lru active/inactive ratio. -> > */ -> > - if (inactive_anon_is_low(zone, sc)) -> > + if (inactive_anon_is_low(zone, sc) && nr_swap_pages > 0) -> > shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0); +> > A A A A * Even if we did not try to evict anon pages at all, we want to +> > A A A A * rebalance the anon lru active/inactive ratio. +> > A A A A */ +> > - A A A if (inactive_anon_is_low(zone, sc)) +> > + A A A if (inactive_anon_is_low(zone, sc) && nr_swap_pages > 0) +> > A A A A A A A A shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0); > > -> > throttle_vm_writeout(sc->gfp_mask); +> > A A A A throttle_vm_writeout(sc->gfp_mask); > > > > When this was discussed, I think we missed that nr_swap_pages can > > actually get zero on swap systems as well and this should have been @@ -66,3 +66,9 @@ With a heavy multiprocess anon load, direct reclaimers will likely reuse the reclaimed pages for anon mappings, so you have a handful of processes shuffling pages on the active list and only one thread that tries to balance. I can imagine that it can not keep up for long. + +-- +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/ . +Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index aa39625..80a333e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -32,35 +32,35 @@ "> On Sat, Jun 27, 2009 at 9:54 PM, Johannes Weiner<hannes@cmpxchg.org> wrote:\n" "> > On Sat, Jun 27, 2009 at 08:12:49AM +0100, David Howells wrote:\n" "> >>\n" - "> >> I've managed to bisect things to find the commit that causes the OOMs. \302\240It's:\n" + "> >> I've managed to bisect things to find the commit that causes the OOMs. A It's:\n" "> >>\n" - "> >> \302\240 \302\240 \302\240 commit 69c854817566db82c362797b4a6521d0b00fe1d8\n" - "> >> \302\240 \302\240 \302\240 Author: MinChan Kim <minchan.kim@gmail.com>\n" - "> >> \302\240 \302\240 \302\240 Date: \302\240 Tue Jun 16 15:32:44 2009 -0700\n" + "> >> A A A commit 69c854817566db82c362797b4a6521d0b00fe1d8\n" + "> >> A A A Author: MinChan Kim <minchan.kim@gmail.com>\n" + "> >> A A A Date: A Tue Jun 16 15:32:44 2009 -0700\n" "> >>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 vmscan: prevent shrinking of active anon lru list in case of no swap space V3\n" + "> >> A A A A A vmscan: prevent shrinking of active anon lru list in case of no swap space V3\n" "> >>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 shrink_zone() can deactivate active anon pages even if we don't have a\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 swap device. \302\240Many embedded products don't have a swap device. \302\240So the\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 deactivation of anon pages is unnecessary.\n" + "> >> A A A A A shrink_zone() can deactivate active anon pages even if we don't have a\n" + "> >> A A A A A swap device. A Many embedded products don't have a swap device. A So the\n" + "> >> A A A A A deactivation of anon pages is unnecessary.\n" "> >>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 This patch prevents unnecessary deactivation of anon lru pages. \302\240But, it\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 don't prevent aging of anon pages to swap out.\n" + "> >> A A A A A This patch prevents unnecessary deactivation of anon lru pages. A But, it\n" + "> >> A A A A A don't prevent aging of anon pages to swap out.\n" "> >>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 Signed-off-by: Minchan Kim <minchan.kim@gmail.com>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 Cc: Johannes Weiner <hannes@cmpxchg.org>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 Acked-by: Rik van Riel <riel@redhat.com>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n" + "> >> A A A A A Signed-off-by: Minchan Kim <minchan.kim@gmail.com>\n" + "> >> A A A A A Acked-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>\n" + "> >> A A A A A Cc: Johannes Weiner <hannes@cmpxchg.org>\n" + "> >> A A A A A Acked-by: Rik van Riel <riel@redhat.com>\n" + "> >> A A A A A Signed-off-by: Andrew Morton <akpm@linux-foundation.org>\n" + "> >> A A A A A Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>\n" "> >>\n" - "> >> This exhibits the problem. \302\240The previous commit:\n" + "> >> This exhibits the problem. A The previous commit:\n" "> >>\n" - "> >> \302\240 \302\240 \302\240 commit 35282a2de4e5e4e173ab61aa9d7015886021a821\n" - "> >> \302\240 \302\240 \302\240 Author: Brice Goglin <Brice.Goglin@ens-lyon.org>\n" - "> >> \302\240 \302\240 \302\240 Date: \302\240 Tue Jun 16 15:32:43 2009 -0700\n" + "> >> A A A commit 35282a2de4e5e4e173ab61aa9d7015886021a821\n" + "> >> A A A Author: Brice Goglin <Brice.Goglin@ens-lyon.org>\n" + "> >> A A A Date: A Tue Jun 16 15:32:43 2009 -0700\n" "> >>\n" - "> >> \302\240 \302\240 \302\240 \302\240 \302\240 migration: only migrate_prep() once per move_pages()\n" + "> >> A A A A A migration: only migrate_prep() once per move_pages()\n" "> >>\n" "> >> survives 16 iterations of the LTP syscall testsuite without exhibiting the\n" "> >> problem.\n" @@ -72,14 +72,14 @@ "> > --- a/mm/vmscan.c\n" "> > +++ b/mm/vmscan.c\n" "> > @@ -1570,7 +1570,7 @@ static void shrink_zone(int priority, struct zone *zone,\n" - "> > \302\240 \302\240 \302\240 \302\240 * Even if we did not try to evict anon pages at all, we want to\n" - "> > \302\240 \302\240 \302\240 \302\240 * rebalance the anon lru active/inactive ratio.\n" - "> > \302\240 \302\240 \302\240 \302\240 */\n" - "> > - \302\240 \302\240 \302\240 if (inactive_anon_is_low(zone, sc))\n" - "> > + \302\240 \302\240 \302\240 if (inactive_anon_is_low(zone, sc) && nr_swap_pages > 0)\n" - "> > \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0);\n" + "> > A A A A * Even if we did not try to evict anon pages at all, we want to\n" + "> > A A A A * rebalance the anon lru active/inactive ratio.\n" + "> > A A A A */\n" + "> > - A A A if (inactive_anon_is_low(zone, sc))\n" + "> > + A A A if (inactive_anon_is_low(zone, sc) && nr_swap_pages > 0)\n" + "> > A A A A A A A A shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0);\n" "> >\n" - "> > \302\240 \302\240 \302\240 \302\240throttle_vm_writeout(sc->gfp_mask);\n" + "> > A A A A throttle_vm_writeout(sc->gfp_mask);\n" "> >\n" "> > When this was discussed, I think we missed that nr_swap_pages can\n" "> > actually get zero on swap systems as well and this should have been\n" @@ -93,6 +93,12 @@ "With a heavy multiprocess anon load, direct reclaimers will likely\n" "reuse the reclaimed pages for anon mappings, so you have a handful of\n" "processes shuffling pages on the active list and only one thread that\n" - tries to balance. I can imagine that it can not keep up for long. + "tries to balance. I can imagine that it can not keep up for long.\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" + "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" -29523e7224c0cb2fcaf1108cfa391ea9519c54489dd29f2b3ff0a90a5ae936f9 +55b5b756ba339d4c10ac03942a28a3f9b1fd2763a5292aee9dc39e1b07b27647
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.