Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a0ebc2a authored by Amit Pundir's avatar Amit Pundir
Browse files

Merge branch 'android-3.18' of https://android.googlesource.com/kernel/common



* android-3.18: (560 commits)
  nf: IDLETIMER: Fix broken uid field in the msg
  UPSTREAM: staging: android: Assign bool to true
  UPSTREAM: Staging: android: ion: fix typos in comments
  UPSTREAM: staging: android: ion: Replace "the the " with "the"
  usb: gadget: Do not disconnect unregistered dev
  ipv4: Missing sk_nulls_node_init() in ping_unhash().
  arm64: fix ftrace due to bad cherry-picks from mainline v3.19
  SELinux: ss: Fix policy write for ioctl operations
  nf: IDLETIMER: Adds the uid field in the msg
  arm64: ptrace: add NT_ARM_SYSTEM_CALL regset
  android: configs: Enable SELinux and its dependencies.
  arm64: add seccomp support
  arm64: add SIGSYS siginfo for compat task
  arm64: add seccomp syscall for compat task
  asm-generic: add generic seccomp.h for secure computing mode 1
  arm64: ptrace: allow tracer to skip a system call
  arm64: entry: avoid writing lr explicitly for constructing return paths
  Revert "arm64: ptrace: add PTRACE_SET_SYSCALL"
  Revert "arm64: ptrace: allow tracer to skip a system call"
  Revert "asm-generic: add generic seccomp.h for secure computing mode 1"
  ...

Signed-off-by: default avatarAmit Pundir <amit.pundir@linaro.org>

Conflicts:
	arch/arm64/include/asm/cpufeature.h
	arch/arm64/kernel/cpuinfo.c
	arch/arm64/kernel/setup.c
	drivers/clk/clk.c
parents cbe151c5 7ccfbece
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
What:		/sys/kernel/wakeup_reasons/last_resume_reason
Date:		February 2014
Contact:	Ruchi Kandoi <kandoiruchi@google.com>
Description:
		The /sys/kernel/wakeup_reasons/last_resume_reason is
		used to report wakeup reasons after system exited suspend.

What:		/sys/kernel/wakeup_reasons/last_suspend_time
Date:		March 2015
Contact:	jinqian <jinqian@google.com>
Description:
		The /sys/kernel/wakeup_reasons/last_suspend_time is
		used to report time spent in last suspend cycle. It contains
		two numbers (in seconds) separated by space. First number is
		the time spent in suspend and resume processes. Second number
		is the time spent in sleep state.
 No newline at end of file
+121 −0
Original line number Original line Diff line number Diff line
				=============
				A N D R O I D
				=============

Copyright (C) 2009 Google, Inc.
Written by Mike Chan <mike@android.com>

CONTENTS:
---------

1. Android
  1.1 Required enabled config options
  1.2 Required disabled config options
  1.3 Recommended enabled config options
2. Contact


1. Android
==========

Android (www.android.com) is an open source operating system for mobile devices.
This document describes configurations needed to run the Android framework on
top of the Linux kernel.

To see a working defconfig look at msm_defconfig or goldfish_defconfig
which can be found at http://android.git.kernel.org in kernel/common.git
and kernel/msm.git


1.1 Required enabled config options
-----------------------------------
After building a standard defconfig, ensure that these options are enabled in
your .config or defconfig if they are not already. Based off the msm_defconfig.
You should keep the rest of the default options enabled in the defconfig
unless you know what you are doing.

ANDROID_PARANOID_NETWORK
ASHMEM
CONFIG_FB_MODE_HELPERS
CONFIG_FONT_8x16
CONFIG_FONT_8x8
CONFIG_YAFFS_SHORT_NAMES_IN_RAM
DAB
EARLYSUSPEND
FB
FB_CFB_COPYAREA
FB_CFB_FILLRECT
FB_CFB_IMAGEBLIT
FB_DEFERRED_IO
FB_TILEBLITTING
HIGH_RES_TIMERS
INOTIFY
INOTIFY_USER
INPUT_EVDEV
INPUT_GPIO
INPUT_MISC
LEDS_CLASS
LEDS_GPIO
LOCK_KERNEL
LkOGGER
LOW_MEMORY_KILLER
MISC_DEVICES
NEW_LEDS
NO_HZ
POWER_SUPPLY
PREEMPT
RAMFS
RTC_CLASS
RTC_LIB
SWITCH
SWITCH_GPIO
TMPFS
UID_STAT
UID16
USB_FUNCTION
USB_FUNCTION_ADB
USER_WAKELOCK
VIDEO_OUTPUT_CONTROL
WAKELOCK
YAFFS_AUTO_YAFFS2
YAFFS_FS
YAFFS_YAFFS1
YAFFS_YAFFS2


