{"push_id":820470341,"size":63,"distinct_size":63,"ref":"refs/heads/cm-13.0","head":"08a65f41d697b892d8e7394b27703b1843ee4e81","before":"88e9f3ea23ba02d133b634f36b12b7b997f9e4b1","commits":[{"sha":"3c932e3cd30923d396d550c25d8c43d49f17b1b5","author":{"email":"f6aa0246ff943bfa8602cdf60d40c481b38ed232@arm.linux.org.uk","name":"Russell King"},"message":"ARM: convert all \"mov.* pc, reg\" to \"bx reg\" for ARMv6+\n\nARMv6 and greater introduced a new instruction (\"bx\") which can be used\nto return from function calls.  Recent CPUs perform better when the\n\"bx lr\" instruction is used rather than the \"mov pc, lr\" instruction,\nand this sequence is strongly recommended to be used by the ARM\narchitecture manual (section A.4.1.1).\n\nWe provide a new macro \"ret\" with all its variants for the condition\ncode which will resolve to the appropriate instruction.\n\nRather than doing this piecemeal, and miss some instances, change all\nthe \"mov pc\" instances to use the new macro, with the exception of\nthe \"movs\" instruction and the kprobes code.  This allows us to detect\nthe \"mov pc, lr\" case and fix it up - and also gives us the possibility\nof deploying this for other registers depending on the CPU selection.\n\nReported-by: Will Deacon <will.deacon@arm.com>\nTested-by: Stephen Warren <swarren@nvidia.com> # Tegra Jetson TK1\nTested-by: Robert Jarzmik <robert.jarzmik@free.fr> # mioa701_bootresume.S\nTested-by: Andrew Lunn <andrew@lunn.ch> # Kirkwood\nTested-by: Shawn Guo <shawn.guo@freescale.com>\nTested-by: Tony Lindgren <tony@atomide.com> # OMAPs\nTested-by: Gregory CLEMENT <gregory.clement@free-electrons.com> # Armada XP, 375, 385\nAcked-by: Sekhar Nori <nsekhar@ti.com> # DaVinci\nAcked-by: Christoffer Dall <christoffer.dall@linaro.org> # kvm/hyp\nAcked-by: Haojian Zhuang <haojian.zhuang@gmail.com> # PXA3xx\nAcked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> # Xen\nTested-by: Uwe Kleine-KÃƒÂ¶nig <u.kleine-koenig@pengutronix.de> # ARMv7M\nTested-by: Simon Horman <horms+renesas@verge.net.au> # Shmobile\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\n\nBackported from Linux 3.17 to Linux 3.4.\n\nFollowing commands were used :\n\nfind arch/arm -name '*.S' -exec sed -i -e 's/mov    pc, /ret    /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/moveq    pc, /reteq    /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movne    pc, /retne    /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movhs    pc, /reths    /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movls    pc, /retls    /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movlo    pc, /retlo    /g' {} \\;\n\nfind arch/arm -name '*.S' -exec sed -i -e 's/mov     pc, /ret     /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/moveq     pc, /reteq     /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movne     pc, /retne     /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movhs     pc, /reths     /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movls     pc, /retls     /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movlo     pc, /retlo     /g' {} \\;\n\nfind arch/arm -name '*.S' -exec sed -i -e 's/mov\\tpc, /ret\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/moveq\\tpc, /reteq\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movne\\tpc, /retne\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movhs\\tpc, /reths\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movls\\tpc, /retls\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movlo\\tpc, /retlo\\t/g' {} \\;\n\nfind arch/arm -name '*.S' -exec sed -i -e 's/mov\\tpc,/ret\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/moveq\\tpc,/reteq\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movw_pc/ret.w/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movne\\tpc,/retne\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movhs\\tpc,/reths\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movls\\tpc,/retls\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movlo\\tpc,/retlo\\t/g' {} \\;\n\nfind arch/arm -name '*.S' -exec sed -i -e 's/mov\\t\\tpc, /ret\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/moveq\\t\\tpc, /reteq\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movne\\t\\tpc, /retne\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movhs\\t\\tpc, /reths\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movls\\t\\tpc, /retls\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movlo\\t\\tpc, /retlo\\t\\t/g' {} \\;\n\nfind arch/arm -name '*.S' -exec sed -i -e 's/mov\\t\\tpc,/ret\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/moveq\\t\\tpc,/reteq\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movne\\t\\tpc,/retne\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movhs\\t\\tpc,/reths\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movls\\t\\tpc,/retls\\t\\t/g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movlo\\t\\tpc,/retlo\\t\\t/g' {} \\;\n\nfind arch/arm -name '*.S' -exec sed -i -e 's/mov pc,/ret /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/moveq pc,/reteq /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movne pc,/retne /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movhs pc,/reths /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movls pc,/retls /g' {} \\;\nfind arch/arm -name '*.S' -exec sed -i -e 's/movlo pc,/retlo /g' {} \\;\n\ngit checkout -- arch/arm/mm/proc-v7-2level.S arch/arm/boot/compressed/head.S\nsed -i -e 's/mov    pc, /bx    /g' arch/arm/mm/proc-v7-2level.S\nsed -i -e 's/mov     pc, /bx     /g' arch/arm/mm/proc-v7-2level.S\nsed -i -e 's/mov\\tpc, /bx\\t/g' arch/arm/mm/proc-v7-2level.S\nsed -i -e 's/mov\\tpc,/bx\\t/g' arch/arm/mm/proc-v7-2level.S\nsed -i -e 's/mov\\t\\tpc, /bx\\t\\t/g' arch/arm/mm/proc-v7-2level.S\nsed -i -e 's/mov\\t\\tpc,/bx\\t\\t/g' arch/arm/mm/proc-v7-2level.S\nsed -i -e 's/mov pc,/bx /g' arch/arm/mm/proc-v7-2level.S\n\nEOF\n\n - Patch arch/arm/include/asm/assembler.h\n - Patch arch/arm/kernel/entry-header.S\n - Add '#include <asm/assembler.h>' to missing files.\n - Manually patch 'arch/arm/mm/proc-v7.S' to add bx\n\nSigned-off-by: arter97 <qkrwngud825@gmail.com>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/3c932e3cd30923d396d550c25d8c43d49f17b1b5"},{"sha":"c8c50bbc4f6231d49562dd5276fadef3691b84cf","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: barrier: allow options to be passed to memory barrier instructions\n\nOn ARMv7, the memory barrier instructions take an optional `option'\nfield which can be used to constrain the effects of a memory barrier\nbased on shareability and access type.\n\nThis patch allows the caller to pass these options if required, and\nupdates the smp_*() barriers to request inner-shareable barriers,\naffecting only stores for the _wmb variant. wmb() is also changed to\nuse the -st version of dsb.\n\nReported-by: Albin Tonnerre <albin.tonnerre@arm.com>\nReviewed-by: Catalin Marinas <catalin.marinas@arm.com>\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/c8c50bbc4f6231d49562dd5276fadef3691b84cf"},{"sha":"4b8e35ebb451ed3fc3efbc7899337dcefbe86faf","author":{"email":"f39834d3f313de4aa8a5483c1e8a76e8299c5a6b@gmail.com","name":"klozz"},"message":"Enhance power efficiency: Series of patches from NVIDIA on some critical blocking code paths to allow the CPU to relax instead of busy spinning thus lowering the load_average and lowering power consumption.\n\nSigned-off-by: klozz <xxx.reptar.rawrr.xxx@gmail.com>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/4b8e35ebb451ed3fc3efbc7899337dcefbe86faf"},{"sha":"eb8e245a105dda9026ad848531b210bb3d9c0e4a","author":{"email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org","name":"Peter Zijlstra"},"message":"sched/idle: Avoid spurious wakeup IPIs\n\nBecause mwait_idle_with_hints() gets called from !idle context it must\ncall current_clr_polling(). This however means that resched_task() is\nvery likely to send an IPI even when we were polling:\n\n  CPU0\t\t\t\t\tCPU1\n\n  if (current_set_polling_and_test())\n    goto out;\n\n  __monitor(&ti->flags);\n  if (!need_resched())\n    __mwait(eax, ecx);\n\t\t\t\t\tset_tsk_need_resched(p);\n\t\t\t\t\tsmp_mb();\nout:\n  current_clr_polling();\n\t\t\t\t\tif (!tsk_is_polling(p))\n\t\t\t\t\t  smp_send_reschedule(cpu);\n\nSo while it is correct (extra IPIs aren't a problem, whereas a missed\nIPI would be) it is a performance problem (for some).\n\nAvoid this issue by using fetch_or() to atomically set NEED_RESCHED\nand test if POLLING_NRFLAG is set.\n\nSince a CPU stuck in mwait is unlikely to modify the flags word,\ncontention on the cmpxchg is unlikely and thus we should mostly\nsucceed in a single go.\n\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nAcked-by: Nicolas Pitre <nico@linaro.org>\nCc: Andy Lutomirski <luto@amacapital.net>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nLink: http://lkml.kernel.org/n/tip-kf5suce6njh5xf5d3od13rr0@git.kernel.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/eb8e245a105dda9026ad848531b210bb3d9c0e4a"},{"sha":"12754ce422e4d252f988d0e6020304ca347c5e60","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: prefetch: remove redundant \"cc\" clobber\n\nThe pld instruction does not affect the condition flags, so don't bother\nclobbering them.\n\nAcked-by: Nicolas Pitre <nico@linaro.org>\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/12754ce422e4d252f988d0e6020304ca347c5e60"},{"sha":"458ee94ce2ff63632c094229003c78ad09a22b1a","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: atomics: prefetch the destination word for write prior to strex\n\nThe cost of changing a cacheline from shared to exclusive state can be\nsignificant, especially when this is triggered by an exclusive store,\nsince it may result in having to retry the transaction.\n\nThis patch prefixes our atomic access implementations with pldw\ninstructions (on CPUs which support them) to try and grab the line in\nexclusive state from the start. Only the barrier-less functions are\nupdated, since memory barriers can limit the usefulness of prefetching\ndata.\n\nAcked-by: Nicolas Pitre <nico@linaro.org>\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/458ee94ce2ff63632c094229003c78ad09a22b1a"},{"sha":"5875f3a38bcccacdbb2c127827830e911d840ddd","author":{"email":"b913f13ef92ac157955c954ccaaff7be065faba4@arm.com","name":"Will Deacon"},"message":"ARM: 7983/1: atomics: implement a better __atomic_add_unless for v6+\n\nLooking at perf profiles of multi-threaded hackbench runs, a significant\nperformance hit appears to manifest from the cmpxchg loop used to\nimplement the 32-bit atomic_add_unless function. This can be mitigated\nby writing a direct implementation of __atomic_add_unless which doesn't\nrequire iteration outside of the atomic operation.\n\nSigned-off-by: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Russell King <rmk+kernel@arm.linux.org.uk>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/5875f3a38bcccacdbb2c127827830e911d840ddd"},{"sha":"c534042757932963789ae394d855e1eea3f85f96","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Add Kconfig parameter for scalable detection of all-idle state\n\nAt least one CPU must keep the scheduling-clock tick running for\ntimekeeping purposes whenever there is a non-idle CPU.  However, with\nthe new nohz_full adaptive-idle machinery, it is difficult to distinguish\nbetween all CPUs really being idle as opposed to all non-idle CPUs being\nin adaptive-ticks mode.  This commit therefore adds a Kconfig parameter\nas a first step towards enabling a scalable detection of full-system\nidle state.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\n[ paulmck: Update help text per Frederic Weisbecker. ]\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/c534042757932963789ae394d855e1eea3f85f96"},{"sha":"5867bcd7949fcc179b0ab12deaaa5357a8e5c161","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Add rcu_dyntick data for scalable detection of all-idle state\n\nThis commit adds fields to the rcu_dyntick structure that are used to\ndetect idle CPUs.  These new fields differ from the existing ones in\nthat the existing ones consider a CPU executing in user mode to be idle,\nwhere the new ones consider CPUs executing in user mode to be busy.\nThe handling of these new fields is otherwise quite similar to that for\nthe exiting fields.  This commit also adds the initialization required\nfor these fields.\n\nSo, why is usermode execution treated differently, with RCU considering\nit a quiescent state equivalent to idle, while in contrast the new\nfull-system idle state detection considers usermode execution to be\nnon-idle?\n\nIt turns out that although one of RCU's quiescent states is usermode\nexecution, it is not a full-system idle state.  This is because the\npurpose of the full-system idle state is not RCU, but rather determining\nwhen accurate timekeeping can safely be disabled.  Whenever accurate\ntimekeeping is required in a CONFIG_NO_HZ_FULL kernel, at least one\nCPU must keep the scheduling-clock tick going.  If even one CPU is\nexecuting in user mode, accurate timekeeping is requires, particularly for\narchitectures where gettimeofday() and friends do not enter the kernel.\nOnly when all CPUs are really and truly idle can accurate timekeeping be\ndisabled, allowing all CPUs to turn off the scheduling clock interrupt,\nthus greatly improving energy efficiency.\n\nThis naturally raises the question \"Why is this code in RCU rather than in\ntimekeeping?\", and the answer is that RCU has the data and infrastructure\nto efficiently make this determination.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nAcked-by: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/5867bcd7949fcc179b0ab12deaaa5357a8e5c161"},{"sha":"4a7023dfb46dc3fed39240ab6bd4c9e3e65f37bd","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Add per-CPU idle-state tracking\n\nThis commit adds the code that updates the rcu_dyntick structure's\nnew fields to track the per-CPU idle state based on interrupts and\ntransitions into and out of the idle loop (NMIs are ignored because NMI\nhandlers cannot cleanly read out the time anyway).  This code is similar\nto the code that maintains RCU's idea of per-CPU idleness, but differs\nin that RCU treats CPUs running in user mode as idle, where this new\ncode does not.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nAcked-by: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/4a7023dfb46dc3fed39240ab6bd4c9e3e65f37bd"},{"sha":"301b02a6ab51976156dff2674c33050389e16e46","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Add full-system idle states and variables\n\nThis commit adds control variables and states for full-system idle.\nThe system will progress through the states in numerical order when\nthe system is fully idle (other than the timekeeping CPU), and reset\ndown to the initial state if any non-timekeeping CPU goes non-idle.\nThe current state is kept in full_sysidle_state.\n\nOne flavor of RCU will be in charge of driving the state machine,\ndefined by rcu_sysidle_state.  This should be the busiest flavor of RCU.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/301b02a6ab51976156dff2674c33050389e16e46"},{"sha":"c86b8ff43165e016b1ab3dfdea65dd75859c93ae","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Add full-system-idle arguments to API\n\nThis commit adds an isidle and jiffies argument to force_qs_rnp(),\ndyntick_save_progress_counter(), and rcu_implicit_dynticks_qs() to enable\nRCU's force-quiescent-state process to check for full-system idle.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nCc: Lai Jiangshan <laijs@cn.fujitsu.com>\n[ paulmck: Use true and false for boolean constants per Lai Jiangshan. ]\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/c86b8ff43165e016b1ab3dfdea65dd75859c93ae"},{"sha":"62ea1ae37b97a56dd65f39c2b33b5a45f9b6668c","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Add full-system-idle state machine\n\nThis commit adds the state machine that takes the per-CPU idle data\nas input and produces a full-system-idle indication as output.  This\nstate machine is driven out of RCU's quiescent-state-forcing\nmechanism, which invokes rcu_sysidle_check_cpu() to collect per-CPU\nidle state and then rcu_sysidle_report() to drive the state machine.\n\nThe full-system-idle state is sampled using rcu_sys_is_idle(), which\nalso drives the state machine if RCU is idle (and does so by forcing\nRCU to become non-idle).  This function returns true if all but the\ntimekeeping CPU (tick_do_timer_cpu) are idle and have been idle long\nenough to avoid memory contention on the full_sysidle_state state\nvariable.  The rcu_sysidle_force_exit() may be called externally\nto reset the state machine back into non-idle state.\n\nFor large systems the state machine is driven out of RCU's\nforce-quiescent-state logic, which provides good scalability at the price\nof millisecond-scale latencies on the transition to full-system-idle\nstate.  This is not so good for battery-powered systems, which are usually\nsmall enough that they don't need to care about scalability, but which\ndo care deeply about energy efficiency.  Small systems therefore drive\nthe state machine directly out of the idle-entry code.  The number of\nCPUs in a \"small\" system is defined by a new NO_HZ_FULL_SYSIDLE_SMALL\nKconfig parameter, which defaults to 8.  Note that this is a build-time\ndefinition.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nCc: Lai Jiangshan <laijs@cn.fujitsu.com>\n[ paulmck: Use true and false for boolean constants per Lai Jiangshan. ]\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\n[ paulmck: Simplify logic and provide better comments for memory barriers,\n  based on review comments and questions by Lai Jiangshan. ]\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/62ea1ae37b97a56dd65f39c2b33b5a45f9b6668c"},{"sha":"137572af4b4d31f48235f6e3688af37d9205adbf","author":{"email":"1e0ce936bb9b355d257bf5790d2513c3f28be22b@linux.vnet.ibm.com","name":"Paul E. McKenney"},"message":"nohz_full: Force RCU's grace-period kthreads onto timekeeping CPU\n\nBecause RCU's quiescent-state-forcing mechanism is used to drive the\nfull-system-idle state machine, and because this mechanism is executed\nby RCU's grace-period kthreads, this commit forces these kthreads to\nrun on the timekeeping CPU (tick_do_timer_cpu).  To do otherwise would\nmean that the RCU grace-period kthreads would force the system into\nnon-idle state every time they drove the state machine, which would\nbe just a bit on the futile side.\n\nSigned-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Steven Rostedt <rostedt@goodmis.org>\nCc: Lai Jiangshan <laijs@cn.fujitsu.com>\nReviewed-by: Josh Triplett <josh@joshtriplett.org>\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/137572af4b4d31f48235f6e3688af37d9205adbf"},{"sha":"6a7bba15f80bdeaa10b19c17b935e2c81cd3a937","author":{"email":"4388b5bcdb1d351ff4e132fdb0a07b5cbc88419c@gmail.com","name":"Raymond Golo (intersectRaven)"},"message":"Lower touch frequency to 747500 and don't do anything if frequency is higher.\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/6a7bba15f80bdeaa10b19c17b935e2c81cd3a937"},{"sha":"571bb1a29931863d85c5e193be71ff0bf81b6273","author":{"email":"4388b5bcdb1d351ff4e132fdb0a07b5cbc88419c@gmail.com","name":"Raymond Golo (intersectRaven)"},"message":"Apply frequency calculation change from ondemand to hotplug.\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/571bb1a29931863d85c5e193be71ff0bf81b6273"},{"sha":"ff949e760737c5e513fc4ccb3aebcbe3a251e038","author":{"email":"4388b5bcdb1d351ff4e132fdb0a07b5cbc88419c@gmail.com","name":"Raymond Golo (intersectRaven)"},"message":"Do not scale to max frequency when hotplugging CPUs.\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/ff949e760737c5e513fc4ccb3aebcbe3a251e038"},{"sha":"c68441ff2b3e63a8168c852072d93712f45701cb","author":{"email":"4388b5bcdb1d351ff4e132fdb0a07b5cbc88419c@gmail.com","name":"Raymond Golo (intersectRaven)"},"message":"Default to NOATIME and NODIRATIME for FS performance improvement.\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/c68441ff2b3e63a8168c852072d93712f45701cb"},{"sha":"43ba54110ffe7ec4eaea2609d0ff1bac93eaddc5","author":{"email":"4388b5bcdb1d351ff4e132fdb0a07b5cbc88419c@gmail.com","name":"Raymond Golo (intersectRaven)"},"message":"Fix previous commit.\n\nIt would seem as if cpufreq_cpu_put needs to be balanced with its\n_get counterpart. This fixes the previous commit.\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/43ba54110ffe7ec4eaea2609d0ff1bac93eaddc5"},{"sha":"a71c26400b4c680211ff4f4bed0e748def3668cb","author":{"email":"4388b5bcdb1d351ff4e132fdb0a07b5cbc88419c@gmail.com","name":"Raymond Golo (intersectRaven)"},"message":"mm: push readahead to 512kB.\n\nSigned-off-by: Akhil Narang <akhilnarang.1999@gmail.com>","distinct":true,"url":"https://api.github.com/repos/akhilnarang/android_kernel_mediatek_sprout/commits/a71c26400b4c680211ff4f4bed0e748def3668cb"}]}