1. 21 6月, 2006 1 次提交
  2. 15 6月, 2006 2 次提交
    • A
      [POWERPC] Remove stale 64bit on 32bit kernel code · 227318bb
      Anton Blanchard 提交于
      Remove some stale POWER3/POWER4/970 on 32bit kernel support.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      227318bb
    • P
      powerpc: Use 64k pages without needing cache-inhibited large pages · bf72aeba
      Paul Mackerras 提交于
      Some POWER5+ machines can do 64k hardware pages for normal memory but
      not for cache-inhibited pages.  This patch lets us use 64k hardware
      pages for most user processes on such machines (assuming the kernel
      has been configured with CONFIG_PPC_64K_PAGES=y).  User processes
      start out using 64k pages and get switched to 4k pages if they use any
      non-cacheable mappings.
      
      With this, we use 64k pages for the vmalloc region and 4k pages for
      the imalloc region.  If anything creates a non-cacheable mapping in
      the vmalloc region, the vmalloc region will get switched to 4k pages.
      I don't know of any driver other than the DRM that would do this,
      though, and these machines don't have AGP.
      
      When a region gets switched from 64k pages to 4k pages, we do not have
      to clear out all the 64k HPTEs from the hash table immediately.  We
      use the _PAGE_COMBO bit in the Linux PTE to indicate whether the page
      was hashed in as a 64k page or a set of 4k pages.  If hash_page is
      trying to insert a 4k page for a Linux PTE and it sees that it has
      already been inserted as a 64k page, it first invalidates the 64k HPTE
      before inserting the 4k HPTE.  The hash invalidation routines also use
      the _PAGE_COMBO bit, to determine whether to look for a 64k HPTE or a
      set of 4k HPTEs to remove.  With those two changes, we can tolerate a
      mix of 4k and 64k HPTEs in the hash table, and they will all get
      removed when the address space is torn down.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      bf72aeba
  3. 12 6月, 2006 1 次提交
  4. 11 6月, 2006 1 次提交
  5. 09 6月, 2006 1 次提交
    • B
      [PATCH] powerpc: Fix buglet with MMU hash management · c5cf0e30
      Benjamin Herrenschmidt 提交于
      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: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c5cf0e30
  6. 19 5月, 2006 1 次提交
    • M
      [PATCH] powerpc: Unify mem= handling · 2babf5c2
      Michael Ellerman 提交于
      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: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      2babf5c2
  7. 02 5月, 2006 1 次提交
  8. 28 4月, 2006 1 次提交
    • D
      [PATCH] powerpc: Fix pagetable bloat for hugepages · f10a04c0
      David Gibson 提交于
      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: NPaul Mackerras <paulus@samba.org>
      f10a04c0
  9. 22 4月, 2006 2 次提交
  10. 01 4月, 2006 1 次提交
  11. 29 3月, 2006 2 次提交
  12. 28 3月, 2006 2 次提交
  13. 27 3月, 2006 3 次提交
  14. 23 3月, 2006 1 次提交
  15. 22 3月, 2006 13 次提交
  16. 17 3月, 2006 1 次提交
  17. 16 3月, 2006 1 次提交
    • O
      [PATCH] powerpc: remove duplicate EXPORT_SYMBOLS · 920573bd
      Olaf Hering 提交于
      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: NOlaf Hering <olh@suse.de>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      920573bd
  18. 28 2月, 2006 1 次提交
    • M
      [PATCH] powerpc/iseries: Fix double phys_to_abs bug in htab_bolt_mapping · 56ec6462
      Michael Ellerman 提交于
      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: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      56ec6462
  19. 24 2月, 2006 2 次提交
  20. 10 2月, 2006 1 次提交
  21. 07 2月, 2006 1 次提交