1. 09 1月, 2006 7 次提交
  2. 30 12月, 2005 1 次提交
  3. 09 12月, 2005 2 次提交
    • D
      [PATCH] powerpc: Fix SLB flushing path in hugepage · 23ed6cb9
      David Gibson 提交于
      On ppc64, when opening a new hugepage region, we need to make sure any
      old normal-page SLBs for the area are flushed on all CPUs.  There was
      a bug in this logic - after putting the new hugepage area masks into
      the thread structure, we copied it into the paca (read by the SLB miss
      handler) only on one CPU, not on all.  This could cause incorrect SLB
      entries to be loaded when a multithreaded program was running
      simultaneously on several CPUs.  This patch corrects the error,
      copying the context information into the PACA on all CPUs using the mm
      in question before flushing any existing SLB entries.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      23ed6cb9
    • D
      [PATCH] powerpc: Add missing icache flushes for hugepages · cbf52afd
      David Gibson 提交于
      On most powerpc CPUs, the dcache and icache are not coherent so
      between writing and executing a page, the caches must be flushed.
      Userspace programs assume pages given to them by the kernel are icache
      clean, so we must do this flush between the kernel clearing a page and
      it being mapped into userspace for execute.  We were not doing this
      for hugepages, this patch corrects the situation.
      
      We use the same lazy mechanism as we use for normal pages, delaying
      the flush until userspace actually attempts to execute from the page
      in question.
      
      Tested on G5.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      cbf52afd
  4. 08 12月, 2005 2 次提交
  5. 05 12月, 2005 1 次提交
  6. 25 11月, 2005 1 次提交
    • D
      [PATCH] powerpc: More hugepage boundary case fixes · 9a94c579
      David Gibson 提交于
      Blah.  The patch [0] I recently sent fixing errors with
      in_hugepage_area() and prepare_hugepage_range() for powerpc itself has
      an off-by-one bug.  Furthermore, the related functions
      touches_hugepage_*_range() and within_hugepage_*_range() are also
      buggy.  Some of the bugs, like those addressed in [0] originated with
      commit 7d24f0b8 where we tweaked the
      semantics of where hugepages are allowed.  Other bugs have been there
      essentially forever, and are due to the undefined behaviour of '<<'
      with shift counts greater than the type width (LOW_ESID_MASK could
      return non-zero for high ranges with the right congruences).
      
      The good news is that I now have a testsuite which should pick up
      things like this if they creep in again.
      
      [0] "powerpc-fix-for-hugepage-areas-straddling-4gb-boundary"
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      9a94c579
  7. 24 11月, 2005 3 次提交
  8. 19 11月, 2005 1 次提交
    • D
      [PATCH] powerpc: Remove imalloc.h · 800fc3ee
      David Gibson 提交于
      asm-ppc64/imalloc.h is only included from files in arch/powerpc/mm.
      We already have a header for mm local definitions,
      arch/powerpc/mm/mmu_decl.h.  Thus, this patch moves the contents of
      imalloc.h into mmu_decl.h.  The only exception are the definitions of
      PHBS_IO_BASE, IMALLOC_BASE and IMALLOC_END.  Those are moved into
      pgtable.h, next to similar definitions of VMALLOC_START and
      VMALLOC_SIZE.
      
      Built for multiplatform 32bit and 64bit (ARCH=powerpc).
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      800fc3ee
  9. 16 11月, 2005 2 次提交
  10. 14 11月, 2005 1 次提交
  11. 11 11月, 2005 3 次提交
  12. 10 11月, 2005 4 次提交
  13. 08 11月, 2005 4 次提交
  14. 07 11月, 2005 6 次提交
    • B
      [PATCH] ppc: Fix ppc32 build after 64K pages · 863c84b9
      Benjamin Herrenschmidt 提交于
      Oops, some last minute changes caused the 64K pages patch to break ppc32
      build, this fixes it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      863c84b9
    • D
      [PATCH] ppc64: Fix bug in SLB miss handler for hugepages · 7d24f0b8
      David Gibson 提交于
      This patch, however, should be applied on top of the 64k-page-size patch to
      fix some problems with hugepage (some pre-existing, another introduced by
      this patch).
      
      The patch fixes a bug in the SLB miss handler for hugepages on ppc64
      introduced by the dynamic hugepage patch (commit id
      c594adad) due to a misunderstanding of the
      srd instruction's behaviour (mea culpa).  The problem arises when a 64-bit
      process maps some hugepages in the low 4GB of the address space (unusual).
      In this case, as well as the 256M segment in question being marked for
      hugepages, other segments at 32G intervals will be incorrectly marked for
      hugepages.
      
      In the process, this patch tweaks the semantics of the hugepage bitmaps to
      be more sensible.  Previously, an address below 4G was marked for hugepages
      if the appropriate segment bit in the "low areas" bitmask was set *or* if
      the low bit in the "high areas" bitmap was set (which would mark all
      addresses below 1TB for hugepage).  With this patch, any given address is
      governed by a single bitmap.  Addresses below 4GB are marked for hugepage
      if and only if their bit is set in the "low areas" bitmap (256M
      granularity).  Addresses between 4GB and 1TB are marked for hugepage iff
      the low bit in the "high areas" bitmap is set.  Higher addresses are marked
      for hugepage iff their bit in the "high areas" bitmap is set (1TB
      granularity).
      
      To avoid conflicts, this patch must be applied on top of BenH's pending
      patch for 64k base page size [0].  As such, this patch also addresses a
      hugepage problem introduced by that patch.  That patch allows hugepages of
      1MB in size on hardware which supports it, however, that won't work when
      using 4k pages (4 level pagetable), because in that case hugepage PTEs are
      stored at the PMD level, and each PMD entry maps 2MB.  This patch simply
      disallows hugepages in that case (we can do something cleverer to re-enable
      them some other day).
      
      Built, booted, and a handful of hugepage related tests passed on POWER5
      LPAR (both ARCH=powerpc and ARCH=ppc64).
      
      [0] http://gate.crashing.org/~benh/ppc64-64k-pages.diffSigned-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7d24f0b8
    • P
      powerpc: Various UP build fixes · 2249ca9d
      Paul Mackerras 提交于
      Mostly this involves adding #include <asm/smp.h>, since that defines
      things like boot_cpuid[_phys] and [gs]et_hard_smp_processor_id, which
      are SMP-related but still needed on UP.  This incorporates fixes
      posted by Olof Johansson and Heikki Lindholm.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      2249ca9d
    • D
      [PATCH] powerpc: Kill ppcdebug · dcad47fc
      David Gibson 提交于
      The ancient ppcdebug/PPCDBG mechanism is now only used in two places.
      First, in the hash setup code, one of the bits allows the size of the
      hash table to be reduced by a factor of 8 - which would be better
      accomplished with a command line option for that purpose.  The other
      was a bunch of bus walking related messages in the iSeries code, which
      would seem to be insufficient reason to keep the mechanism.
      
      This patch removes the last traces of this mechanism.
      
      Built and booted on iSeries and pSeries POWER5 LPAR (ARCH=powerpc).
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      dcad47fc
    • O
      [PATCH] powerpc: Nicer printing of address at oops · 723925b7
      Olof Johansson 提交于
      Add nicer printing of faulting address on unresolvable kernel faults.
      
      Makes life a little easier for those who don't know how to decode our
      register contents at oops time.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      723925b7
    • B
      [PATCH] ppc64: support 64k pages · 3c726f8d
      Benjamin Herrenschmidt 提交于
      Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel
      base page size to 64K.  The resulting kernel still boots on any
      hardware.  On current machines with 4K pages support only, the kernel
      will maintain 16 "subpages" for each 64K page transparently.
      
      Note that while real 64K capable HW has been tested, the current patch
      will not enable it yet as such hardware is not released yet, and I'm
      still verifying with the firmware architects the proper to get the
      information from the newer hypervisors.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3c726f8d
  15. 31 10月, 2005 2 次提交