Hi Alex, Mark,
Please consider following linaro-android pull request for "linux-linaro-lsk-v3.18-android" LSK branch.
Heads up for this pretty big pull request. Other than regular net/gadget fixups, a lot of new patches/backports ranging from scheduler(core, cfs task boosting, eas, walt etc) to Kcov code coverage landed in aosp/android-3.18.
Regards, Amit Pundir
The following changes since commit 6fea883f6cd573ce8449ddf75ab59a75aa0df292:
Merge branch 'linux-linaro-lsk-v3.18' into linux-linaro-lsk-v3.18-android (2016-08-23 12:31:02 +0800)
are available in the git repository at:
git://android.git.linaro.org/kernel/linaro-android.git lsk-v3.18-android
for you to fetch changes up to 0a77803d23ea9f490536fad1770d7d7b03eef3fd:
sched/walt: include missing header for arm_timer_read_counter() (2016-08-26 10:50:11 +0530)
---------------------------------------------------------------- Al Viro (1): BACKPORT: ecryptfs: fix handling of directory opening
Amit Pundir (3): ANDROID: net: fib: remove duplicate assignment sched/walt: use do_div instead of division operator sched/walt: include missing header for arm_timer_read_counter()
Anson Jacob (1): usb: gadget: f_accessory: remove duplicate endpoint alloc
Boqun Feng (1): sched/fair: Clean up the __sched_period() code
Byungchul Park (9): sched/fair: Fix a comment reflecting function name change sched: Ensure a task has a non-normalized vruntime when returning back to CFS sched/fair: Factor out the {at,de}taching of the per entity load {to,from} the runqueue sched/fair: Have task_move_group_fair() unconditionally add the entity load to the runqueue sched/fair: Have task_move_group_fair() also detach entity load from the old runqueue sched/fair: Fix switched_to_fair()'s per entity load tracking sched/fair: Unify switched_{from,to}_fair() and task_move_group_fair() sched/fair: Modify the comment about lock assumptions in migrate_task_rq_fair() sched/fair: Make it possible to account fair load avg consistently
Chris Redpath (1): arch_timer: add error handling when the MPM global timer is cleared
Christoph Lameter (1): vmstat: make vmstat_updater deferrable again and shut down on idle
Dietmar Eggemann (22): sched/fair: Make load tracking frequency scale-invariant sched/fair: Make utilization tracking CPU scale-invariant sched/fair: Name utilization related data and functions consistently sched/fair: Get rid of scaling utilization by capacity_orig sched/fair: Defer calling scaling functions cpufreq: Frequency invariant scheduler load-tracking support arm64: Enable frequency invariant scheduler load-tracking support sched: Store system-wide maximum cpu capacity in root domain sched: Enable idle balance to pull single task towards cpu with higher capacity sched: Introduce energy data structures sched: Initialize energy data structures sched: Determine the current sched_group idle-state sched: Consider a not over-utilized energy-aware system as balanced cpufreq: Max freq invariant scheduler load-tracking and cpu capacity support sched: Update max cpu capacity in case of max frequency constraints arm64: Enable max freq invariant scheduler load-tracking and capacity support sched: Do eas idle balance regardless of the rq avg idle value arm: Enable frequency invariant scheduler load-tracking support arm: topology: Define TC2 energy and provide it to the scheduler arm: Cpu invariant scheduler load-tracking and capacity support arm: Enable max freq invariant scheduler load-tracking and capacity support DEBUG: sched: add energy procfs interface
Dmitry Vyukov (1): BACKPORT: kernel: add kcov code coverage
Eric Dumazet (1): BACKPORT: tcp: make challenge acks less predictable
Hannes Frederic Sowa (1): ipv6: fix endianness error in icmpv6_err
Jaganath Kanakkassery (1): UPSTREAM: Bluetooth: Fix potential NULL dereference in RFCOMM bind callback
James Carr (1): Implement memory_state_time, used by qcom,cpubw
Jason Low (1): sched, timer: Convert usages of ACCESS_ONCE() in the scheduler to READ_ONCE()/WRITE_ONCE()
Joseph Lo (1): CHROMIUM: sched: update the average of nr_running
Juri Lelli (13): arm64: Cpu invariant scheduler load-tracking and capacity support sched/fair: add triggers for OPP change requests sched/{core,fair}: trigger OPP change request on fork() sched/fair: cpufreq_sched triggers for load balancing FIXUP: sched: scheduler-driven cpu frequency selection FIXUP: sched/fair: jump to max OPP when crossing UP threshold DEBUG: sched: add tracepoint for cpu/freq scale invariance DEBUG: sched: add tracepoint for task load/util signals DEBUG: sched: add tracepoint for CPU load/util signals DEBUG: sched,cpufreq: add cpu_capacity change tracepoint sched/fair: add tunable to force selection at cpu granularity sched/cpufreq_sched: fix thermal capping events sched/fair: call OPP update when going idle after migration
Kirill Tkhai (4): sched/deadline: Implement cancel_dl_timer() to use in switched_from_dl() sched/fair: Fix sched_entity::avg::decay_count initialization sched/dl: Prevent enqueue of a sleeping task in dl_task_timer() sched/core: Delete PF_EXITING checks from cpu_cgroup_exit() callback
Lorenzo Colitti (1): net: ipv6: Fix ping to link-local addresses.
Matt Wagantall (2): sched/rt: print RT tasks when RT throttling is activated sched/rt: Add Kconfig option to enable panicking for RT throttling
Michael Turquette (2): cpufreq: introduce cpufreq_driver_is_slow sched: scheduler-driven cpu frequency selection
Mike Galbraith (1): sched/fair: Beef up wake_wide()
Morten Rasmussen (24): sched: Make sched entity usage tracking scale-invariant sched: Track group sched_entity usage contributions sched/fair: Convert arch_scale_cpu_capacity() from weak function to #define sched/fair: Initialize task load and utilization before placing task on rq sched: Add cpu capacity awareness to wakeup balancing sched: Consider spare cpu capacity at task wake-up sched: Prevent unnecessary active balance of single task in sched group sched: Documentation for scheduler energy cost model sched: Make energy awareness a sched feature sched: Introduce SD_SHARE_CAP_STATES sched_domain flag sched: Compute cpu capacity available at current frequency sched: Relocated cpu_util() and change return type sched: Highest energy aware balancing sched_domain level pointer sched: Calculate energy consumption of sched_group sched: Extend sched_group_energy to test load-balancing decisions sched: Estimate energy impact of scheduling decisions sched: Add over-utilization/tipping point indicator sched, cpuidle: Track cpuidle state index in the scheduler sched: Energy-aware wake-up task placement sched: Disable energy-unfriendly nohz kicks sched: Add per-cpu max capacity to sched_group_capacity sched: Add group_misfit_task load-balance type sched: Consider misfit tasks when load-balancing arm: Update arch_scale_cpu_capacity() to reflect change to define
Patrick Bellasi (32): sched/tune: add detailed documentation sched/tune: add sysctl interface to define a boost value sched/fair: add function to convert boost value into "margin" sched/fair: add boosted CPU usage sched/tune: add initial support for CGroups based boosting sched/tune: compute and keep track of per CPU boost value sched/{fair,tune}: track RUNNABLE tasks impact on per CPU boost value sched/fair: add boosted task utilization sched/fair: keep track of energy/capacity variations sched/tune: add support to compute normalized energy sched/fair: filter energy_diff() based on energy_payoff value FIXUP: sched/tune: properly account of exiting tasks (only for kernel < v4.4) DEBUG: sched/tune: add tracepoint for SchedTune configuration update DEBUG: sched/tune: add tracepoint for CPU boost signal DEBUG: sched/tune: add tracepoint for schedtune_tasks_update() values DEBUG: sched/tune: add tracepoint on boostgroup updates DEBUG: sched/tune: add tracepoint for task boost signal DEBUG: sched/tune: add tracepoint for energy_diff() values DEBUG: sched/tune: add tracepoint on P-E space filtering FIXUP: sched: fix build for non-SMP target FIX: sched/tune: update usage of boosted task utilisation on CPU selection FIX: sched/tune: move schedtune_nornalize_energy into fair.c FIXUP: sched/tune: fix payoff calculation for boost region FIXUP: sched/tune: fix compilation error on !CONFIG_CGROUP_SCHEDTUNE sched/{fair,tune}: simplify fair.c code sched/tune: use a single initialisation function FIXUP: sched/tune: fix accounting for runnable tasks sched/tune: fix PB and PC cuts indexes definition FIXUP: sched: fix set_cfs_cpu_capacity when WALT is in use FIXUP: sched: fix SchedFreq integration for both PELT and WALT DEBUG: sched: add tracepoint for RD overutilized FIXUP: sched/tune: do initialization as a postcore_initicall
Peter Zijlstra (15): sched/core: Validate rq_clock*() serialization sched/deadline: Fix deadline parameter modification handling sched/deadline: Fix stale yield state sched: Move the loadavg code to a more obvious location sched,dl: Fix sched class hopping CBS hole sched: Move code around sched: Fix a race between __kthread_bind() and sched_setaffinity() sched/fair: Make the entity load aging on attaching tunable sched/core: Remove unused argument from sched_class::task_move_group sched: Optimize freq invariant accounting sched/fair: Rename scale() to cap_scale() sched/fair: Optimize __update_load_avg() sched/fair: Optimize per entity utilization tracking sched/fair: Clean up the explanation around decaying load update misses UPSTREAM: sched: Fix a race between __kthread_bind() and sched_setaffinity()
Preeti U Murthy (1): UPSTREAM: sched: Improve load balancing in the presence of idle CPUs
Rafael J. Wysocki (2): UPSTREAM: PM / sleep: Re-implement suspend-to-idle handling UPSTREAM: cpuidle: Clean up fallback handling in cpuidle_idle_call()
Rainer Weikusat (1): UPSTREAM: af_unix: Guard against other == sk in unix_dgram_sendmsg
Ricky Liang (1): FIXUP: sched: scheduler-driven cpu frequency selection
Robin Randhawa (3): Documentation: DT bindings for energy model cost data required by EAS sched: Support for extracting EAS energy costs from DT arm64, topology: Updates to use DT bindings for EAS costing data
Ruchi Kandoi (1): power: Refactors the code which prints suspend time.
Srinath Sridharan (8): sched/cpufreq_sched: Consolidated update sched: EAS: take cstate into account when selecting idle core sched/tune: Add support for negative boost values sched/walt: Accounting for number of irqs pending on each core sched/rt: Avoid moving rt task if destination CPU does not run low priority task sched/tune: Introducing a new schedtune attribute prefer_idle sched/fair: Picking cpus with low OPPs for tasks that prefer idle CPUs sched/fair: Favor higher cpus only for boosted tasks
Srivatsa Vaddagiri (1): sched: Introduce Window Assisted Load Tracking (WALT)
Steve Muckle (2): sched/fair: jump to max OPP when crossing UP threshold sched/cpufreq_sched: add trace events
Sudeep Holla (1): arm64: defconfig: add few misc configs for development/debugging/testing
Takashi Iwai (1): UPSTREAM: ALSA: timer: Fix race among timer ioctls
Tejun Heo (2): cpumask, nodemask: implement cpumask/nodemask_pr_args() cgroup: reorder SUBSYS(blkio) in cgroup_subsys.h
Thomas Gleixner (1): sched: deadline: Use hrtimer_start()
Todd Kjos (6): sched/fair: add tunable to set initial task load sched/fair: optimize idle cpu selection for boosted tasks sched: EAS: Avoid causing spikes to max-freq unnecessarily FIXUP: sched/fair: Fix hang during suspend in sched_group_energy FIXUP: sched: Fix double-release of spinlock in move_queued_task sched: use util instead of capacity to select busy cpu
Vincent Guittot (14): sched: Add sched_avg::utilization_avg_contrib sched: Calculate CPU's usage statistic and put it into struct sg_lb_stats::group_usage sched/fair: Implement update_blocked_averages() for CONFIG_FAIR_GROUP_SCHED=n sched/fair: Fix nohz.next_balance update sched: Make scale_rt invariant with frequency sched: Move CFS tasks to CPUs with higher capacity sched: Remove frequency scaling from cpu_capacity sched: Add struct rq::cpu_capacity_orig sched: Replace capacity_factor by usage sched: Remove unused struct sched_group_capacity::capacity_orig sched: remove call of sched_avg_update from sched_rt_avg_update sched: deadline: use deadline bandwidth in scale_rt_capacity sched: rt scheduler sets capacity requirement UPSTREAM: sched: Add SD_PREFER_SIBLING for SMT level
Waiman Long (3): sched/fair: Avoid redundant idle_cpu() call in update_sg_lb_stats() sched/fair: Move the cache-hot 'load_avg' variable into its own cacheline sched/fair: Disable the task group load_avg update for the root_task_group
Wanpeng Li (5): sched/deadline: Fix artificial overrun introduced by yield_task_dl() sched/deadline: Reschedule from switched_from_dl() after a successful pull sched/deadline: Don't check CONFIG_SMP in switched_from_dl() sched/deadline: Support DL task migration during CPU hotplug sched/fair: Fix stale overloaded status in the busiest group finding logic
Winter Wang (1): UPSTREAM: usb: gadget: configfs: add mutex lock before unregister gadget
Xunlei Pang (1): sched/fair: Fix the dealing with decay_count in __synchronize_entity_decay()
Yao Dongdong (1): sched/core: Remove check of p->sched_class
Yuyang Du (10): sched/fair: Remove rq's runnable avg sched/fair: Rewrite runnable load and utilization average tracking sched/fair: Init cfs_rq's sched_entity load average sched/fair: Remove task and group entity load when they are dead sched/fair: Provide runnable_load_avg back to cfs_rq sched/fair: Clean up load average references sched/fair: Fix overly small weight for interactive group entities sched/fair: Update task group's load_avg after task migration sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task() UPSTREAM: sched/fair: Avoid pulling all tasks in idle balancing
Documentation/devicetree/bindings/misc/memory-state-time.txt | 8 + Documentation/devicetree/bindings/scheduler/sched-energy-costs.txt | 360 ++++++++++++ Documentation/kcov.txt | 111 ++++ Documentation/scheduler/sched-energy.txt | 362 ++++++++++++ Documentation/scheduler/sched-tune.txt | 367 ++++++++++++ Makefile | 11 +- android/configs/android-recommended.cfg | 1 + arch/arm/include/asm/topology.h | 7 + arch/arm/kernel/topology.c | 149 ++++- arch/arm64/configs/defconfig | 33 ++ arch/arm64/include/asm/topology.h | 9 + arch/arm64/kernel/topology.c | 81 +++ arch/x86/Kconfig | 6 + arch/x86/boot/Makefile | 10 +- arch/x86/boot/compressed/Makefile | 3 + arch/x86/kernel/Makefile | 6 + arch/x86/kernel/apic/Makefile | 4 + arch/x86/kernel/cpu/Makefile | 4 + arch/x86/lib/Makefile | 3 + arch/x86/mm/Makefile | 3 + arch/x86/realmode/rm/Makefile | 3 + drivers/cpufreq/Kconfig | 22 + drivers/cpufreq/cpufreq.c | 58 ++ drivers/cpuidle/cpuidle.c | 55 +- drivers/firmware/efi/libstub/Makefile | 3 + drivers/misc/Kconfig | 6 + drivers/misc/Makefile | 1 + drivers/misc/memory_state_time.c | 454 +++++++++++++++ drivers/usb/gadget/configfs.c | 2 + drivers/usb/gadget/function/f_accessory.c | 9 - fs/ecryptfs/file.c | 71 ++- include/linux/cgroup_subsys.h | 12 +- include/linux/cpufreq.h | 15 + include/linux/cpuidle.h | 7 +- include/linux/cpumask.h | 8 + include/linux/kcov.h | 29 + include/linux/kthread.h | 1 + include/linux/memory-state-time.h | 42 ++ include/linux/nodemask.h | 8 + include/linux/sched.h | 145 ++++- include/linux/sched/sysctl.h | 26 + include/linux/sched_energy.h | 44 ++ include/linux/suspend.h | 16 + include/linux/vmstat.h | 2 + include/net/fib_rules.h | 2 - include/trace/events/cpufreq_sched.h | 87 +++ include/trace/events/power.h | 8 + include/trace/events/sched.h | 511 +++++++++++++++++ include/uapi/linux/kcov.h | 10 + init/Kconfig | 53 ++ kernel/Makefile | 12 + kernel/exit.c | 7 + kernel/fork.c | 5 +- kernel/kcov.c | 273 +++++++++ kernel/kthread.c | 20 +- kernel/locking/Makefile | 3 + kernel/power/Makefile | 1 - kernel/power/suspend.c | 43 +- kernel/power/suspend_time.c | 111 ---- kernel/power/wakeup_reason.c | 63 +++ kernel/rcu/Makefile | 4 + kernel/sched/Makefile | 11 +- kernel/sched/auto_group.c | 2 +- kernel/sched/auto_group.h | 2 +- kernel/sched/core.c | 986 ++++++++++++++++++++++----------- kernel/sched/cpufreq_sched.c | 500 +++++++++++++++++ kernel/sched/cputime.c | 18 +- kernel/sched/deadline.c | 270 ++++++--- kernel/sched/debug.c | 42 +- kernel/sched/energy.c | 124 +++++ kernel/sched/fair.c | 2764 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ kernel/sched/features.h | 13 +- kernel/sched/idle.c | 56 +- kernel/sched/{proc.c => loadavg.c} | 247 +-------- kernel/sched/rt.c | 115 +++- kernel/sched/sched.h | 358 +++++++++++- kernel/sched/stop_task.c | 3 + kernel/sched/tune.c | 967 ++++++++++++++++++++++++++++++++ kernel/sched/tune.h | 54 ++ kernel/sched/wait.c | 4 +- kernel/sched/walt.c | 1171 +++++++++++++++++++++++++++++++++++++++ kernel/sched/walt.h | 62 +++ kernel/sysctl.c | 73 +++ kernel/time/posix-cpu-timers.c | 8 +- kernel/workqueue.c | 6 +- lib/Kconfig.debug | 30 + lib/Makefile | 12 + mm/Makefile | 15 + mm/kasan/Makefile | 2 + mm/vmstat.c | 73 ++- net/bluetooth/rfcomm/sock.c | 20 +- net/ipv4/tcp_input.c | 12 +- net/ipv6/icmp.c | 2 +- net/ipv6/ping.c | 38 +- net/unix/af_unix.c | 7 +- scripts/Makefile.lib | 14 +- sound/core/timer.c | 32 +- 97 files changed, 10204 insertions(+), 1699 deletions(-) create mode 100644 Documentation/devicetree/bindings/misc/memory-state-time.txt create mode 100644 Documentation/devicetree/bindings/scheduler/sched-energy-costs.txt create mode 100644 Documentation/kcov.txt create mode 100644 Documentation/scheduler/sched-energy.txt create mode 100644 Documentation/scheduler/sched-tune.txt create mode 100644 drivers/misc/memory_state_time.c create mode 100644 include/linux/kcov.h create mode 100644 include/linux/memory-state-time.h create mode 100644 include/linux/sched_energy.h create mode 100644 include/trace/events/cpufreq_sched.h create mode 100644 include/uapi/linux/kcov.h create mode 100644 kernel/kcov.c delete mode 100644 kernel/power/suspend_time.c create mode 100644 kernel/sched/cpufreq_sched.c create mode 100644 kernel/sched/energy.c rename kernel/sched/{proc.c => loadavg.c} (62%) create mode 100644 kernel/sched/tune.c create mode 100644 kernel/sched/tune.h create mode 100644 kernel/sched/walt.c create mode 100644 kernel/sched/walt.h