1. 25 1月, 2008 4 次提交
    • M
      slab: partially revert list3 changes · 9c09a95c
      Mel Gorman 提交于
      Partial revert the changes made by 04231b30
      to the kmem_list3 management. On a machine with a memoryless node, this
      BUG_ON was triggering
      
      	static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, int nodeid)
      	{
      		struct list_head *entry;
      		struct slab *slabp;
      		struct kmem_list3 *l3;
      		void *obj;
      		int x;
      
      		l3 = cachep->nodelists[nodeid];
      		BUG_ON(!l3);
      Signed-off-by: NMel Gorman <mel@csn.ul.ie>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Acked-by: NChristoph Lameter <clameter@sgi.com>
      Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Nishanth Aravamudan <nacc@us.ibm.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9c09a95c
    • L
      fix hugepages leak due to pagetable page sharing · c5c99429
      Larry Woodman 提交于
      The shared page table code for hugetlb memory on x86 and x86_64
      is causing a leak.  When a user of hugepages exits using this code
      the system leaks some of the hugepages.
      
      -------------------------------------------------------
      Part of /proc/meminfo just before database startup:
      HugePages_Total:  5500
      HugePages_Free:   5500
      HugePages_Rsvd:      0
      Hugepagesize:     2048 kB
      
      Just before shutdown:
      HugePages_Total:  5500
      HugePages_Free:   4475
      HugePages_Rsvd:      0
      Hugepagesize:     2048 kB
      
      After shutdown:
      HugePages_Total:  5500
      HugePages_Free:   4988
      HugePages_Rsvd:
      0 Hugepagesize:     2048 kB
      ----------------------------------------------------------
      
      The problem occurs durring a fork, in copy_hugetlb_page_range().  It
      locates the dst_pte using huge_pte_alloc().  Since huge_pte_alloc() calls
      huge_pmd_share() it will share the pmd page if can, yet the main loop in
      copy_hugetlb_page_range() does a get_page() on every hugepage.  This is a
      violation of the shared hugepmd pagetable protocol and creates additional
      referenced to the hugepages causing a leak when the unmap of the VMA
      occurs.  We can skip the entire replication of the ptes when the hugepage
      pagetables are shared.  The attached patch skips copying the ptes and the
      get_page() calls if the hugetlbpage pagetable is shared.
      
      [akpm@linux-foundation.org: coding-style cleanups]
      Signed-off-by: NLarry Woodman <lwoodman@redhat.com>
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      Cc: Badari Pulavarty <pbadari@us.ibm.com>
      Cc: Ken Chen <kenchen@google.com>
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c5c99429
    • E
      sysctl: kill binary sysctl KERN_PPC_L2CR · c2f3dabe
      Eric W. Biederman 提交于
      : Stefan Roese <sr@denx.de> said:
      > ppc: 4xx: sysctl table check failed: /kernel/l2cr .1.31 Missing strategy
      >
      > I'm seeing this error message when booting an recent arch/ppc kernel on
      > 4xx platforms (tested on Ocotea and other 4xx platforms). Booting NFS
      > rootfs still works fine, but this message kind of makes me "nervous".
      > This is not seen on 4xx arch/powerpc platforms. Here the bootlog:
      
      Because the data field was never filled and a binary sysctl handler was
      never written this sysctl has never been usable through the sys_sysctl
      interface.  So just remove the binary sysctl number.  Making the kernel
      sanity checks happy.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Reported-by: NStefan Roese <sr@denx.de>
      Cc: Josh Boyer <jwboyer@gmail.com>
      Cc: Wolfgang Denk <wd@denx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c2f3dabe
    • A
      lockdep: fix kernel crash on module unload · fabe874a
      Arjan van de Ven 提交于
      Michael Wu noticed in his lkml post at
      
          http://marc.info/?l=linux-kernel&m=119396182726091&w=2
      
      that certain wireless drivers ended up having their name in module
      memory, which would then crash the kernel on module unload.
      
      The patch he proposed was a bit clumsy in that it increased the size of
      a lockdep entry significantly; the patch below tries another approach,
      it checks, on module teardown, if the name of a class is in module space
      and then zaps the class.  This is very similar to what we already do
      with keys that are in module space.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fabe874a
  2. 24 1月, 2008 8 次提交
  3. 23 1月, 2008 19 次提交
  4. 22 1月, 2008 9 次提交