OSDN Git Service

Merge remote-tracking branch 'linaro-ext/EAS/v4.4-easv5.2+aosp-changes' into android-4.4
authorDmitry Shmidt <dimitrysh@google.com>
Fri, 9 Sep 2016 00:02:15 +0000 (17:02 -0700)
committerDmitry Shmidt <dimitrysh@google.com>
Fri, 9 Sep 2016 00:07:42 +0000 (17:07 -0700)
Change-Id: Ic24b43ee867bc4f70b31bedaad734717b64b86a1

1  2 
drivers/cpufreq/Kconfig
drivers/cpufreq/cpufreq.c
include/linux/cpufreq.h
include/linux/sched.h
include/trace/events/power.h
include/trace/events/sched.h
init/Kconfig
kernel/sched/core.c
kernel/sched/fair.c
kernel/sysctl.c
lib/Kconfig.debug

@@@ -103,15 -103,14 +103,23 @@@ config CPU_FREQ_DEFAULT_GOV_CONSERVATIV
          governor. If unsure have a look at the help section of the
          driver. Fallback governor will be the performance governor.
  
 +config CPU_FREQ_DEFAULT_GOV_INTERACTIVE
 +      bool "interactive"
 +      select CPU_FREQ_GOV_INTERACTIVE
 +      help
 +        Use the CPUFreq governor 'interactive' as default. This allows
 +        you to get a full dynamic cpu frequency capable system by simply
 +        loading your cpufreq low-level hardware driver, using the
 +        'interactive' governor for latency-sensitive workloads.
 +
+ config CPU_FREQ_DEFAULT_GOV_SCHED
+       bool "sched"
+       select CPU_FREQ_GOV_SCHED
+       help
+         Use the CPUfreq governor 'sched' as default. This scales
+         cpu frequency using CPU utilization estimates from the
+         scheduler.
  endchoice
  
  config CPU_FREQ_GOV_PERFORMANCE
@@@ -2126,9 -2182,10 +2182,11 @@@ static int cpufreq_set_policy(struct cp
        blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
                        CPUFREQ_NOTIFY, new_policy);
  
+       scale_freq_capacity(new_policy, NULL);
        policy->min = new_policy->min;
        policy->max = new_policy->max;
 +      trace_cpu_frequency_limits(policy->max, policy->min, policy->cpu);
  
        pr_debug("new min and max freqs are %u - %u kHz\n",
                 policy->min, policy->max);
@@@ -487,9 -496,9 +496,12 @@@ extern struct cpufreq_governor cpufreq_
  #elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE)
  extern struct cpufreq_governor cpufreq_gov_conservative;
  #define CPUFREQ_DEFAULT_GOVERNOR      (&cpufreq_gov_conservative)
 +#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE)
 +extern struct cpufreq_governor cpufreq_gov_interactive;
 +#define CPUFREQ_DEFAULT_GOVERNOR      (&cpufreq_gov_interactive)
+ #elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_SCHED)
+ extern struct cpufreq_governor cpufreq_gov_sched;
+ #define CPUFREQ_DEFAULT_GOVERNOR      (&cpufreq_gov_sched)
  #endif
  
  /*********************************************************************
Simple merge
@@@ -120,31 -120,13 +120,38 @@@ DEFINE_EVENT(cpu, cpu_frequency
        TP_ARGS(frequency, cpu_id)
  );
  
 +TRACE_EVENT(cpu_frequency_limits,
 +
 +      TP_PROTO(unsigned int max_freq, unsigned int min_freq,
 +              unsigned int cpu_id),
 +
 +      TP_ARGS(max_freq, min_freq, cpu_id),
 +
 +      TP_STRUCT__entry(
 +              __field(        u32,            min_freq        )
 +              __field(        u32,            max_freq        )
 +              __field(        u32,            cpu_id          )
 +      ),
 +
 +      TP_fast_assign(
 +              __entry->min_freq = min_freq;
 +              __entry->max_freq = max_freq;
 +              __entry->cpu_id = cpu_id;
 +      ),
 +
 +      TP_printk("min=%lu max=%lu cpu_id=%lu",
 +                (unsigned long)__entry->min_freq,
 +                (unsigned long)__entry->max_freq,
 +                (unsigned long)__entry->cpu_id)
 +);
 +
+ DEFINE_EVENT(cpu, cpu_capacity,
+       TP_PROTO(unsigned int capacity, unsigned int cpu_id),
+       TP_ARGS(capacity, cpu_id)
+ );
  TRACE_EVENT(device_pm_callback_start,
  
        TP_PROTO(struct device *dev, const char *pm_ops, int event),
Simple merge
diff --cc init/Kconfig
Simple merge
Simple merge
Simple merge
diff --cc kernel/sysctl.c
Simple merge
Simple merge