1.2 Required disabled config options
------------------------------------
CONFIG_YAFFS_DISABLE_LAZY_LOAD
DNOTIFY


1.3 Recommended enabled config options
------------------------------
ANDROID_PMEM
PSTORE_CONSOLE
PSTORE_RAM
SCHEDSTATS
DEBUG_PREEMPT
DEBUG_MUTEXES
DEBUG_SPINLOCK_SLEEP
DEBUG_INFO
FRAME_POINTER
CPU_FREQ
CPU_FREQ_TABLE
CPU_FREQ_DEFAULT_GOV_ONDEMAND
CPU_FREQ_GOV_ONDEMAND
CRC_CCITT
EMBEDDED
INPUT_TOUCHSCREEN
I2C
I2C_BOARDINFO
LOG_BUF_SHIFT=17
SERIAL_CORE
SERIAL_CORE_CONSOLE


2. Contact
==========
website: http://android.git.kernel.org

mailing-lists: android-kernel@googlegroups.com
+57 −0
Original line number Original line Diff line number Diff line
The arm64 port of the Linux kernel provides infrastructure to support
emulation of instructions which have been deprecated, or obsoleted in
the architecture. The infrastructure code uses undefined instruction
hooks to support emulation. Where available it also allows turning on
the instruction execution in hardware.

The emulation mode can be controlled by writing to sysctl nodes
(/proc/sys/abi). The following explains the different execution
behaviours and the corresponding values of the sysctl nodes -

* Undef
  Value: 0
  Generates undefined instruction abort. Default for instructions that
  have been obsoleted in the architecture, e.g., SWP

* Emulate
  Value: 1
  Uses software emulation. To aid migration of software, in this mode
  usage of emulated instruction is traced as well as rate limited
  warnings are issued. This is the default for deprecated
  instructions, .e.g., CP15 barriers

* Hardware Execution
  Value: 2
  Although marked as deprecated, some implementations may support the
  enabling/disabling of hardware support for the execution of these
  instructions. Using hardware execution generally provides better
  performance, but at the loss of ability to gather runtime statistics
  about the use of the deprecated instructions.

The default mode depends on the status of the instruction in the
architecture. Deprecated instructions should default to emulation
while obsolete instructions must be undefined by default.

Note: Instruction emulation may not be possible in all cases. See
individual instruction notes for further information.

Supported legacy instructions
-----------------------------
* SWP{B}
Node: /proc/sys/abi/swp
Status: Obsolete
Default: Undef (0)

* CP15 Barriers
Node: /proc/sys/abi/cp15_barrier
Status: Deprecated
Default: Emulate (1)

