1. 21 Jan, 2018 12 commits
  2. 20 Jan, 2018 25 commits
  3. 19 Jan, 2018 3 commits
    • Christophe Lombard's avatar
      cxl: Add support for ASB_Notify on POWER9 · b1db5513
      Christophe Lombard authored
      The POWER9 core supports a new feature: ASB_Notify which requires the
      support of the Special Purpose Register: TIDR.
      
      The ASB_Notify command, generated by the AFU, will attempt to
      wake-up the host thread identified by the particular LPID:PID:TID.
      
      This patch assign a unique TIDR (thread id) for the current thread which
      will be used in the process element entry.
      Signed-off-by: default avatarChristophe Lombard <clombard@linux.vnet.ibm.com>
      Reviewed-by: default avatarPhilippe Bergheaud <felix@linux.vnet.ibm.com>
      Acked-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
      Reviewed-by: default avatarVaibhav Jain <vaibhav@linux.vnet.ibm.com>
      Acked-by: default avatarAndrew Donnellan <andrew.donnellan@au1.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      b1db5513
    • Anju T Sudhakar's avatar
      powerpc/perf: Change the data type for the variable 'ncpu' in IMC code · 074db39e
      Anju T Sudhakar authored
      Change the data type for the variable 'ncpu' in ppc_core_imc_cpu_offline(),
      since cpumask_any_but() returns an 'int' value.
      Signed-off-by: default avatarAnju T Sudhakar <anju@linux.vnet.ibm.com>
      Reported-by: default avatarDavid Binderman <dcb314@hotmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      074db39e
    • Anju T Sudhakar's avatar
      powerpc/powernv: Add debugfs interface for imc-mode and imc-command · 684d9840
      Anju T Sudhakar authored
      In memory Collection (IMC) counter pmu driver controls the ucode's
      execution state. At the system boot, IMC perf driver pause the ucode.
      Ucode state is changed to "running" only when any of the nest units
      are monitored or profiled using perf tool.
      
      Nest units support only limited set of hardware counters and ucode is
      always programmed in the "production mode" ("accumulation") mode. This
      mode is configured to provide key performance metric data for most of
      the nest units.
      
      But ucode also supports other modes which would be used for "debug" to
      drill down specific nest units. That is, ucode when switched to
      "powerbus" debug mode (for example), will dynamically reconfigure the
      nest counters to target only "powerbus" related events in the hardware
      counters. This allows the IMC nest unit to focus on powerbus related
      transactions in the system in more detail. At this point, production
      mode events may or may not be counted.
      
      IMC nest counters has both in-band (ucode access) and out of band
      access to it. Since not all nest counter configurations are supported
      by ucode, out of band tools are used to characterize other nest
      counter configurations.
      
      Patch provides an interface via "debugfs" to enable the switching of
      ucode modes in the system. To switch ucode mode, one has to first
      pause the microcode (imc_cmd), and then write the target mode value to
      the "imc_mode" file.
      
      Proposed Approach:
      
      In the proposed approach, the function (export_imc_mode_and_cmd) which
      creates the debugfs interface for imc mode and command is implemented
      in opal-imc.c. Thus we can use imc_get_mem_addr() to get the homer
      base address for each chip.
      
      The interface to expose imc mode and command is required only if we
      have nest pmu units registered. Employing the existing data structures
      to track whether we have any nest units registered will require to
      extend data from perf side to opal-imc.c. Instead an integer is
      introduced to hold that information by counting successful nest unit
      registration. Debugfs interface is removed based on the integer count.
      
      Example for the interface:
      
        $ ls /sys/kernel/debug/imc
        imc_cmd_0  imc_cmd_8  imc_mode_0  imc_mode_8
      Signed-off-by: default avatarAnju T Sudhakar <anju@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      684d9840