Hi Alex, Mark,
Please consider following linaro-android pull request for "linux-linaro-lsk-v4.4-android" LSK branch.
EAS landed in aosp/android-4.4 last week. So heads up for this pretty big pull request.
As usual build tested for x86_64(allmodconfig), arm64(defconfig + android configs), arm(vexpress + android configs) and boot tested on Qemu with Android M.
Regards, Amit Pundir
The following changes since commit b56111f481e16510558a892d5d56cb90cadd96c0:
Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-android (2016-08-30 10:27:13 +0800)
are available in the git repository at:
git://android.git.linaro.org/kernel/linaro-android.git lsk-v4.4-android
for you to fetch changes up to d3a1d035ef89cfb89cf6e2128d44b95771f2c7b4:
UPSTREAM: audit: fix a double fetch in audit_log_single_execve_arg() (2016-09-14 15:17:01 +0530)
---------------------------------------------------------------- Amit Pundir (4): ANDROID: base-cfg: drop SECCOMP_FILTER config sched/walt: include missing header for arm_timer_read_counter() DEBUG: cpufreq: fix cpu_capacity tracing build for non-smp systems sched/walt: use do_div instead of division operator
Ard Biesheuvel (1): BACKPORT: arm64: mm: fix location of _etext
Badhri Jagan Sridharan (1): ANDROID: dm: android-verity: Allow android-verity to be compiled as an independent module
Balbir Singh (1): RFC: FROMLIST: cgroup: reduce read locked section of cgroup_threadgroup_rwsem during fork
Benjamin Tissoires (1): UPSTREAM: HID: core: prevent out-of-bound readings
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
Dan Carpenter (1): UPSTREAM: [media] xc2028: unlock on error in xc2028_set_config()
Dietmar Eggemann (17): cpufreq: Frequency invariant scheduler load-tracking support arm: Enable 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 arm: Cpu invariant scheduler load-tracking and capacity support 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 arm: Enable max freq invariant scheduler load-tracking and capacity support arm64: Enable max freq invariant scheduler load-tracking and capacity support sched: Do eas idle balance regardless of the rq avg idle value DEBUG: sched: add energy procfs interface arm: topology: Define TC2 energy and provide it to the scheduler
Eric Biggers (1): UPSTREAM: usercopy: avoid potentially undefined behavior in pointer math
Eric Dumazet (1): UPSTREAM: tcp: fix use after free in tcp_xmit_retransmit_queue()
Guenter Roeck (1): ANDROID: rcu_sync: Export rcu_sync_lockdep_assert
Hannes Frederic Sowa (1): ipv6: fix endianness error in icmpv6_err
John Stultz (1): cpufreq: Kconfig: Fixup incorrect selection by CPU_FREQ_DEFAULT_GOV_SCHED
Jon Medhurst (1): arm: Fix #if/#ifdef typo in topology.c
Joonsoo Kim (1): UPSTREAM: mm/slub: support left redzone
Joseph Lo (1): CHROMIUM: sched: update the average of nr_running
Josh Poimboeuf (1): UPSTREAM: usercopy: fix overlap check for kernel text
Jungseung Lee (1): UPSTREAM: ARM: 8494/1: mm: Enable PXN when running non-LPAE kernel on LPAE processor
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
Kees Cook (5): BACKPORT: ARM: 8583/1: mm: fix location of _etext UPSTREAM: x86/uaccess: force copy_*_user() to be inlined BACKPORT: usercopy: fold builtin_const check into inline function UPSTREAM: usercopy: force check_object_size() inline UPSTREAM: usercopy: remove page-spanning test for now
Linus Torvalds (2): UPSTREAM: unsafe_[get|put]_user: change interface to use a error target label UPSTREAM: Make the hardened user-copy code depend on having a hardened allocator
Lorenzo Colitti (1): net: ipv6: Fix ping to link-local addresses.
Mark Salyzyn (1): FROMLIST: pstore: drop pmsg bounce buffer
Matt Wagantall (2): sched/rt: print RT tasks when RT throttling is activated sched/rt: Add Kconfig option to enable panicking for RT throttling
Mauro Carvalho Chehab (1): UPSTREAM: [media] xc2028: avoid use after free
Michael Turquette (2): cpufreq: introduce cpufreq_driver_is_slow sched: scheduler-driven cpu frequency selection
Mohamad Ayyash (1): BACKPORT: Don't show empty tag stats for unprivileged uids
Mohan Srinivasan (2): Android: MMC/UFS IO Latency Histograms. Android: Fix build breakages.
Morten Rasmussen (20): arm: Update arch_scale_cpu_capacity() to reflect change to define 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
Patrick Bellasi (31): 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 DEBUG: schedtune: add tracepoint for SchedTune configuration update DEBUG: schedtune: add tracepoint for CPU boost signal DEBUG: schedtune: add tracepoint for schedtune_tasks_update() values 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 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 FIXUP: sched/tune: add fixes missing from a previous patch FIXUP: sched/tune: update accouting before CPU capacity
Paul Moore (1): UPSTREAM: audit: fix a double fetch in audit_log_single_execve_arg()
Peter Hurley (1): UPSTREAM: tty: Prevent ldisc drivers from re-using stale tty fields
Peter Zijlstra (3): RFC: FROMLIST: locking/percpu-rwsem: Optimize readers and reduce global impact RFC: FROMLIST: cgroup: avoid synchronize_sched() in __cgroup_procs_write() UPSTREAM: sched: Fix a race between __kthread_bind() and sched_setaffinity()
Phil Turnbull (1): UPSTREAM: netfilter: nfnetlink: correctly validate length of batch messages
Ricky Liang (1): FIXUP: sched: scheduler-driven cpu frequency selection
Riley Andrews (1): cpuset: Make cpusets restore on hotplug
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
Srinath Sridharan (7): 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/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 (3): sched/fair: jump to max OPP when crossing UP threshold sched/cpufreq_sched: add trace events arm: Fix build error "conflicting types for 'scale_cpu_capacity'"
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 (3): 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
Waiman Long (1): sched/fair: Avoid redundant idle_cpu() call in update_sg_lb_stats()
Yongqin Liu (1): ANDROID: base-cfg: enable SECCOMP config
Yuyang Du (1): sched/fair: Fix new task's load avg removed from source CPU in wake_up_new_task()
Documentation/devicetree/bindings/scheduler/sched-energy-costs.txt | 360 +++++++++++++++++++++++++ Documentation/scheduler/sched-energy.txt | 362 +++++++++++++++++++++++++ Documentation/scheduler/sched-tune.txt | 366 +++++++++++++++++++++++++ android/configs/android-base.cfg | 1 + arch/arm/include/asm/topology.h | 7 + arch/arm/kernel/setup.c | 2 +- arch/arm/kernel/topology.c | 149 ++++++++++- arch/arm/kernel/vmlinux.lds.S | 4 +- arch/arm/mm/mmu.c | 2 +- arch/arm64/include/asm/topology.h | 9 + arch/arm64/kernel/setup.c | 2 +- arch/arm64/kernel/topology.c | 81 ++++++ arch/arm64/kernel/vmlinux.lds.S | 7 +- arch/arm64/mm/init.c | 4 +- arch/arm64/mm/mmu.c | 20 +- arch/x86/include/asm/uaccess.h | 20 +- block/blk-core.c | 84 ++++++ drivers/cpufreq/Kconfig | 21 ++ drivers/cpufreq/cpufreq.c | 64 +++++ drivers/cpuidle/cpuidle.c | 4 +- drivers/hid/hid-core.c | 3 + drivers/md/Kconfig | 3 +- drivers/md/Makefile | 5 +- drivers/md/dm-linear.c | 6 + drivers/md/dm-verity-target.c | 7 + drivers/media/tuners/tuner-xc2028.c | 6 +- drivers/mmc/core/core.c | 66 ++++- drivers/mmc/core/host.c | 6 +- drivers/mmc/core/host.h | 5 + drivers/scsi/ufs/ufshcd.c | 81 ++++++ drivers/scsi/ufs/ufshcd.h | 3 + drivers/tty/tty_ldisc.c | 7 + fs/pstore/platform.c | 36 +++ fs/pstore/pmsg.c | 35 +-- fs/pstore/ram.c | 19 ++ fs/pstore/ram_core.c | 47 +++- include/linux/blkdev.h | 76 ++++++ include/linux/cgroup_subsys.h | 4 + include/linux/cpufreq.h | 16 ++ include/linux/cpuidle.h | 2 +- include/linux/mmc/core.h | 2 + include/linux/mmc/host.h | 6 + include/linux/percpu-rwsem.h | 84 +++++- include/linux/pstore.h | 11 +- include/linux/pstore_ram.h | 7 +- include/linux/rcu_sync.h | 1 + include/linux/sched.h | 86 ++++++ include/linux/sched/sysctl.h | 26 ++ include/linux/sched_energy.h | 44 +++ include/linux/slub_def.h | 1 + include/linux/thread_info.h | 7 +- include/linux/uaccess.h | 4 +- include/linux/vmstat.h | 2 + include/net/tcp.h | 2 + include/trace/events/cpufreq_sched.h | 87 ++++++ include/trace/events/power.h | 7 + include/trace/events/sched.h | 498 ++++++++++++++++++++++++++++++++++ init/Kconfig | 53 ++++ kernel/auditsc.c | 332 ++++++++++++----------- kernel/cgroup.c | 6 + kernel/cpuset.c | 33 ++- kernel/exit.c | 5 + kernel/fork.c | 4 +- kernel/locking/percpu-rwsem.c | 229 +++++++++------- kernel/rcu/sync.c | 13 + kernel/sched/Makefile | 5 +- kernel/sched/core.c | 345 +++++++++++++++++++++++- kernel/sched/cpufreq_sched.c | 499 ++++++++++++++++++++++++++++++++++ kernel/sched/cputime.c | 16 ++ kernel/sched/deadline.c | 33 ++- kernel/sched/energy.c | 124 +++++++++ kernel/sched/fair.c | 1322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- kernel/sched/features.h | 5 + kernel/sched/idle.c | 4 +- kernel/sched/rt.c | 106 +++++++- kernel/sched/sched.h | 265 ++++++++++++++++++- kernel/sched/stop_task.c | 3 + kernel/sched/tune.c | 951 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ kernel/sched/tune.h | 55 ++++ kernel/sched/walt.c | 1171 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ kernel/sched/walt.h | 62 +++++ kernel/sysctl.c | 73 +++++ lib/Kconfig.debug | 9 + lib/strncpy_from_user.c | 8 +- lib/strnlen_user.c | 7 +- mm/slub.c | 100 +++++-- mm/usercopy.c | 65 +++-- mm/vmstat.c | 69 +++-- net/ipv6/icmp.c | 2 +- net/ipv6/ping.c | 38 ++- net/netfilter/nfnetlink.c | 10 +- net/netfilter/xt_qtaguid.c | 5 +- security/Kconfig | 12 + 93 files changed, 8306 insertions(+), 610 deletions(-) create mode 100644 Documentation/devicetree/bindings/scheduler/sched-energy-costs.txt create mode 100644 Documentation/scheduler/sched-energy.txt create mode 100644 Documentation/scheduler/sched-tune.txt create mode 100644 include/linux/sched_energy.h create mode 100644 include/trace/events/cpufreq_sched.h create mode 100644 kernel/sched/cpufreq_sched.c create mode 100644 kernel/sched/energy.c 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