1. 10 9月, 2012 4 次提交
    • G
      powerpc/eeh: Create PEs for PHBs · 55037d17
      Gavin Shan 提交于
      For one particular PE, it's only meaningful in the ancestor PHB
      domain. Therefore, each PHB should have its own PE hierarchy tree
      to trace those PEs created against the PHB.
      
      The patch creates PEs for the PHBs and put those PEs into the
      global link list traced by "eeh_phb_pe". The link list of PEs
      would be first level of overall PE hierarchy tree across the
      system.
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      55037d17
    • G
      powerpc/eeh: Introduce global mutex · 646a8499
      Gavin Shan 提交于
      The patch introduces global mutex for EEH so that the core data
      structures can be protected by that. Also, 2 inline functions
      are exported for that: eeh_lock() and eeh_unlock().
      Signed-off-by: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      646a8499
    • G
      powerpc/eeh: Introduce eeh_pe struct · 968f968f
      Gavin Shan 提交于
      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: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      968f968f
    • G
      powerpc/eeh: Move EEH initialization around · 35e5cfe2
      Gavin Shan 提交于
      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: NGavin Shan <shangw@linux.vnet.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      35e5cfe2
  2. 07 9月, 2012 5 次提交
  3. 05 9月, 2012 12 次提交
  4. 24 8月, 2012 2 次提交
  5. 16 8月, 2012 1 次提交
  6. 31 7月, 2012 1 次提交
  7. 30 7月, 2012 1 次提交
  8. 24 7月, 2012 1 次提交
  9. 11 7月, 2012 5 次提交
  10. 10 7月, 2012 8 次提交