aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-04-29netfilter: xt_qtaguid: Allow tracking loopbackJP Abgrall
In the past it would always ignore interfaces with loopback addresses. Now we just treat them like any other. This also helps with writing tests that check for the presence of the qtaguid module. Signed-off-by: JP Abgrall <jpa@google.com>
2013-04-29sync: don't log wait timeouts when timeout = 0Erik Gilling
Signed-off-by: Erik Gilling <konkers@android.com>
2013-04-29netfilter: xt_qtaguid: extend iface stat to report protocolsJP Abgrall
In the past the iface_stat_fmt would only show global bytes/packets for the skb-based numbers. For stall detection in userspace, distinguishing tcp vs other protocols makes it easier. Now we report ifname total_skb_rx_bytes total_skb_rx_packets total_skb_tx_bytes total_skb_tx_packets {rx,tx}_{tcp,udp,ohter}_{bytes,packets} Bug: 6818637 Signed-off-by: JP Abgrall <jpa@google.com>
2013-04-29gpu: ion: Only flush buffers in the chunk heap if they were used cachedRebecca Schultz Zavin
Change-Id: I4ffcf81a6be09e968310bbd882fb017415d61b48 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Refactor the code to zero buffersRebecca Schultz Zavin
Refactor the code in the system heap used to map and zero the buffers into a seperate utility so it can be called from other heaps. Use it from the chunk heap. Change-Id: I706341ae42b80bc4aae8a8614b4f73435bbf05d9 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29sync: Fix race condition between merge and signalØrjan Eide
The copied sync_pt was activated immediately. If the sync_pt was signaled before the entire merge was completed, the new fence's pt_list could be iterated over while it is still in the process of being created. Moving the the sync_pt_activate call for all new sync_pts to after both the sync_fence_copy_pts and the sync_fence_merge_pts calls ensure that the pt_list is complete and immutable before it can be reached from the timeline's active list. Signed-off-by: Erik Gilling <konkers@android.com>
2013-04-29cpufreq: interactive: fix race on governor start/stopLianwei Wang
There is race condition when both two cpu do CPUFREQ_GOV_STOP and one cpu do CPUFREQ_GOV_START soon. The sysfs_remove_group is not done yet on one cpu, but sysfs_create_group is called on another cpu, which cause governor start failed and then kernel panic in timer callback because the policy and cpu mask are all kfree in cpufreq driver. Replace atomic with mutex to lock the whole START/STOP sequence. Change-Id: I3762b3d44315ae021b8275aca84f5ea9147cc540 Signed-off-by: Lianwei Wang <a22439@motorola.com>
2013-04-29netfilter: xt_qtaguid: remove AID_* dependency for access controlJP Abgrall
qtaguid limits what can be done with /ctrl and /stats based on group membership. This changes removes AID_NET_BW_STATS and AID_NET_BW_ACCT, and picks up the groups from the gid of the matching proc entry files. Signed-off-by: JP Abgrall <jpa@google.com> Change-Id: I42e477adde78a12ed5eb58fbc0b277cdaadb6f94
2013-04-29gpu: ion: Modify zeroing code so it only allocates address space onceRebecca Schultz Zavin
vmap/vunmap spend a significant amount of time allocating the address space to map into. Rather than allocating address space for each page, instead allocate once for the entire allocation and then just map and unmap each page into that address space. Change-Id: I4a5c850717c80f75506a36b7ec2bcd55857b8dea Signed-off-by: Rebecca Schultz Zavin <rschultz@google.com>
2013-04-29cpufreq: interactive: fix deadlock on spinlock in timerTodd Poynor
Need to use irqsave/restore spinlock calls to avoid a deadlock in calls from the timer. Change-Id: I15b6b590045ba1447e34ca7b5ff342723e53a605 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: don't handle transition notification if not enabledTodd Poynor
If multiple governors are in use then avoid processing frequency transition notifications for CPUs on which the interactive governor is not enabled. Change-Id: Ibd75255b921d887501a64774a8c4f62302f2d4e4 Reported-by: Francisco Franco <francisco.franco@cloudcar.com> Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: init default values at compile timeTodd Poynor
Change-Id: Ia4966e949a6c24c34fdbd4a6e522cd7c37e4108e Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: default go_hispeed_load 99%, doc updatesTodd Poynor
Update default go_hispeed_load from 85% to 99%. Recent changes to the governor now use a default target_load of 90%. go_hispeed_load should not be lower than the target load for hispeed_freq, which could lead to oscillating speed decisions. Other recent changes reduce the need to dampen speed jumps on load spikes, while input event boosts from userspace are the preferred method for anticipating load spikes with UI impacts. General update to the documentation to reflect recent changes. Change-Id: I1b92f3091f42c04b10503cd1169a943b5dfd6faf Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: fix race on timer restart on governor startTodd Poynor
Starting the governor, or restarting on a hotplugged-in CPU, can race with the timer start in idle, triggering a BUG on timer already pending. Start the timer before setting the enable flag, and use enable_sem to protect the sequence (and ensure correct order of the update to the enable flag). Delete any existing timer for safety. Change-Id: Ife77cf9fe099e8fd8543224cbf148c6722c2ffb0 Reported-by: Francisco Franco <francisco.franco@cloudcar.com> Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: fix racy timer stoppingTodd Poynor
When stopping the governor, del_timer_sync() can race against an invocation of the idle notifier callback, which has the potential to reactivate the timer. To fix this issue, a read-write semaphore is used. Multiple readers are allowed as long as pcpu->governor_enabled is true. However it can be moved to false only after taking a write semaphore which would wait for any on-going asynchronous activities to complete and prevent any more of those activities to be initiated. [toddpoynor@google.com: cosmetic and commit text changes] Change-Id: Ib51165a735d73dcf964a06754c48bdc1913e13d0 Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2013-04-29cpufreq: interactive: fix boosting logicTodd Poynor
35a84de cpufreq: interactive: apply above_hispeed_delay to each step above hispeed caused the speed choice logic to osciallate between boosting and not boosting. Add back code to ensure speed does not drop below boost frequency while boosting. Change-Id: Id420068480fcc7f5c4989ff523e2a8d22e2f4db2 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: add timer slack to limit idle at speed > minTodd Poynor
Always use deferrable timer for load sampling. Set a non-deferrable timer to an additional slack time to allow prior to waking up from idle to drop speed when not at minimum speed. Slack value -1 avoids wakeups to drop speed. Default is 80ms. Remove the governidle module param and its timer management in idle. For platforms on which holding speed above mimum in idle costs power, use the new timer slack to select how long to wait before waking up to drop speed. Change-Id: I270b3980667e2c70a68e5bff534124b4411dbad5 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29hardlockup: detect hard lockups without NMIs using secondary cpusColin Cross
Emulate NMIs on systems where they are not available by using timer interrupts on other cpus. Each cpu will use its softlockup hrtimer to check that the next cpu is processing hrtimer interrupts by verifying that a counter is increasing. This patch is useful on systems where the hardlockup detector is not available due to a lack of NMIs, for example most ARM SoCs. Without this patch any cpu stuck with interrupts disabled can cause a hardware watchdog reset with no debugging information, but with this patch the kernel can detect the lockup and panic, which can result in useful debugging info. Signed-off-by: Colin Cross <ccross@android.com>
2013-04-29cpufreq: interactive: specify duration of CPU speed boost pulseTodd Poynor
Sysfs attribute boostpulse_duration specifies the duration of boosting CPU speed in response to bootpulse events. Duration is specified in usecs, default 80ms. Change-Id: Ifd41625574891a44f1787a4e85d1e7b4f2afb52b Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: adjust load for changes in speedTodd Poynor
Add notifier for speed transitions. Keep a count of CPU active microseconds times current frequency, converted to a percentage relative to the current frequency when load is evaluated. Change-Id: I5c27adb11081c50490219784ca57cc46e97fc28c Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29gpu: ion: Remove heapmask from clientRebecca Schultz Zavin
The heapmask in the client generally wasn't being used. This patch removes it. Change-Id: I3526723fbf8f2e81c28c0733deb583ea14bdd837 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Export ion_client_createJohan Mossberg
Will enable modules to allocate memory with ion. Signed-off-by: Johan Mossberg <johan.mossberg@stericsson.com>
2013-04-29gpu: ion: Clarify variable names and comments around heap ids v typesRebecca Schultz Zavin
There is some confusion between when to use the heap type and when the id. This patch clarifies this by using clearer variable names and describing the intention in the comments. Also fixes the client debug code to print heaps by id instead of type. Change-Id: Ie8b3dadded52e18590fcb2ca94001f6ed46ef07d Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Add chunk heapRebecca Schultz Zavin
This patch adds support for a chunk heap that allows for buffers that are made up of a list of fixed size chunks taken from a carveout. Chunk sizes are configured when the heaps are created by passing the chunk size in the priv field of the heap platform data. Change-Id: Ia9e003f727b553a92804264debe119dcf78b14e0 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Refactor common mapping functions out of system heapRebecca Schultz Zavin
The system heap contained several general purpose functions to map buffers to the kernel and userspace. This patch refactors those into ion_heap.c so they can be used by other heaps. Change-Id: If64591798bdc2c248bf9064ace2c927909d7adb8 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Switch heap rbtree to a prio listRebecca Schultz Zavin
Switches the rbtree tree of heaps for a plist. This significantly simplifies the code and the list is small and is modified only at first boot so the rbtree is unnecessary. This also switches the traversal of the heap list to traverse from highest to lowest id's. This allows allocations to pass a heap mask that falls back on the system heap -- typically id 0, which is the common case. Change-Id: I715be6f4cf020a84ca4f1947c30ee3d2559fb523 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Fix bug where MAP ioctl was no longer supportedRebecca Schultz Zavin
Change-Id: Idbe628ed7dbd6a14469194120b94934d6e99d367 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Modify reserve function for carveouts with no start addressRebecca Schultz Zavin
This patch allows you to specify a heap that requires carveout memory but that doesn't specify a start address. Memblock_alloc will be called to find a location for these heaps. Change-Id: I9c79b30e3105e796060fc74b058f04093ee5e96e Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29cpufreq: interactive: remove load since last speed changeTodd Poynor
The longer-term load since last speed change isn't terribly useful, may delay recognition of dropping load, and would need forthcoming changes to adjust load for changing CPU speeds. Drop it. Change-Id: Ic3cbb0542cc3484617031787e03ed9bdd632dec1 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: allow arbitrary speed / target load mappingsTodd Poynor
Accept a string of target loads and speeds at which to apply the target loads, per the documentation update in this patch. 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. Attempt to avoid oscillations by evaluating the current speed weighted by current load against each new choice of speed, choosing a higher speed if the current load requires a higher speed. Change-Id: Ie3300206047c84eca5a26b0b63ea512e5207550e Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29gpu: ion: fix compilation warningBenjamin Gaignard
use atomic_read to get the refcount value to avoid compilation warning Change-Id: I9bf0a07c787af8f87ac19314f996a78142f72f6b Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
2013-04-29gpu: ion: fix carveout opsBenjamin Gaignard
when using carveout heap ion_buffer_create function failed because map_dma and unmap_dma operations aren't set by carveout heap. Change-Id: I817bfad742abfab10b01d9b3d2e18bdf812a1307 Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
2013-04-29gpu: ion: Fix bug in zeroing pages in system heapRebecca Schultz Zavin
Pages are zeroed for security purposes when returned to the ion heap. There was a bug in this code preventing this from happening. Bug: 7573871 Change-Id: I79c22ee1da98f306199f3a192eaec4e81d5fd059 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29cpufreq: interactive: apply above_hispeed_delay to each step above hispeedTodd Poynor
Apply above_hispeed_delay whenever increasing speed to a new speed above hispeed (not just the first step above hispeed). Change-Id: Ibb7add7db47f2a4306a9458c4e1ebabb60698636 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: change speed according to current speed and target loadTodd Poynor
Add a target_load attribute that specifies how aggressively the governor is to adjust speed to meet the observed load. New target speed is calculated as the current actual speed (may be higher than target speed on SMP) times the CPU load (as a fraction) divided by target load (fraction). cpufreq_frequency_table_target() call use CPUFREQ_RELATION_L to set the next higher speed rather than next lower speed. Change-Id: If432451da82f5fed12e15c9421d7d27792376150 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: trace actual speed in target speed decisionsTodd Poynor
Tracing adds actual speed since this is expected to be key to the choice of target speed. Change-Id: Iec936102d0010c4e9dfa143c38a9fd0d551189c3 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29android: logger: enforce GID and CAP check on log flushCharndeep Grewal
Restrict log flushing to those in the logs group, or anyone with CAP_SYSLOG. Change-Id: I5d6977d1c0d60ffe8487771cc195789e5db95454 Signed-off-by: Charndeep Grewal <csgrewa@tycho.ncsc.mil>
2013-04-29usb: gadget: accessory: Fix section mismatch (again)Todd Poynor
create_bulk_endpoints should not be __init since it is called when accessory is enabled. Change-Id: Iac6e9f29d53c93760e926efd8e7603432632acb4 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29netfilter: qtaguid: Don't BUG_ON if create_if_tag_stat failsPontus Fuchs
If create_if_tag_stat fails to allocate memory (GFP_ATOMIC) the following will happen: qtaguid: iface_stat: tag stat alloc failed ... kernel BUG at xt_qtaguid.c:1482! Signed-off-by: Pontus Fuchs <pontus.fuchs@gmail.com>
2013-04-29cpufreq: interactive: kick timer on idle exit past expiryTodd Poynor
The deferrable timer list isn't checked on all idle exits, such as when hi-res timers expire or ISRs schedule workers. If the idle loop is exited and it's past time to run the governor load polling timer, run it immediately. This ensures we handle load spikes caused by actvity that does not run the normal timer list. Rename the field that timestamps the "time_in_idle" value to be more accurate. Change-Id: Ied590ecbefc83c9a9ec5eb9e31903557f6fa1614 Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: use deferrable timer by defaultLianwei Wang
Avoid wakeups only to handle the governor timer when the system is otherwise idle. For platforms where the power cost of remaining in idle at higher CPU speed may outweigh the cost of a governor wakeup from idle to lower the speed, set parameter cpufreq_interactive.governidle=1. Change-Id: Id6c43eb35caecf9b0574fcdd5b769711bc7e6de6 Signed-off-by: LianWei WANG <a22439@motorola.com> Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29cpufreq: interactive: pin timers to associated CPUTodd Poynor
Helps avoid waking up other CPUs to react to activity on the local CPU. Change-Id: Ife272aaa7916894a437705d44521b1a1693fbe8e Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29ARM: fiq_debugger: fix uninitialised spin_lock.Mars
Backtrace: [<c0045ea0>] (dump_backtrace+0x0/0x10c) from [<c0575c60>] (dump_stack+0x1) r6:c07a489c r5:c0c9b9dc r4:00000002 r3:271aed3b [<c0575c48>] (dump_stack+0x0/0x1c) from [<c00b1b00>] (__lock_acquire+0x93) [<c00b11c8>] (__lock_acquire+0x0/0xad4) from [<c00b219c>] (lock_acquire+0) [<c00b210c>] (lock_acquire+0x0/0xa4) from [<c057e544>] (_raw_spin_lock_ir) [<c057e4f8>] (_raw_spin_lock_irq+0x0/0x5c) from [<c005297c>] (fiq_tty_wri) r5:e30f0000 r4:e36f0c00 [<c005293c>] (fiq_tty_write+0x0/0x80) from [<c023168c>] (n_tty_write+0x18) r8:e370fc40 r7:e378a000 r6:e3572d1c r5:e36f0c00 r4:00000002 r3:c005293c [<c0231500>] (n_tty_write+0x0/0x440) from [<c022d4a4>] (tty_write+0x100/0) [<c022d3a4>] (tty_write+0x0/0x2a8) from [<c0100b80>] (vfs_write+0xa4/0x14) [<c0100adc>] (vfs_write+0x0/0x148) from [<c0100cdc>] (sys_write+0x40/0x78) r8:00000002 r7:4076d2c4 r6:e370fc40 r5:00000000 r4:00000000 [<c0100c9c>] (sys_write+0x0/0x78) from [<c0041740>] (ret_fast_syscall+0x0) r8:c0041908 r7:00000004 r6:00000002 r5:00000000 r4:4007cbe0 [ccross: moved spin_lock_init into existing #ifdef] Change-Id: If400d084eb20433c126ea1dd027a6be7f2ebb1f6 Signed-off-by: Mars <caoziqiang@meizu.com> Signed-off-by: Colin Cross <ccross@android.com>
2013-04-29ARM: fiq_debugger: lock between tty and console writesColin Cross
debug_console_write calls debug_uart_flush, which will usually wait until the serial port fifo empties. If another thread is continuously calling fiq_tty_write, the fifo will constantly be refilled and debug_uart_flush might never return. Add a spinlock that is locked in debug_console_write and fiq_tty_write to ensure they can't run at the same time. This has an extra advantage of preventing lines from the console and tty from being mixed together. Also reduce the size returned by fiq_tty_write_room to keep the time spent with the spinlock held to a reasonable value. In addition, make sure fiq context can't loop forever by never calling debug_uart_flush when the console is enabled. Change-Id: I5712b01f740ca0c84f680d2032c9fa16b7656939 Signed-off-by: Colin Cross <ccross@android.com>
2013-04-29sync: add Documentation/sync.txtErik Gilling
Change-Id: Ic7f3a6d4622083be607b82ddd8d676609225bb8f Signed-off-by: Erik Gilling <konkers@android.com>
2013-04-29gpu: ion: Fix bug in ion_system_heap map_userRebecca Schultz Zavin
When the requested mmap length was not an integer number of chunks or the buffer, or if an offset was provided, a bug would cause extra or incorrect pages of the buffer to be mapped. Change-Id: I2766763d86048f026eeef0e0388b7de0e25c2093 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Don't flush allocatoins that come from the page poolsRebecca Schultz Zavin
Change-Id: Ib08cb2cea3b6ea4b1ebf5a1b28abe6b9374fd2bd Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29gpu: ion: Clear GFP_WAIT flag on high order allocationsRebecca Schultz Zavin
This will prevent the kernel from kicking off compaction when higher order allocations are made. Instead we will get these high order allocations only if they are readily available. Change-Id: I5c038781ef4028c1c0a1a52b6cb549d26550a124 Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2013-04-29power: android-battery: Allow changing current in charging stateDanke Xie
When a new charge source is set, enable charging and set the charging current, unless we've paused charging due to battery full or battery health problems. Change-Id: I129e621c455a941e264dc431b4eb9db6a17c9f7b Signed-off-by: Danke Xie <d.xie@sta.samsung.com> Signed-off-by: Todd Poynor <toddpoynor@google.com>
2013-04-29sync: add tracepoint supportErik Gilling
Change-Id: I181326db4247009161557e45444c9b3548b83d25 Signed-off-by: Erik Gilling <konkers@android.com>