Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
218 commits
Select commit Hold shift + click to select a range
3ac932d
Sync with Glitch_Flo_CAF since -glitched- commit. It did need fixes a…
Tk-Glitch Nov 15, 2013
8a5e6e3
AOSP naming for aroma and localversion
Tk-Glitch Nov 15, 2013
db32737
block : Add updated ROW i/o scheduling algorithm
Tk-Glitch Nov 15, 2013
779f59a
Buildscript : prepare for CM compat
Tk-Glitch Nov 17, 2013
7041270
Buildscript : Add CM compat patch
Tk-Glitch Nov 17, 2013
10f1a11
Add 162 and 270 MHz CPU low frequencies
Tk-Glitch Nov 17, 2013
17b1a9f
Print glitch kernel "name" on uV instead of eleX
Tk-Glitch Nov 17, 2013
3fad3ae
ARM: 7670/1: fix the memset fix
Tk-Glitch Nov 17, 2013
17616be
arm: unwind: Remove logspam while in debug mode
Tk-Glitch Nov 17, 2013
f51e1f6
"N7" naming instead of "flo"
Tk-Glitch Nov 17, 2013
d42fbdc
buildscript : fix comment
Tk-Glitch Nov 17, 2013
166aa62
Merge with kitkat-mr0
Tk-Glitch Nov 20, 2013
76c0128
Aroma : Add selectable minimum cpu frequency option
Tk-Glitch Nov 20, 2013
2f92e98
Update intelli-plug - Thanks to Faux123
Tk-Glitch Nov 21, 2013
65cf6ed
softirq: reduce latencies
Tk-Glitch Nov 21, 2013
00244c2
Command line options for s2w_orientation and pwrkey_suspend and disab…
Tk-Glitch Nov 27, 2013
1b13758
intellidemand : Change optimal freq for power saving
Tk-Glitch Nov 27, 2013
b3bcddc
intelli_plug: performance tune-up continued...
Tk-Glitch Nov 27, 2013
dccfb03
SCHEDULER: Autogroup patch group by current user android UID instead …
Tk-Glitch Nov 27, 2013
4639d87
Sound Control: (Optional) work around for WCD93xx audio
Tk-Glitch Dec 10, 2013
d842b2d
Sound Control: (OPTIONAL) add power amp registers access
Tk-Glitch Dec 10, 2013
dce1de3
sound control: add register cache
Tk-Glitch Dec 10, 2013
a1f4b34
intell_plug: add FLO/DEB specific touchscreen device input
Tk-Glitch Dec 10, 2013
cb33ffe
msm: kgsl: Add an input handler to power up the GPU on a
Tk-Glitch Dec 10, 2013
ff0b7a4
intellidemand: sync with Hammerhead Intellidemand 5.0
Tk-Glitch Dec 10, 2013
73c74eb
intellidemand: minor clean up and tailor for APQ8064 devices
Tk-Glitch Dec 10, 2013
80c90f6
intelli_plug: tune for tablet devices
Tk-Glitch Dec 10, 2013
46a0697
Merge with kitkat-mr1
Tk-Glitch Dec 10, 2013
c6359b9
ARM: Use -mcpu=cortex-a15 when targeting MSM Krait CPUs
Tk-Glitch Dec 10, 2013
999f8c3
Makefile adjustments
Tk-Glitch Dec 10, 2013
61f99eb
sched: Fix clear NOHZ_BALANCE_KICK
Tk-Glitch Dec 10, 2013
7a84f6a
msm: idle-v7: flush non secure L1 cache lines for l2 GDHS LPM
Tk-Glitch Dec 10, 2013
df7b148
writeback: fix race that cause writeback hung
Tk-Glitch Dec 10, 2013
688753f
cfg80211: Fix memory leak
Tk-Glitch Dec 10, 2013
63873de
Aroma : December release
Tk-Glitch Dec 10, 2013
6cc0952
Add a hotplug driver selector and change a few default values
Tk-Glitch Dec 14, 2013
daf2698
cpu: noop nonboot_cpu calls if MSM_MPDEC is compiled
Tk-Glitch Dec 14, 2013
0094d4e
msm_mpdecision : update to latest, thanks to showp1984
Tk-Glitch Dec 14, 2013
c2e3946
Add back Faux123's msm_cpufreq_limiter
Tk-Glitch Dec 19, 2013
46da09e
cpufreq: enable sibling cpu policy sharing
Tk-Glitch Dec 19, 2013
5430698
Update defconfig - Disable MPDEC inputboost - disable freq min/max - …
Tk-Glitch Dec 19, 2013
d8e654f
Revert "Add back Faux123's msm_cpufreq_limiter"
Tk-Glitch Dec 19, 2013
2c3ff67
Aroma : Add an option to enable/disable Showp1984's input-boost.
Tk-Glitch Dec 19, 2013
0d67297
defconfig : Get back input-boost and freq min/max.
Tk-Glitch Dec 19, 2013
0810bea
Aroma : Added an option to keep settings from a previous installation.
Tk-Glitch Dec 19, 2013
0539d70
cpufreq : Add Smartmax governor
Tk-Glitch Dec 19, 2013
c87f8fd
defconfig : get conservative back and enable smartmax
Tk-Glitch Dec 19, 2013
321de91
Aroma : Get the L2/bus OC out of the full install only as we need it …
Tk-Glitch Dec 19, 2013
3f691a1
tick: Dynamically set broadcast irq affinity
Tk-Glitch Dec 20, 2013
0777d5a
cpuidle: make a single register function for all
Tk-Glitch Dec 20, 2013
fce3102
kthread: squash
Tk-Glitch Dec 20, 2013
b3ceb52
kthread: Implement park/unpark facility
Tk-Glitch Dec 20, 2013
946fded
block: row: add magic values.
Tk-Glitch Dec 20, 2013
58819f3
smp: patches from mainline 3.5 to hopefully help with hotplug
Tk-Glitch Dec 20, 2013
275eabd
smp, idle: Allocate idle thread for each possible cpu during
Tk-Glitch Dec 20, 2013
a5d5cc4
smpboot, idle: Optimize calls to smp_processor_id() in
Tk-Glitch Dec 20, 2013
6bb5717
smpboot, idle: Fix comment mismatch over idle_threads_init()
Tk-Glitch Dec 20, 2013
889be9b
smpboot: Provide infrastructure for percpu hotplug threads
Tk-Glitch Dec 20, 2013
69afa4c
hotplug: Fix UP bug in smpboot hotplug code
Tk-Glitch Dec 20, 2013
b4443bf
smpboot: Allow selfparking per cpu threads
Tk-Glitch Dec 20, 2013
1c76222
stop_machine: Store task reference in a separate per cpu
Tk-Glitch Dec 20, 2013
5743ddd
stop_machine: Use smpboot threads
Tk-Glitch Dec 20, 2013
1cd3b43
stop_machine: Mark per cpu stopper enabled early
Tk-Glitch Dec 20, 2013
b1680a0
kthread: Prevent unpark race which puts threads on the wrong
Tk-Glitch Dec 20, 2013
c46918c
sched: Fix select_idle_sibling() bouncing cow syndrome
Tk-Glitch Dec 20, 2013
005515d
sched: Implement smarter wake-affine logic
Tk-Glitch Dec 20, 2013
dfeb620
sched: Micro-optimize the smart wake-affine logic
Tk-Glitch Dec 20, 2013
294ed2c
Aroma : change the aroma loading image
Tk-Glitch Dec 20, 2013
5815acc
defconfig : Add GENERIC_SMP_IDLE_THREAD
Tk-Glitch Dec 20, 2013
8f7edee
cpuinit: get rid of __cpuinit in the new smpboot.c
Tk-Glitch Dec 20, 2013
02617d8
Linux 3.4.2
Tk-Glitch Dec 21, 2013
3809182
Linux 3.4.3
Tk-Glitch Dec 21, 2013
c845357
Linux 3.4.4
Tk-Glitch Dec 21, 2013
cbac6fe
Linux 3.4.5
Tk-Glitch Dec 21, 2013
c17cb40
ARM: 7583/1: decompressor: Enable unaligned memory access
Tk-Glitch Dec 21, 2013
c20ecac
arch/arm/Kconfig: enable unaligned capability for ARM
Tk-Glitch Dec 21, 2013
7787981
sched: Add sysinterface for GENTLE_FAIR_SLEEPERS
Tk-Glitch Dec 21, 2013
24028ef
kernel: Move REPEAT_BYTE definition into linux/kernel.h
Tk-Glitch Dec 21, 2013
bc22792
ARM: 7493/1: use generic unaligned.h
Tk-Glitch Dec 21, 2013
1ecf1fc
ARM: 7592/1: nommu: prevent generation of kernel unaligned
Tk-Glitch Dec 21, 2013
3d19f5a
Fix derp
Tk-Glitch Dec 21, 2013
c5872a7
defconfig : Update defconfig
Tk-Glitch Dec 21, 2013
aa005dd
Linux 3.4.6 - 3.4.30
Tk-Glitch Dec 21, 2013
58c9f88
sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
Tk-Glitch Dec 21, 2013
170a77f
staging: android: Fix three checkpatch issues in binder.c
Tk-Glitch Dec 21, 2013
626ec0f
staging: android: Lower reserved logger RAM
Tk-Glitch Dec 21, 2013
c7c9e74
Linux 3.4.31 - 3.4.60
Tk-Glitch Dec 21, 2013
6158936
Fix derp
Tk-Glitch Dec 21, 2013
f9d0191
kgsl : remove simple governor, add FranciscoFranco's interactive gove…
Tk-Glitch Dec 21, 2013
86ebb91
defconfig : update defconfig
Tk-Glitch Dec 21, 2013
8c73899
Aroma : Add GPU clock settings and Gentle Fair Sleepers switch, repla…
Tk-Glitch Dec 22, 2013
402519f
Defconfig : remove Simple GPU gov
Tk-Glitch Dec 22, 2013
bc0a9e6
Fix derp
Tk-Glitch Dec 22, 2013
d6bd73d
OTG+charge hack: restore peripherals on power loss (partly
Tk-Glitch Dec 22, 2013
44c4266
drivers/input/touchscreen/ektf3k: auto retry 10 times on i2c
Tk-Glitch Dec 22, 2013
4c83e60
Add LCDC LUT and initial code for generic MSM LCD temperature
Tk-Glitch Dec 22, 2013
2ae054e
Cleanup and update Makefile/defconfig
Tk-Glitch Dec 22, 2013
e8da89a
Update aroma "changelog"
Tk-Glitch Dec 22, 2013
ce950c4
Add back 400 MHz as selectable GPU speed. Also update Aroma settings.
Tk-Glitch Jan 6, 2014
f60084b
readahead: make context readahead more conservative
Tk-Glitch Jan 6, 2014
a9c092a
block: Reserve only one queue tag for sync IO if only 3 tags
Tk-Glitch Jan 6, 2014
f1a599b
mm, vmalloc: use well-defined find_last_bit() func
Tk-Glitch Jan 6, 2014
ba15006
mm, vmalloc: remove useless variable in vmap_block
Tk-Glitch Jan 6, 2014
2198410
alarmtimer: implement minimum alarm interval for allowing
Tk-Glitch Jan 6, 2014
ecd6bdc
alarmtimer: Use hrtimer per-alarm instead of per-base
Tk-Glitch Jan 6, 2014
ef3b875
[sweep2wake]: adjust shortsweep distance
Tk-Glitch Jan 6, 2014
9d8e626
nohz: Reduce overhead under high-freq idling patterns
Tk-Glitch Jan 6, 2014
45fa55b
msm: kgsl: change the load calculation equation & fix a
Tk-Glitch Jan 6, 2014
4c6b22e
msm: kgsl: don't forcefully ramp down on sleep if there's
Tk-Glitch Jan 6, 2014
88774f0
msm: kgsl: remove the sample_time_ms and let the governor run
Tk-Glitch Jan 6, 2014
c5c4b8a
Optimize deadline iosched for our devices
Tk-Glitch Jan 6, 2014
ff85a43
Aroma : Update binary
Tk-Glitch Jan 6, 2014
1b13d35
Aroma : Hello 2014 !
Tk-Glitch Jan 6, 2014
889ddfc
Aroma : Updater-script changes. Fix compatbility2.sh permissions.
Tk-Glitch Jan 8, 2014
3606227
Sync with exp_codeaurora from cb93e880ce6c0411127cbc3b39a1fe5ab7cf622…
Tk-Glitch Jan 8, 2014
e506fa8
sched,rt: disable rt_runtime borrowing by default
Tk-Glitch Jan 8, 2014
ca29479
sched: remove redundant update_runtime notifier
Tk-Glitch Jan 8, 2014
23b5962
sched: reinitialize rq->next_balance when a CPU is hot-added
Tk-Glitch Jan 8, 2014
e430999
Aroma : Force disable input-boost if Qualcomm MPDEC is selected
Tk-Glitch Jan 8, 2014
dfcd600
Squash a lot of slab, slob and slub commits from Faux123
Tk-Glitch Jan 8, 2014
0f398b5
buildscript : Use updated SM toolchain
Tk-Glitch Jan 8, 2014
13b9ef3
vfp : Use vfpv4 with neon
Tk-Glitch Jan 8, 2014
7ac14d5
Add GPU voltage control
Tk-Glitch Jan 8, 2014
5f3d061
Aroma : Add GPU uV presets from -25 to -150mV
Tk-Glitch Jan 8, 2014
cbfcee3
Make the L2 frequency jumps more linear between cpufreq steps
Tk-Glitch Jan 8, 2014
f2e8e54
DRIVERS: SLIMBUS: initial overclocking of slimbus .Increase
Tk-Glitch Jan 8, 2014
6c121f6
msm_mpdecision : Hardcode minfreq and disable MSM_CPU_FREQ_SET_MIN_MAX
Tk-Glitch Jan 9, 2014
aee9bac
Touchscreen : More patches from Showp1984.
Tk-Glitch Jan 9, 2014
0042ceb
Linux 3.4.61
gregkh Sep 8, 2013
c703031
htb: fix sign extension bug
shemminger Aug 2, 2013
461857d
Linux 3.4.62 - commits squashed
gregkh Sep 14, 2013
da4ebf6
Linux 3.4.63 - 40 commits squashed
gregkh Sep 27, 2013
c43ae01
Merge pull request #1 from animania260/google-flo
Tk-Glitch Jan 13, 2014
2c8f3aa
Linux 3.4.64 - 21 commits squashed
gregkh Oct 1, 2013
42b4c98
Linux 3.4.65 - 16 commits squashed
gregkh Oct 5, 2013
2e2a4d3
Missed __cpuinit removal.
Tk-Glitch Jan 13, 2014
e2c7e48
Revert "Squash a lot of slab, slob and slub commits from Faux123"
Tk-Glitch Jan 13, 2014
0e10e6c
Buildscript : Cleanup
Tk-Glitch Jan 13, 2014
50e7a8d
mm: Lower read-ahead buffer to fix stuttering introduced with recent …
Tk-Glitch Jan 13, 2014
491fbe5
Linux 3.4.66 - 47 commits squashed
gregkh Oct 13, 2013
6cf5bf3
Linux 3.4.67 - 11 commits squashed
gregkh Oct 22, 2013
129ff10
Linux 3.4.68 - Squashed 32 commits
gregkh Nov 4, 2013
c5d8bef
Merge pull request #2 from animania260/google-flo
Tk-Glitch Jan 13, 2014
bbb9b79
Linux 3.4.69 - 26 commits squashed
gregkh Nov 13, 2013
89186d1
Linux 3.4.70 - 10 commites squashed
gregkh Nov 20, 2013
584efba
Linux 3.4.71 - 40 commits squashed
gregkh Nov 29, 2013
87b39de
Linux 3.4.72 - 60 commits squashed
gregkh Dec 4, 2013
cb64426
Linux 3.4.73 - 30 commits squashed
gregkh Dec 8, 2013
4d662f4
Merge pull request #3 from animania260/google-flo
Tk-Glitch Jan 13, 2014
3ad1305
Fix compilation for previous merge
Tk-Glitch Jan 13, 2014
4982be1
edac: Don't try to cancel workqueue when it's never setup
Tk-Glitch Jan 13, 2014
9c79d2b
msm: kgsl: Protect against a potential overflow in
Tk-Glitch Jan 13, 2014
1241fbc
msm: kgsl: avoid zero length scatterlist allocation
Tk-Glitch Jan 13, 2014
05061ed
Linux 3.4.73 - 3.4.76
Tk-Glitch Jan 16, 2014
1578e93
ARM: mm: implement LoUIS API for cache maintenance ops
Tk-Glitch Jan 16, 2014
3b90d02
ARM: mm: rename jump labels in v7_flush_dcache_all function
Tk-Glitch Jan 16, 2014
cb52c0d
ARM: kernel: update cpu_suspend code to use cache LoUIS
Tk-Glitch Jan 16, 2014
3688de1
ARM: kernel: update __cpu_disable to use cache LoUIS
Tk-Glitch Jan 16, 2014
6557cc3
ARM: mm: update __v7_setup() to the new LoUIS cache
Tk-Glitch Jan 16, 2014
5dce31e
Update Faux123's color control driver to unlock gamma settings, updat…
Tk-Glitch Jan 16, 2014
5d453fb
arch/arm/mach-msm/Kconfig: decouple QCACHE from MSM board
Tk-Glitch Jan 16, 2014
a7c6e3a
jiffies conversions: Use compile time constants when possible
Tk-Glitch Jan 16, 2014
2599f7b
We don't need this hack anymore
Tk-Glitch Jan 17, 2014
488f122
net: do not pretend FRAGLIST support
edumazet Dec 2, 2013
c7d5aeb
Linux 3.4.77 - 26 commits squashed
gregkh Jan 15, 2014
850a3f4
mm: remove swap token code
Tk-Glitch Jan 17, 2014
e5ea1a4
mm: pass readahead info down to the i/o scheduler
Tk-Glitch Jan 17, 2014
1ba0c6d
ARM: fix "bad mode in ... handler" message for undefined instructions
Tk-Glitch Jan 17, 2014
38b4bf5
epoll: trim epitem by one cache line
Apr 30, 2013
0c95dd7
kernel/smp.c: use '|=' for csd_lock
Apr 30, 2013
c70a6f6
ext4: speed up truncate/unlink by not using bforget() unless needed
Sep 19, 2012
1bc9f9f
jbd2: optimize jbd2_journal_force_commit
mrg666 Dec 23, 2013
696bf60
net: loopback: set default mtu to 64K
edumazet Sep 23, 2012
a91218a
workqueue: don't use WQ_HIGHPRI for unbound workqueues
htejun Jul 12, 2012
5e2550f
cpufreq: Fix policy getting stuck when user & kernel min/max
Tk-Glitch Jan 17, 2014
f754e2a
ARM: 7880/1: Clear the IT state independent of the Thumb-2
Tk-Glitch Jan 17, 2014
54eb4e2
Revert "mm: Lower read-ahead buffer to fix stuttering introduced with…
Tk-Glitch Jan 23, 2014
fe17f4a
Update Aroma "changelog" (features list)
Tk-Glitch Jan 23, 2014
9b77889
Revert "workqueue: don't use WQ_HIGHPRI for unbound workqueues"
animania260 Jan 25, 2014
2017219
Revert "mm: pass readahead info down to the i/o scheduler"
Tk-Glitch Jan 23, 2014
4f2686c
Update defconfig
Tk-Glitch Jan 23, 2014
c12f04b
ARM: hw_breakpoint: Clear breakpoints before enabling monitor
Tk-Glitch Jan 24, 2014
933114a
ARM: hw_breakpoint: enable HAVE_HW_BREAKPOINT feature flag
Tk-Glitch Jan 24, 2014
a296c1d
Update defconfig
Tk-Glitch Jan 24, 2014
cf9c459
Staging: android: binder: Fix memory leak on thread/process
Tk-Glitch Jan 25, 2014
c099fbf
Aroma : Fix an error that would be displayed in the installer
Tk-Glitch Jan 25, 2014
c780219
cpufreq : Sync ondemand with codeaurora while removing CPU
Tk-Glitch Jan 25, 2014
e0ce225
Update MSM BUS
Tk-Glitch Jan 25, 2014
27982cb
Revert "Revert "mm: pass readahead info down to the i/o scheduler""
animania260 Jan 25, 2014
5e18251
workqueue: don't use WQ_HIGHPRI for unbound workqueues
htejun Jul 12, 2012
1dc68a4
Revert "workqueue: don't use WQ_HIGHPRI for unbound workqueues"
animania260 Jan 28, 2014
2000c4f
Aroma : Change the installation process for more personnalization. Al…
Tk-Glitch Jan 28, 2014
be3ae0b
msm:rq_stats: Register for Cpufreq policy notification
Tk-Glitch Jan 28, 2014
fea75f2
msm: rpm-smd: Configure WQ for higer priority
Tk-Glitch Jan 28, 2014
78e68c5
msm: kgsl: remove obsolete code.
Tk-Glitch Jan 28, 2014
8648ec5
af_unix: speedup /proc/net/unix /proc/net/unix has quadratic
Tk-Glitch Jan 28, 2014
11cf0c2
Aroma : Add optimized Dalvik/bionic to the installer
Tk-Glitch Jan 28, 2014
234785a
Makefile: update toolchain path. Defconfig: re-add CONFIG_HAVE_EFFICI…
animania260 Jan 29, 2014
03f74e4
Linux 3.4.78 - 9 commits squashed
gregkh Jan 29, 2014
46c49e5
Aroma : Fix skip of needed settings when keeping settings.
Tk-Glitch Jan 28, 2014
00992bc
Buildscript : Zip optimized Dalvik/bionic with everything else.
Tk-Glitch Jan 29, 2014
eea733b
Change the way min clock and auto-uV are applied to get more control,…
Tk-Glitch Jan 30, 2014
61fd004
Aroma : This doesn't apply anymore.
Tk-Glitch Jan 30, 2014
610b5b4
Aroma : Copy/paste fail
Tk-Glitch Jan 30, 2014
987f9c0
Aroma : fix permissions after backup restoration.
Tk-Glitch Jan 30, 2014
e3348ed
Aroma : More features
Tk-Glitch Jan 31, 2014
5223e77
Aroma : Fix syntax of a few things, fix permissions, add a check for …
Tk-Glitch Jan 30, 2014
489934e
Aroma : END
Tk-Glitch Jan 31, 2014
142fcdd
Add support for Flar2's MSM_SLEEPER (max screen off frequency). Add i…
Tk-Glitch Jan 31, 2014
91c3829
Aroma : This should be enough
Tk-Glitch Feb 1, 2014
f3ce4cd
Aroma : Prevent configuration menu displaying independently of the ch…
Tk-Glitch Feb 3, 2014
f342e58
Add a folder for Qualcomm optimized Dalvik only - for CM.
Tk-Glitch Feb 3, 2014
3fc382e
Aroma : Date update.
Tk-Glitch Feb 3, 2014
d23ffc8
Aroma : Update features list
Tk-Glitch Feb 3, 2014
1c5d309
Fix derp- static integer- from Linux 3.4.78 merge
animania260 Feb 4, 2014
0dfecee
prima: udate prima WiFi driver to 3.2.3.16 stable version. Changlog c…
animania260 Feb 4, 2014
119a55c
Change glitch.sh buildscript toolchain path
animania260 Feb 5, 2014
2ba384b
Workqueue : Fix section mismatches
Tk-Glitch Feb 4, 2014
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 0 additions & 6 deletions Documentation/ABI/testing/sysfs-bus-rbd
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,6 @@ current_snap

The current snapshot for which the device is mapped.

create_snap

Create a snapshot:

$ echo <snap-name> > /sys/bus/rbd/devices/<dev-id>/snap_create

snap_*

A directory per each snapshot
Expand Down
32 changes: 16 additions & 16 deletions Documentation/HOWTO
Original file line number Diff line number Diff line change
Expand Up @@ -218,16 +218,16 @@ The development process
Linux kernel development process currently consists of a few different
main kernel "branches" and lots of different subsystem-specific kernel
branches. These different branches are:
- main 2.6.x kernel tree
- 2.6.x.y -stable kernel tree
- 2.6.x -git kernel patches
- main 3.x kernel tree
- 3.x.y -stable kernel tree
- 3.x -git kernel patches
- subsystem specific kernel trees and patches
- the 2.6.x -next kernel tree for integration tests
- the 3.x -next kernel tree for integration tests

2.6.x kernel tree
3.x kernel tree
-----------------
2.6.x kernels are maintained by Linus Torvalds, and can be found on
kernel.org in the pub/linux/kernel/v2.6/ directory. Its development
3.x kernels are maintained by Linus Torvalds, and can be found on
kernel.org in the pub/linux/kernel/v3.x/ directory. Its development
process is as follows:
- As soon as a new kernel is released a two weeks window is open,
during this period of time maintainers can submit big diffs to
Expand Down Expand Up @@ -262,20 +262,20 @@ mailing list about kernel releases:
released according to perceived bug status, not according to a
preconceived timeline."

2.6.x.y -stable kernel tree
3.x.y -stable kernel tree
---------------------------
Kernels with 4-part versions are -stable kernels. They contain
Kernels with 3-part versions are -stable kernels. They contain
relatively small and critical fixes for security problems or significant
regressions discovered in a given 2.6.x kernel.
regressions discovered in a given 3.x kernel.

This is the recommended branch for users who want the most recent stable
kernel and are not interested in helping test development/experimental
versions.

If no 2.6.x.y kernel is available, then the highest numbered 2.6.x
If no 3.x.y kernel is available, then the highest numbered 3.x
kernel is the current stable kernel.

2.6.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
3.x.y are maintained by the "stable" team <stable@vger.kernel.org>, and
are released as needs dictate. The normal release period is approximately
two weeks, but it can be longer if there are no pressing problems. A
security-related problem, instead, can cause a release to happen almost
Expand All @@ -285,7 +285,7 @@ The file Documentation/stable_kernel_rules.txt in the kernel tree
documents what kinds of changes are acceptable for the -stable tree, and
how the release process works.

2.6.x -git patches
3.x -git patches
------------------
These are daily snapshots of Linus' kernel tree which are managed in a
git repository (hence the name.) These patches are usually released
Expand Down Expand Up @@ -317,13 +317,13 @@ revisions to it, and maintainers can mark patches as under review,
accepted, or rejected. Most of these patchwork sites are listed at
http://patchwork.kernel.org/.

2.6.x -next kernel tree for integration tests
3.x -next kernel tree for integration tests
---------------------------------------------
Before updates from subsystem trees are merged into the mainline 2.6.x
Before updates from subsystem trees are merged into the mainline 3.x
tree, they need to be integration-tested. For this purpose, a special
testing repository exists into which virtually all subsystem trees are
pulled on an almost daily basis:
http://git.kernel.org/?p=linux/kernel/git/sfr/linux-next.git
http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
http://linux.f-seidel.de/linux-next/pmwiki/

This way, the -next kernel gives a summary outlook onto what will be
Expand Down
186 changes: 186 additions & 0 deletions Documentation/block/row-iosched.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
Introduction
============

The ROW scheduling algorithm will be used in mobile devices as default
block layer IO scheduling algorithm. ROW stands for "READ Over WRITE"
which is the main requests dispatch policy of this algorithm.

The ROW IO scheduler was developed with the mobile devices needs in
mind. In mobile devices we favor user experience upon everything else,
thus we want to give READ IO requests as much priority as possible.
The main idea of the ROW scheduling policy is just that:
- If there are READ requests in pipe - dispatch them, while write
starvation is considered.

Software description
====================
The elevator defines a registering mechanism for different IO scheduler
to implement. This makes implementing a new algorithm quite straight
forward and requires almost no changes to block/elevator framework. A
new IO scheduler just has to implement a set of callback functions
defined by the elevator.
These callbacks cover all the required IO operations such as
adding/removing request to/from the scheduler, merging two requests,
dispatching a request etc.

Design
======

The requests are kept in queues according to their priority. The
dispatching of requests is done in a Round Robin manner with a
different slice for each queue. The dispatch quantum for a specific
queue is set according to the queues priority. READ queues are
given bigger dispatch quantum than the WRITE queues, within a dispatch
cycle.

At the moment there are 6 types of queues the requests are
distributed to:
- High priority READ queue
- High priority Synchronous WRITE queue
- Regular priority READ queue
- Regular priority Synchronous WRITE queue
- Regular priority WRITE queue
- Low priority READ queue

The marking of request as high/low priority will be done by the
application adding the request and not the scheduler. See TODO section.
If the request is not marked in any way (high/low) the scheduler
assigns it to one of the regular priority queues:
read/write/sync write.

If in a certain dispatch cycle one of the queues was empty and didn't
use its quantum that queue will be marked as "un-served". If we're in
a middle of a dispatch cycle dispatching from queue Y and a request
arrives for queue X that was un-served in the previous cycle, if X's
priority is higher than Y's, queue X will be preempted in the favor of
queue Y.

For READ request queues ROW IO scheduler allows idling within a
dispatch quantum in order to give the application a chance to insert
more requests. Idling means adding some extra time for serving a
certain queue even if the queue is empty. The idling is enabled if
the ROW IO scheduler identifies the application is inserting requests
in a high frequency.
Not all queues can idle. ROW scheduler exposes an enablement struct
for idling.
For idling on READ queues, the ROW IO scheduler uses timer mechanism.
When the timer expires we schedule a delayed work that will signal the
device driver to fetch another request for dispatch.

ROW scheduler will support additional services for block devices that
supports Urgent Requests. That is, the scheduler may inform the
device driver upon urgent requests using a newly defined callback.
In addition it will support rescheduling of requests that were
interrupted. For example if the device driver issues a long write
request and a sudden urgent request is received by the scheduler.
The scheduler will inform the device driver about the urgent request,
so the device driver can stop the current write request and serve the
urgent request. In such a case the device driver may also insert back
to the scheduler the remainder of the interrupted write request, such
that the scheduler may continue sending urgent requests without the
need to interrupt the ongoing write again and again. The write
remainder will be sent later on according to the scheduler policy.

SMP/multi-core
==============
At the moment the code is accessed from 2 contexts:
- Application context (from block/elevator layer): adding the requests.
- device driver thread: dispatching the requests and notifying on
completion.

One lock is used to synchronize between the two. This lock is provided
by the block device driver along with the dispatch queue.

Performance
===========
Several performance tests were run in order to compare the ROW
scheduler to existing scheduling algorithms:

1. Parallel sequential READ and sequential WRITE
The test was performed by running two parallel lmdd commands.

IO scheduling| R Throughput| W Throughput| Worst case R | Worst case W
Algorithm | [MB/sec] | [MB/sec] | Latency [sec]| Latency [sec]
-------------|-------------|-------------|--------------|--------------
no-op | 11.73 | 19.67 | 3830.00 | 4257.50
deadline | 11.84 | 20.11 | 610.00 | 5267.50
cfq | 20.39 | 12.32 | 353.33 | 8673.33
ROW | 35.75 | 12.08 | 70.00 | 13695.00

R = READ, W = WRITE

2. Parallel Random READ with sequential WRITE:
The test was performed by running lmdd WRITE command in parallel to
iozone.

IO scheduling| R performance| W Throughput| Worst case R | Worst case W
Algorithm | [iops] | [MB/sec] | Latency [sec]| Latency [sec]
-------------|--------------|-------------|--------------|--------------
no-op | 1909.25 | 20.82 | 3240.00 | 4175.00
deadline | 1912.25 | 20.26 | 432.50 | 5372.50
cfq | 1771.60 | 14.05 | 60.00 | 8786.00
ROW | 1857.00 | 18.86 | 62.00 | 4718.00

R = READ, W = WRITE

3. Parallel Random READ with sequential READ:
The test was performed by running lmdd WRITE command in parallel to
iozone.

IO scheduling| R performance| W Throughput| Worst case R | Worst case W
Algorithm | [iops] | [MB/sec] | Latency [sec]| Latency [sec]
-------------|--------------|-------------|--------------|--------------
no-op | 1919.50 | 35.59 | 32.50 | 300.00
deadline | 1913.00 | 35.68 | 30.00 | 302.50
cfq | 1789.20 | 23.19 | 264.00 | 864.00
ROW | 1850.80 | 38.13 | 32.00 | 2206.00

R = READ, W = WRITE

Note: the above measurements were collected on a particular system
configuration and may be different on other. We performed tests on
other system configurations as well. The numbers were different but
the main idea was the same - reduced latency and increased throughput.


Config options
==============
1. hp_read_quantum: dispatch quantum for the high priority READ queue
(default is 100 requests)
2. rp_read_quantum: dispatch quantum for the regular priority READ
queue (default is 100 requests)
3. hp_swrite_quantum: dispatch quantum for the high priority
Synchronous WRITE queue (default is 2 requests)
4. rp_swrite_quantum: dispatch quantum for the regular priority
Synchronous WRITE queue (default is 1 requests)
5. rp_write_quantum: dispatch quantum for the regular priority WRITE
queue (default is 1 requests)
6. lp_read_quantum: dispatch quantum for the low priority READ queue
(default is 1 requests)
7. lp_swrite_quantum: dispatch quantum for the low priority Synchronous
WRITE queue (default is 1 requests)
8. read_idle: how long to idle on read queue in Msec (in case idling
is enabled on that queue). (default is 1 requests)
9. read_idle_freq: frequency of inserting READ requests that will
trigger idling. This is the time in Msec between inserting two READ
requests. (default is 1 requests)

Note: Dispatch quantum is number of requests that will be dispatched
from a certain queue in a dispatch cycle.

To do
=====
The ROW algorithm takes the scheduling policy one step further, making
it a bit more "user-needs oriented", by allowing the application to
hint on the urgency of its requests. For example: even among the READ
requests several requests may be more urgent for completion than other.
The former will go to the High priority READ queue, that is given the
bigger dispatch quantum than any other queue.

Still need to design the way applications will "hint" on the urgency of
their requests. May be done by ioctl(). We need to look into concrete
use-cases in order to determine the best solution for this.
This will be implemented as a second phase.

Design and implement additional services for block devices that
supports High Priority Requests.
4 changes: 4 additions & 0 deletions Documentation/cgroups/memory.txt
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,10 @@ Note:
5.3 swappiness

Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
Please note that unlike the global swappiness, memcg knob set to 0
really prevents from any swapping even if there is a swap storage
available. This might lead to memcg OOM killer if there are no file
pages to reclaim.

Following cgroups' swappiness can't be changed.
- root cgroup (uses /proc/sys/vm/swappiness).
Expand Down
72 changes: 72 additions & 0 deletions Documentation/cgroups/timer_slack.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Timer Slack Controller
======================

Overview
--------

Every task_struct has timer_slack_ns value. This value is used to round
up poll() and select() timeout values. This feature can be useful in
mobile environment where combined wakeups are desired.

Originally, prctl() was the only way to change timer slack value of
a process. So you was not able change timer slack value of another
process.

cgroup subsys "timer_slack" implements timer slack controller. It
provides a way to set minimal timer slack value for a group of tasks.
If a task belongs to a cgroup with minimal timer slack value higher than
task's value, cgroup's value will be applied.

Timer slack controller allows to implement setting timer slack value of
a process based on a policy. For example, you can create foreground and
background cgroups and move tasks between them based on system state.

User interface
--------------

To get timer slack controller functionality you need to enable it in
kernel configuration:

CONFIG_CGROUP_TIMER_SLACK=y

The controller provides two files:

# mount -t cgroup -o timer_slack none /sys/fs/cgroup
# ls /sys/fs/cgroup/timer_slack.*
/sys/fs/cgroup/timer_slack.effective_slack_ns
/sys/fs/cgroup/timer_slack.min_slack_ns

By default timer_slack.min_slack_ns is 0:

# cat /sys/fs/cgroup/timer_slack.min_slack_ns
0

You can set it to some value:

# echo 50000 > /sys/fs/cgroup/timer_slack.min_slack_ns
# cat /sys/fs/cgroup/timer_slack.min_slack_ns
50000

Tasks still can set task's value below 50000 using prctl(), but in this
case cgroup's value will be applied.

Timer slack controller supports hierarchical groups.

# mkdir /sys/fs/cgroup/a
# cat /sys/fs/cgroup/a/timer_slack.min_slack_ns
50000
# echo 70000 > /sys/fs/cgroup/a/timer_slack.min_slack_ns
# cat /sys/fs/cgroup/a/timer_slack.min_slack_ns
70000

You can set any value you want, but effective value will the highest value
up by hierarchy. You can see effective timer slack value for the cgroup from
timer_slack.effective_slack_ns file:

# cat /sys/fs/cgroup/a/timer_slack.effective_slack_ns
70000
# echo 100000 > /sys/fs/cgroup/timer_slack.min_slack_ns
# cat /sys/fs/cgroup/a/timer_slack.min_slack_ns
70000
# cat /sys/fs/cgroup/a/timer_slack.effective_slack_ns
100000
6 changes: 6 additions & 0 deletions Documentation/cpuidle/driver.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,17 @@ has mechanisms in place to support actual entry-exit into CPU idle states.
cpuidle driver initializes the cpuidle_device structure for each CPU device
and registers with cpuidle using cpuidle_register_device.

If all the idle states are the same, the wrapper function cpuidle_register
could be used instead.

It can also support the dynamic changes (like battery <-> AC), by using
cpuidle_pause_and_lock, cpuidle_disable_device and cpuidle_enable_device,
cpuidle_resume_and_unlock.

Interfaces:
extern int cpuidle_register(struct cpuidle_driver *drv,
const struct cpumask *const coupled_cpus);
extern int cpuidle_unregister(struct cpuidle_driver *drv);
extern int cpuidle_register_driver(struct cpuidle_driver *drv);
extern void cpuidle_unregister_driver(struct cpuidle_driver *drv);
extern int cpuidle_register_device(struct cpuidle_device *dev);
Expand Down
Loading