1. 09 Sep, 2012 5 commits
    • Gavin Shan's avatar
      powerpc/eeh: Introduce eeh_pe struct · 968f968f
      Gavin Shan authored
      As defined in PAPR 2.4, Partitionable Endpoint (PE) is an I/O subtree
      that can be treated as a unit for the purposes of partitioning and error
      recovery. Therefore, eeh core should be aware of PE. With eeh_pe struct,
      we can support PE explicitly. Further more, it makes all the stuff much
      more data centralized. Another important reason is for eeh core to support
      multiple platforms. Some of them like pSeries figures out PEs through
      OF nodes while others like powernv have to do that through PCI bus/device
      tree. With explicit PE support, eeh core will be implemented based on
      the centrialized data and platform dependent implementations figure it
      out by their feasible ways.
      
      When the struct is designed, following factors are taken in account:
        * Reflecting the relationships of PEs. PE might have parent
          as well children.
        * Reflecting the association of PE and (eeh) devices.
        * PEs have PHB boundary.
        * PE should have unique address assigned in the corresponding
          PHB domain.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      968f968f
    • Gavin Shan's avatar
      powerpc/eeh: More logs for EEH initialization · 3ea1ae98
      Gavin Shan authored
      The patch adds more logs to EEH initialization functions for
      debugging purpose. Also, the machine type (pSeries) is checked
      in the platform initialization to assure it's the correct platform
      to invoke it.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3ea1ae98
    • Gavin Shan's avatar
      powerpc/eeh: Use slab to allocate eeh devices · 7e4bbaf0
      Gavin Shan authored
      The EEH initialization functions have been postponed until slab/slub
      are ready. So we use slab/slub to allocate the memory chunks for newly
      creatd EEH devices. That would save lots of memory.
      
      The patch also does cleanup to replace "kmalloc" with "kzalloc" so
      that we needn't clear the allocated memory chunk explicitly.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      7e4bbaf0
    • Gavin Shan's avatar
      powerpc/eeh: Move EEH initialization around · 35e5cfe2
      Gavin Shan authored
      Currently, we have 3 phases for EEH initialization on pSeries platform.
      All of them are done through builtin functions: platform initialization,
      EEH device creation, and EEH subsystem enablement. All of them are done
      no later than ppc_md.setup_arch. That means that the slab/slub isn't ready
      yet, so we have to allocate memory chunks on basis of PAGE_SIZE for those
      dynamically created EEH devices. That's pretty expensive.
      
      In order to utilize slab/slub for memory allocation, we have to move the EEH
      initialization functions around, but all of them should be called after slab
      is ready.
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      35e5cfe2
    • Michael Ellerman's avatar
      powerpc: Initialise paca.data_offset with poison · 407821a3
      Michael Ellerman authored
      It's possible for the cpu_possible_mask to change between the time we
      initialise the pacas and the time we setup per_cpu areas.
      
      Obviously impossible cpus shouldn't ever be running, but stranger things
      have happened. So be paranoid and initialise data_offset with a poison
      value in case we don't set it up later.
      
      Based on a patch from Anton Blanchard.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      407821a3
  2. 07 Sep, 2012 10 commits
  3. 06 Sep, 2012 3 commits
  4. 05 Sep, 2012 22 commits