* SETEND
Node: /proc/sys/abi/setend
Status: Deprecated
Default: Emulate (1)*
Note: All the cpus on the system must have mixed endian support at EL0
for this feature to be enabled. If a new CPU - which doesn't support mixed
endian - is hotplugged in after this feature has been enabled, there could
be unexpected results in the application.
+9 −0
Original line number Original line Diff line number Diff line
@@ -578,6 +578,15 @@ is completely unused; @cgrp->parent is still valid. (Note - can also
be called for a newly-created cgroup if an error occurs after this
be called for a newly-created cgroup if an error occurs after this
subsystem's create() method has been called for the new cgroup).
subsystem's create() method has been called for the new cgroup).


int allow_attach(struct cgroup *cgrp, struct cgroup_taskset *tset)
(cgroup_mutex held by caller)

Called prior to moving a task into a cgroup; if the subsystem
returns an error, this will abort the attach operation.  Used
to extend the permission checks - if all subsystems in a cgroup
return 0, the attach will be allowed to proceed, even if the
default permission check (root or same user) fails.

int can_attach(struct cgroup *cgrp, struct cgroup_taskset *tset)
int can_attach(struct cgroup *cgrp, struct cgroup_taskset *tset)
(cgroup_mutex held by caller)
(cgroup_mutex held by caller)


+85 −0
Original line number Original line Diff line number Diff line
@@ -28,6 +28,7 @@ Contents:
2.3  Userspace
2.3  Userspace
2.4  Ondemand
2.4  Ondemand
2.5  Conservative
2.5  Conservative
2.6  Interactive


3.   The Governor Interface in the CPUfreq Core
3.   The Governor Interface in the CPUfreq Core


@@ -218,6 +219,90 @@ a decision on when to decrease the frequency while running in any
speed. Load for frequency increase is still evaluated every
speed. Load for frequency increase is still evaluated every
sampling rate.
sampling rate.


2.6 Interactive
---------------

The CPUfreq governor "interactive" is designed for latency-sensitive,
interactive workloads. This governor sets the CPU speed depending on
usage, similar to "ondemand" and "conservative" governors, but with a
different set of configurable behaviors.

The tuneable values for this governor are:

target_loads: CPU load values used to adjust speed to influence the
current CPU load toward that value.  In general, the lower the target
load, the more often the governor will raise CPU speeds to bring load
below the target.  The format is a single target load, optionally
followed by pairs of CPU speeds and CPU loads to target at or above
those speeds.  Colons can be used between the speeds and associated
target loads for readability.  For example:

   85 1000000:90 1700000:99

targets CPU load 85% below speed 1GHz, 90% at or above 1GHz, until
1.7GHz and above, at which load 99% is targeted.  If speeds are
specified these must appear in ascending order.  Higher target load
values are typically specified for higher speeds, that is, target load
values also usually appear in an ascending order. The default is
target load 90% for all speeds.

min_sample_time: The minimum amount of time to spend at the current
frequency before ramping down. Default is 80000 uS.

hispeed_freq: An intermediate "hi speed" at which to initially ramp
when CPU load hits the value specified in go_hispeed_load.  If load
stays high for the amount of time specified in above_hispeed_delay,
then speed may be bumped higher.  Default is the maximum speed
allowed by the policy at governor initialization time.

go_hispeed_load: The CPU load at which to ramp to hispeed_freq.
Default is 99%.

above_hispeed_delay: When speed is at or above hispeed_freq, wait for
this long before raising speed in response to continued high load.
The format is a single delay value, optionally followed by pairs of
CPU speeds and the delay to use at or above those speeds.  Colons can
be used between the speeds and associated delays for readability.  For
example:

   80000 1300000:200000 1500000:40000

uses delay 80000 uS until CPU speed 1.3 GHz, at which speed delay
200000 uS is used until speed 1.5 GHz, at which speed (and above)
delay 40000 uS is used.  If speeds are specified these must appear in
ascending order.  Default is 20000 uS.

timer_rate: Sample rate for reevaluating CPU load when the CPU is not
idle.  A deferrable timer is used, such that the CPU will not be woken
from idle to service this timer until something else needs to run.
(The maximum time to allow deferring this timer when not running at
minimum speed is configurable via timer_slack.)  Default is 20000 uS.

timer_slack: Maximum additional time to defer handling the governor
sampling timer beyond timer_rate when running at speeds above the
minimum.  For platforms that consume additional power at idle when
CPUs are running at speeds greater than minimum, this places an upper
bound on how long the timer will be deferred prior to re-evaluating
load and dropping speed.  For example, if timer_rate is 20000uS and
timer_slack is 10000uS then timers will be deferred for up to 30msec
when not at lowest speed.  A value of -1 means defer timers
indefinitely at all speeds.  Default is 80000 uS.

boost: If non-zero, immediately boost speed of all CPUs to at least
hispeed_freq until zero is written to this attribute.  If zero, allow
CPU speeds to drop below hispeed_freq according to load as usual.
Default is zero.

boostpulse: On each write, immediately boost speed of all CPUs to
hispeed_freq for at least the period of time specified by
boostpulse_duration, after which speeds are allowed to drop below
hispeed_freq according to load as usual.

boostpulse_duration: Length of time to hold CPU speed at hispeed_freq
on a write to boostpulse, before allowing speed to drop according to
load as usual.  Default is 80000 uS.


3. The Governor Interface in the CPUfreq Core
3. The Governor Interface in the CPUfreq Core
=============================================
=============================================


Loading