1. 22 Sep, 2009 20 commits
  2. 05 Sep, 2009 1 commit
    • Mel Gorman's avatar
      page-allocator: always change pageblock ownership when anti-fragmentation is disabled · dd5d241e
      Mel Gorman authored
      On low-memory systems, anti-fragmentation gets disabled as fragmentation
      cannot be avoided on a sufficiently large boundary to be worthwhile.  Once
      disabled, there is a period of time when all the pageblocks are marked
      MOVABLE and the expectation is that they get marked UNMOVABLE at each call
      to __rmqueue_fallback().
      
      However, when MAX_ORDER is large the pageblocks do not change ownership
      because the normal criteria are not met.  This has the effect of
      prematurely breaking up too many large contiguous blocks.  This is most
      serious on NOMMU systems which depend on high-order allocations to boot.
      This patch causes pageblocks to change ownership on every fallback when
      anti-fragmentation is disabled.  This prevents the large blocks being
      prematurely broken up.
      
      This is a fix to commit 49255c61
      
       [page
      allocator: move check for disabled anti-fragmentation out of fastpath] and
      the problem affects 2.6.31-rc8.
      Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
      Tested-by: default avatarPaul Mundt <lethal@linux-sh.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Acked-by: default avatarGreg Ungerer <gerg@snapgear.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dd5d241e
  3. 18 Aug, 2009 1 commit
    • Bo Liu's avatar
      mm: build_zonelists(): move clear node_load[] to __build_all_zonelists() · 7f9cfb31
      Bo Liu authored
      
      
      If node_load[] is cleared everytime build_zonelists() is
      called,node_load[] will have no help to find the next node that should
      appear in the given node's fallback list.
      
      Because of the bug, zonelist's node_order is not calculated as expected.
      This bug affects on big machine, which has asynmetric node distance.
      
      [synmetric NUMA's node distance]
           0    1    2
      0   10   12   12
      1   12   10   12
      2   12   12   10
      
      [asynmetric NUMA's node distance]
           0    1    2
      0   10   12   20
      1   12   10   14
      2   20   14   10
      
      This (my bug) is very old but no one has reported this for a long time.
      Maybe because the number of asynmetric NUMA is very small and they use
      cpuset for customizing node memory allocation fallback.
      
      [akpm@linux-foundation.org: fix CONFIG_NUMA=n build]
      Signed-off-by: default avatarBo Liu <bo-liu@hotmail.com>
      Reviewed-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7f9cfb31
  4. 29 Jul, 2009 3 commits
  5. 10 Jul, 2009 1 commit
  6. 09 Jul, 2009 1 commit
  7. 06 Jul, 2009 1 commit
    • Kevin Cernekee's avatar
      Fix virt_to_phys() warnings · 5bfd7560
      Kevin Cernekee authored
      
      
      These warnings were observed on MIPS32 using 2.6.31-rc1 and gcc-4.2.0:
      
      mm/page_alloc.c: In function 'alloc_pages_exact':
      mm/page_alloc.c:1986: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast
      
      drivers/usb/mon/mon_bin.c: In function 'mon_alloc_buff':
      drivers/usb/mon/mon_bin.c:1264: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast
      
      [akpm@linux-foundation.org: fix kernel/perf_counter.c too]
      Signed-off-by: default avatarKevin Cernekee <cernekee@gmail.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5bfd7560
  8. 30 Jun, 2009 1 commit
    • Yinghai Lu's avatar
      x86: only clear node_states for 64bit · 66918dcd
      Yinghai Lu authored
      Nathan reported that
      
      | commit 73d60b7f
      
      
      | Author: Yinghai Lu <yinghai@kernel.org>
      | Date:   Tue Jun 16 15:33:00 2009 -0700
      |
      |    page-allocator: clear N_HIGH_MEMORY map before we set it again
      |
      |    SRAT tables may contains nodes of very small size.  The arch code may
      |    decide to not activate such a node.  However, currently the early boot
      |    code sets N_HIGH_MEMORY for such nodes.  These nodes therefore seem to be
      |    active although these nodes have no present pages.
      |
      |    For 64bit N_HIGH_MEMORY == N_NORMAL_MEMORY, so that works for 64 bit too
      
      unintentionally and incorrectly clears the cpuset.mems cgroup attribute on
      an i386 kvm guest, meaning that cpuset.mems can not be used.
      
      Fix this by only clearing node_states[N_NORMAL_MEMORY] for 64bit only.
      and need to do save/restore for that in find_zone_movable_pfn
      Reported-by: default avatarNathan Lynch <ntl@pobox.com>
      Tested-by: default avatarNathan Lynch <ntl@pobox.com>
      Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@elte.hu>,
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66918dcd
  9. 24 Jun, 2009 1 commit
  10. 23 Jun, 2009 1 commit
  11. 20 Jun, 2009 1 commit
  12. 18 Jun, 2009 1 commit
  13. 16 Jun, 2009 7 commits