1. 16 5月, 2006 3 次提交
  2. 02 5月, 2006 3 次提交
    • J
      [PATCH] spufs: fix for CONFIG_NUMA · bed120c6
      Joel H Schopp 提交于
      Based on an older patch from  Mike Kravetz <kravetz@us.ibm.com>
      
      We need to have a mem_map for high addresses in order to make fops->no_page
      work on spufs mem and register files.  So far, we have used the
      memory_present() function during early bootup, but that did not work when
      CONFIG_NUMA was enabled.
      
      We now use the __add_pages() function to add the mem_map when loading the
      spufs module, which is a lot nicer.
      Signed-off-by: NArnd Bergmann <arnd.bergmann@de.ibm.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bed120c6
    • M
      [PATCH] sparsemem interaction with memory add bug fixes · 46a66eec
      Mike Kravetz 提交于
      This patch fixes two bugs with the way sparsemem interacts with memory add.
      They are:
      
      - memory leak if memmap for section already exists
      
      - calling alloc_bootmem_node() after boot
      
      These bugs were discovered and a first cut at the fixes were provided by
      Arnd Bergmann <arnd@arndb.de> and Joel Schopp <jschopp@us.ibm.com>.
      Signed-off-by: NMike Kravetz <kravetz@us.ibm.com>
      Signed-off-by: NJoel Schopp <jschopp@austin.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      46a66eec
    • C
      [PATCH] page migration: Fix fallback behavior for dirty pages · 4c28f811
      Christoph Lameter 提交于
      Currently we check PageDirty() in order to make the decision to swap out
      the page.  However, the dirty information may be only be contained in the
      ptes pointing to the page.  We need to first unmap the ptes before checking
      for PageDirty().  If unmap is successful then the page count of the page
      will also be decreased so that pageout() works properly.
      
      This is a fix necessary for 2.6.17.  Without this fix we may migrate dirty
      pages for filesystems without migration functions.  Filesystems may keep
      pointers to dirty pages.  Migration of dirty pages can result in the
      filesystem keeping pointers to freed pages.
      
      Unmapping is currently not be separated out from removing all the
      references to a page and moving the mapping.  Therefore try_to_unmap will
      be called again in migrate_page() if the writeout is successful.  However,
      it wont do anything since the ptes are already removed.
      
      The coming updates to the page migration code will restructure the code
      so that this is no longer necessary.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4c28f811
  3. 29 4月, 2006 1 次提交
  4. 27 4月, 2006 1 次提交
  5. 26 4月, 2006 1 次提交
  6. 23 4月, 2006 1 次提交
    • L
      [PATCH] add migratepage address space op to shmem · 304dbdb7
      Lee Schermerhorn 提交于
      Basic problem: pages of a shared memory segment can only be migrated once.
      
      In 2.6.16 through 2.6.17-rc1, shared memory mappings do not have a
      migratepage address space op.  Therefore, migrate_pages() falls back to
      default processing.  In this path, it will try to pageout() dirty pages.
      Once a shared memory page has been migrated it becomes dirty, so
      migrate_pages() will try to page it out.  However, because the page count
      is 3 [cache + current + pte], pageout() will return PAGE_KEEP because
      is_page_cache_freeable() returns false.  This will abort all subsequent
      migrations.
      
      This patch adds a migratepage address space op to shared memory segments to
      avoid taking the default path.  We use the "migrate_page()" function
      because it knows how to migrate dirty pages.  This allows shared memory
      segment pages to migrate, subject to other conditions such as # pte's
      referencing the page [page_mapcount(page)], when requested.
      
      I think this is safe.  If we're migrating a shared memory page, then we
      found the page via a page table, so it must be in memory.
      
      Can be verified with memtoy and the shmem-mbind-test script, both
      available at:  http://free.linux.hp.com/~lts/Tools/Signed-off-by: NLee Schermerhorn <lee.schermerhorn@hp.com>
      Acked-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      304dbdb7
  7. 20 4月, 2006 5 次提交
  8. 18 4月, 2006 1 次提交
  9. 11 4月, 2006 11 次提交
  10. 10 4月, 2006 1 次提交
    • A
      [PATCH] x86_64: Handle empty PXMs that only contain hotplug memory · a8062231
      Andi Kleen 提交于
      The node setup code would try to allocate the node metadata in the node
      itself, but that fails if there is no memory in there.
      
      This can happen with memory hotplug when the hotplug area defines an so
      far empty node.
      
      Now use bootmem to try to allocate the mem_map in other nodes.
      
      And if it fails don't panic, but just ignore the node.
      
      To make this work I added a new __alloc_bootmem_nopanic function that
      does what its name implies.
      
      TBD should try to use nearby nodes here.  Currently we just use any.
      It's hard to do it better because bootmem doesn't have proper fallback
      lists yet.
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a8062231
  11. 02 4月, 2006 3 次提交
  12. 01 4月, 2006 8 次提交
  13. 29 3月, 2006 1 次提交