1. 21 Jul, 2016 5 commits
    • Steve Muckle's avatar
      cpufreq: schedutil: map raw required frequency to driver frequency · 5cbea469
      Steve Muckle authored
      The slow-path frequency transition path is relatively expensive as it
      requires waking up a thread to do work. Should support be added for
      remote CPU cpufreq updates that is also expensive since it requires an
      IPI. These activities should be avoided if they are not necessary.
      
      To that end, calculate the actual driver-supported frequency required by
      the new utilization value in schedutil by using the recently added
      cpufreq_driver_resolve_freq API. If it is the same as the previously
      requested driver frequency then there is no need to continue with the
      update assuming the cpu frequency limits have not changed. This will
      have additional benefits should the semantics of the rate limit be
      changed to apply solely to frequency transitions rather than to
      frequency calculations in schedutil.
      
      The last raw required frequency is cached. This allows the driver
      frequency lookup to be skipped in the event that the new raw required
      frequency matches the last one, assuming a frequency update has not been
      forced due to limits changing (indicated by a next_freq value of
      UINT_MAX, see sugov_should_update_freq).
      Signed-off-by: default avatarSteve Muckle <smuckle@linaro.org>
      Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5cbea469
    • Steve Muckle's avatar
      cpufreq: add cpufreq_driver_resolve_freq() · e3c06236
      Steve Muckle authored
      Cpufreq governors may need to know what a particular target frequency
      maps to in the driver without necessarily wanting to set the frequency.
      Support this operation via a new cpufreq API,
      cpufreq_driver_resolve_freq(). This API returns the lowest driver
      frequency equal or greater than the target frequency
      (CPUFREQ_RELATION_L), subject to any policy (min/max) or driver
      limitations. The mapping is also cached in the policy so that a
      subsequent fast_switch operation can avoid repeating the same lookup.
      
      The API will call a new cpufreq driver callback, resolve_freq(), if it
      has been registered by the driver. Otherwise the frequency is resolved
      via cpufreq_frequency_table_target(). Rather than require ->target()
      style drivers to provide a resolve_freq() callback it is left to the
      caller to ensure that the driver implements this callback if necessary
      to use cpufreq_driver_resolve_freq().
      Suggested-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarSteve Muckle <smuckle@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e3c06236
    • Srinivas Pandruvada's avatar
      cpufreq: intel_pstate: Check cpuid for MSR_HWP_INTERRUPT · da7de91c
      Srinivas Pandruvada authored
      The MSR MSR_HWP_INTERRUPT is valid only when CPUID.06H:EAX[8] = 1, so
      check for feature before accessing this MSR.
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      da7de91c
    • Rafael J. Wysocki's avatar
      intel_pstate: Update cpu_frequency tracepoint every time · bc95a454
      Rafael J. Wysocki authored
      Currently, intel_pstate only updates the cpu_frequency tracepoint
      if the new P-state to set is different from the current one, but
      that causes powertop to report 100% idle on an 100% loaded system
      sometimes.
      
      Prevent that from happening by updating the cpu_frequency tracepoint
      every time intel_pstate_update_pstate() is called.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>-
      bc95a454
    • Carsten Emde's avatar
      cpufreq: intel_pstate: clean remnant struct element · 2630abc2
      Carsten Emde authored
      When I was working with the Intel P state driver I came across a
      remnant struct element that is no longer needed after the function
      intel_pstate_calc_freq() was retired.
      Signed-off-by: default avatarCarsten Emde <C.Emde@osadl.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      2630abc2
  2. 12 Jul, 2016 1 commit
  3. 11 Jul, 2016 1 commit
  4. 06 Jul, 2016 2 commits
  5. 04 Jul, 2016 2 commits
  6. 28 Jun, 2016 1 commit
  7. 27 Jun, 2016 6 commits
  8. 26 Jun, 2016 1 commit
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 2ac9b973
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two straightforward fixes.
      
        One is a concurrency issue only affecting SAS connected SATA drives,
        but which could hang the storage subsystem if it triggers (because the
        outstanding command count on error never goes back to zero) and the
        other is a NO_TAG fallout from the switch to hostwide tags which
        causes the system to crash on module insertion (we've checked
        carefully and only the 53c700 family of drivers is vulnerable to this
        issue)"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        53c700: fix BUG on untagged commands
        scsi: fix race between simultaneous decrements of ->host_failed
      2ac9b973
  9. 25 Jun, 2016 21 commits