Skip to content
  1. Jun 12, 2006
  2. Jun 11, 2006
  3. Jun 09, 2006
    • Benjamin Herrenschmidt's avatar
      [PATCH] powerpc: Fix buglet with MMU hash management · c5cf0e30
      Benjamin Herrenschmidt authored
      
      
      Our MMU hash management code would not set the "C" bit (changed bit) in
      the hardware PTE when updating a RO PTE into a RW PTE. That would cause
      the hardware to possibly to a write back to the hash table to set it on
      the first store access, which in addition to being a performance issue,
      might also hit a bug when running with native hash management (non-HV)
      as our code is specifically optimized for the case where no write back
      happens.
      
      Thus there is a very small therocial window were a hash PTE can become
      corrupted if that HPTE has just been upgraded to read write, a store
      access happens on it, and that races with another processor evicting
      that same slot. Since eviction (caused by an almost full hash) is
      extremely rare, the bug is very unlikely to happen fortunately.
      
      This fixes by allowing the updating of the protection bits in the native
      hash handling to also set (but not clear) the "C" bit, and, in order to
      also improve performances in the general case, by always setting that
      bit on newly inserted hash PTE so that writeback really never happens.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      c5cf0e30
  4. May 19, 2006
    • Michael Ellerman's avatar
      [PATCH] powerpc: Unify mem= handling · 2babf5c2
      Michael Ellerman authored
      
      
      We currently do mem= handling in three seperate places. And as benh pointed out
      I wrote two of them. Now that we parse command line parameters earlier we can
      clean this mess up.
      
      Moving the parsing out of prom_init means the device tree might be allocated
      above the memory limit. If that happens we'd have to move it. As it happens
      we already have logic to do that for kdump, so just genericise it.
      
      This also means we might have reserved regions above the memory limit, if we
      do the bootmem allocator will blow up, so we have to modify
      lmb_enforce_memory_limit() to truncate the reserves as well.
      
      Tested on P5 LPAR, iSeries, F50, 44p. Tested moving device tree on P5 and
      44p and F50.
      
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      2babf5c2
  5. May 02, 2006
  6. Apr 28, 2006
    • David Gibson's avatar
      [PATCH] powerpc: Fix pagetable bloat for hugepages · f10a04c0
      David Gibson authored
      
      
      At present, ARCH=powerpc kernels can waste considerable space in
      pagetables when making large hugepage mappings.  Hugepage PTEs go in
      PMD pages, but each PMD page maps 256M and so contains only 16
      hugepage PTEs (128 bytes of data), but takes up a 1024 byte
      allocation.  With CONFIG_PPC_64K_PAGES enabled (64k base page size),
      the situation is worse.  Now hugepage PTEs are at the PTE page level
      (also mapping 256M), so we store 16 hugepage PTEs in a 64k allocation.
      
      The PowerPC MMU already means that any 256M region is either all
      hugepage, or all normal pages.  Thus, with some care, we can use a
      different allocation for the hugepage PTE tables and only allocate the
      128 bytes necessary.
      
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      f10a04c0
  7. Apr 22, 2006
  8. Apr 01, 2006
  9. Mar 29, 2006
  10. Mar 28, 2006
  11. Mar 27, 2006
  12. Mar 26, 2006
  13. Mar 23, 2006
  14. Mar 22, 2006
  15. Mar 17, 2006
  16. Mar 16, 2006
    • Olaf Hering's avatar
      [PATCH] powerpc: remove duplicate EXPORT_SYMBOLS · 920573bd
      Olaf Hering authored
      
      
      remove warnings when building a 64bit kernel.
      smp_call_function triggers also with 32bit kernel.
      
      WARNING: vmlinux: duplicate symbol 'smp_call_function' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:164:EXPORT_SYMBOL(smp_call_function);
      arch/powerpc/kernel/smp.c:300:EXPORT_SYMBOL(smp_call_function);
      
      WARNING: vmlinux: duplicate symbol 'ioremap' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:113:EXPORT_SYMBOL(ioremap);
      arch/powerpc/mm/pgtable_64.c:321:EXPORT_SYMBOL(ioremap);
      
      WARNING: vmlinux: duplicate symbol '__ioremap' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:117:EXPORT_SYMBOL(__ioremap);
      arch/powerpc/mm/pgtable_64.c:322:EXPORT_SYMBOL(__ioremap);
      
      WARNING: vmlinux: duplicate symbol 'iounmap' previous definition was in vmlinux
      arch/powerpc/kernel/ppc_ksyms.c:118:EXPORT_SYMBOL(iounmap);
      arch/powerpc/mm/pgtable_64.c:323:EXPORT_SYMBOL(iounmap);
      
      Signed-off-by: default avatarOlaf Hering <olh@suse.de>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      920573bd
  17. Feb 28, 2006
    • Michael Ellerman's avatar
      [PATCH] powerpc/iseries: Fix double phys_to_abs bug in htab_bolt_mapping · 56ec6462
      Michael Ellerman authored
      
      
      Before the merge I updated create_pte_mapping() to work for iSeries, by
      calling iSeries_hpte_bolt_or_insert. (4c55130b)
      
      Later we changed iSeries_hpte_insert to cope with the bolting case, and called
      that instead from create_pte_mapping() (which was renamed to htab_bolt_mapping)
      (3c726f8d).
      
      Unfortunately that change introduced a subtle bug, where we pass an absolute
      address to iSeries_hpte_insert() where it expects a physical address. This
      leads to us calling phys_to_abs() twice on the physical address, which is
      seriously bogus.
      
      This only causes a problem if the absolute address from the first translation
      can be looked up again in the chunk_map, which depends on the size and layout
      of memory. I've seen it fail on one box, but not others.
      
      The minimal fix is to pass the physical address to iSeries_hpte_insert(). For
      2.6.17 we should make phys_to_abs() BUG if we try to double-translate an
      address.
      
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      56ec6462
  18. Feb 24, 2006
  19. Feb 10, 2006
  20. Feb 07, 2006
Loading