1. 09 12月, 2009 8 次提交
    • J
      powerpc/8xx: Invalidate non present TLBs · 5efab4a0
      Joakim Tjernlund 提交于
      8xx sometimes need to load a invalid/non-present TLBs in
      it DTLB asm handler.
      
      These must be invalidated separaly as linux mm don't.
      Signed-off-by: NJoakim Tjernlund <Joakim.Tjernlund@transmode.se>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      5efab4a0
    • G
      powerpc/pseries: Serialize cpu hotplug operations during deactivate Vs deallocate · 51badebd
      Gautham R Shenoy 提交于
      Currently the cpu-allocation/deallocation process comprises of two steps:
      - Set the indicators and to update the device tree with DLPAR node
        information.
      
      - Online/offline the allocated/deallocated CPU.
      
      This is achieved by writing to the sysfs tunables "probe" during allocation
      and "release" during deallocation.
      
      At the sametime, the userspace can independently online/offline the CPUs of
      the system using the sysfs tunable "online".
      
      It is quite possible that when a userspace tool offlines a CPU
      for the purpose of deallocation and is in the process of updating the device
      tree, some other userspace tool could bring the CPU back online by writing to
      the "online" sysfs tunable thereby causing the deallocate process to fail.
      
      The solution to this is to serialize writes to the "probe/release" sysfs
      tunable with the writes to the "online" sysfs tunable.
      
      This patch employs a mutex to provide this serialization, which is a no-op on
      all architectures except PPC_PSERIES
      Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
      Acked-by: NVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      51badebd
    • G
      pseries/pseries: Add code to online/offline CPUs of a DLPAR node · b6db63d1
      Gautham R Shenoy 提交于
      Currently the cpu-allocation/deallocation on pSeries is a
      two step process from the Userspace.
      
      - Set the indicators and update the device tree by writing to the sysfs
        tunable "probe" during allocation and "release" during deallocation.
      - Online / Offline the CPUs of the allocated/would_be_deallocated node by
        writing to the sysfs tunable "online".
      
      This patch adds kernel code to online/offline the CPUs soon_after/just_before
      they have been allocated/would_be_deallocated. This way, the userspace tool
      that performs DLPAR operations would only have to deal with one set of sysfs
      tunables namely "probe" and release".
      Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NNathan Fontenot <nfont@austin.ibm.com>
      Acked-by: NVaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b6db63d1
    • V
      powerpc: stop_this_cpu: remove the cpu from the online map. · 8389b37d
      Valentine Barshak 提交于
      Remove the CPU from the online map to prevent smp_call_function
      from sending messages to a stopped CPU.
      Signed-off-by: NValentine Barshak <vbarshak@ru.mvista.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8389b37d
    • N
      powerpc/pseries: Add kernel based CPU DLPAR handling · 1a8061c4
      Nathan Fontenot 提交于
      This patch adds the specific routines to probe and release (add and remove)
      cpu resource for the powerpc pseries platform and registers these handlers
      with the ppc_md callout structure.
      Signed-off-by: NNathan Fontenot <nfont@austin.ibm.com>
      Acked-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      1a8061c4
    • N
      sysfs/cpu: Add probe/release files · 12633e80
      Nathan Fontenot 提交于
      Version 3 of this patch is updated with documentation added to
      Documentation/ABI.  There are no changes to any of the C code from v2
      of the patch.
      
      In order to support kernel DLPAR of CPU resources we need to provide an
      interface to add (probe) and remove (release) the resource from the system.
      This patch Creates new generic probe and release sysfs files to facilitate
      cpu probe/release.  The probe/release interface provides for allowing each
      arch to supply their own routines for implementing the backend of adding
      and removing cpus to/from the system.
      
      This also creates the powerpc specific stubs to handle the arch callouts
      from writes to the sysfs files.
      
      The creation and use of these files is regulated by the
      CONFIG_ARCH_CPU_PROBE_RELEASE option so that only architectures that need the
      capability will have the files created.
      Signed-off-by: NNathan Fontenot <nfont@austin.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      12633e80
    • N
      powerpc/pseries: Kernel DLPAR Infrastructure · ab519a01
      Nathan Fontenot 提交于
      The Dynamic Logical Partitioning capabilities of the powerpc pseries platform
      allows for the addition and removal of resources (i.e. CPU's, memory, and PCI
      devices) from a partition. The removal of a resource involves
      removing the resource's node from the device tree and then returning the
      resource to firmware via the rtas set-indicator call.  To add a resource, it
      is first obtained from firmware via the rtas set-indicator call and then a
      new device tree node is created using the ibm,configure-coinnector rtas call
      and added to the device tree.
      
      This patch provides the kernel DLPAR infrastructure in a new filed named
      dlpar.c.  The functionality provided is for acquiring and releasing a resource
      from firmware and the parsing of information returned from the
      ibm,configure-connector rtas call.  Additionally this exports the pSeries
      reconfiguration notifier chain so that it can be invoked when device tree
      updates are made.
      Signed-off-by: NNathan Fontenot <nfont@austin.ibm.com>
      Acked-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ab519a01
    • B
      powerpc/macio: Rework hotplug media bay support · d58b0c39
      Benjamin Herrenschmidt 提交于
      The hotplug mediabay has tendrils deep into drivers/ide code
      which makes a libata port reather difficult. In addition it's
      ugly and could be done better.
      
      This reworks the interface between the mediabay and the rest
      of the world so that:
      
         - Any macio_driver can now have a mediabay_event callback
      which will be called when that driver sits on a mediabay and
      it's been either plugged or unplugged. The device type is
      passed as an argument. We can now move all the IDE cruft
      into the IDE driver itself
      
         - A check_media_bay() function can be used to take a peek
      at the type of device currently in the bay if any, a cleaner
      variant of the previous function with the same name.
      
         - A pair of lock/unlock functions are exposed to allow the
      IDE driver to block the hotplug callbacks during the initial
      setup and probing of the bay in order to avoid nasty race
      conditions.
      
         - The mediabay code no longer needs to spin on the status
      register of the IDE interface when it detects an IDE device,
      this is done just fine by the IDE code itself
      
      Overall, less code, simpler, and allows for another driver
      than our old drivers/ide based one.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      d58b0c39
  2. 08 12月, 2009 4 次提交
  3. 04 12月, 2009 2 次提交
  4. 02 12月, 2009 1 次提交
  5. 27 11月, 2009 2 次提交
    • D
      powerpc/mm: Fix bug in gup_hugepd() · 39adfa54
      David Gibson 提交于
      Commit a4fe3ce7 introduced a new
      get_user_pages() path for hugepages on powerpc.  Unfortunately, there
      is a bug in it's loop logic, which can cause it to overrun the end of
      the intended region.  This came about by copying the logic from the
      normal page path, which assumes the address and end parameters have
      been pagesize aligned at the top-level.  Since they're not *hugepage*
      size aligned, the simplistic logic could step over the end of the gup
      region without triggering the loop end condition.
      
      This patch fixes the bug by using the technique that the normal page
      path uses in levels above the lowest to truncate the ending address to
      something we know we'll match with.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      39adfa54
    • D
      powerpc/mm: Fix bug in pagetable cache cleanup with CONFIG_PPC_SUBPAGE_PROT · c045256d
      David Gibson 提交于
      Commit a0668cdc cleans up the handling
      of kmem_caches for allocating various levels of pagetables.
      Unfortunately, it conflicts badly with CONFIG_PPC_SUBPAGE_PROT, due to
      the latter's cleverly hidden technique of adding some extra allocation
      space to the top level page directory to store the extra information
      it needs.
      
      Since that extra allocation really doesn't fit into the cleaned up
      page directory allocating scheme, this patch alters
      CONFIG_PPC_SUBPAGE_PROT to instead allocate its struct
      subpage_prot_table as part of the mm_context_t.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      c045256d
  6. 24 11月, 2009 13 次提交
  7. 21 11月, 2009 7 次提交
  8. 16 11月, 2009 1 次提交
  9. 14 11月, 2009 1 次提交
  10. 13 11月, 2009 1 次提交