{"push_id":2953490305,"size":5,"distinct_size":5,"ref":"refs/heads/oreo_I_6_WIP4_stock","head":"756a2f268546e2faef230f4f702b3602ea307452","before":"c9460980018f9b2e170de90b7e85aaebf91b94bf","commits":[{"sha":"c142d7bbd7cb9a6f664892077d5be5ccebc2a90d","author":{"name":"Chris Metcalf","email":"074881f6f5da4d3b5278870ff234d1077ee622c0@mellanox.com"},"message":"[eval] nmi_backtrace: generate one-line reports for idle cpus\n\nWhen doing an nmi backtrace of many cores, most of which are idle, the\noutput is a little overwhelming and very uninformative.  Suppress\nmessages for cpus that are idling when they are interrupted and just\nemit one line, \"NMI backtrace for N skipped: idling at pc 0xNNN\".\n\nWe do this by grouping all the cpuidle code together into a new\n.cpuidle.text section, and then checking the address of the interrupted\nPC to see if it lies within that section.\n\nThis commit suitably tags x86 and tile idle routines, and only adds in\nthe minimal framework for other architectures.\n\nLink: http://lkml.kernel.org/r/1472487169-14923-5-git-send-email-cmetcalf@mellanox.com\nSigned-off-by: Chris Metcalf <cmetcalf@mellanox.com>\nAcked-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nTested-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nTested-by: Daniel Thompson <daniel.thompson@linaro.org> [arm]\nTested-by: Petr Mladek <pmladek@suse.com>\nCc: Aaron Tomlin <atomlin@redhat.com>\nCc: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: \"Rafael J. Wysocki\" <rjw@rjwysocki.net>\nCc: Russell King <linux@arm.linux.org.uk>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Ingo Molnar <mingo@elte.hu>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>\nSigned-off-by: zachariasmaladroit <zacharias.maladroit@gmail.com>\n\nConflicts:\n\tdrivers/acpi/processor_idle.c\n\tdrivers/cpuidle/driver.c\n\ndue to reverse order of commits - preceding change: 'cpuidle: Move\npolling state initialization code to separate file'","distinct":true,"url":"https://api.github.com/repos/zachariasmaladroit/android_kernel_lge_msm8998/commits/c142d7bbd7cb9a6f664892077d5be5ccebc2a90d"},{"sha":"926d6b5e6dd0792b89fdc8b184f379d439756692","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"sched/idle: Add support for tasks that inject idle\n\nIdle injection drivers such as Intel powerclamp and ACPI PAD drivers use\nrealtime tasks to take control of CPU then inject idle. There are two\nissues with this approach:\n\n 1. Low efficiency: injected idle task is treated as busy so sched ticks\n    do not stop during injected idle period, the result of these\n    unwanted wakeups can be ~20% loss in power savings.\n\n 2. Idle accounting: injected idle time is presented to user as busy.\n\nThis patch addresses the issues by introducing a new PF_IDLE flag which\nallows any given task to be treated as idle task while the flag is set.\nTherefore, idle injection tasks can run through the normal flow of NOHZ\nidle enter/exit to get the correct accounting as well as tick stop when\npossible.\n\nThe implication is that idle task is then no longer limited to PID == 0.\n\nAcked-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: Peter Zijlstra <peterz@infradead.org>\nSigned-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>\nSigned-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\nSigned-off-by: celtare21 <celtare21@gmail.com>\nSigned-off-by: zachariasmaladroit <zacharias.maladroit@gmail.com>","distinct":true,"url":"https://api.github.com/repos/zachariasmaladroit/android_kernel_lge_msm8998/commits/926d6b5e6dd0792b89fdc8b184f379d439756692"},{"sha":"9a70aa4385e02d5dd99f5bdcb0f580867b679414","author":{"name":"Steven Rostedt (VMware)","email":"43232e92d70cc7aa53504ad0397085ee47bad87f@goodmis.org"},"message":"sched/core: Call __schedule() from do_idle() without enabling preemption\n\nI finally got around to creating trampolines for dynamically allocated\nftrace_ops with using synchronize_rcu_tasks(). For users of the ftrace\nfunction hook callbacks, like perf, that allocate the ftrace_ops\ndescriptor via kmalloc() and friends, ftrace was not able to optimize\nthe functions being traced to use a trampoline because they would also\nneed to be allocated dynamically. The problem is that they cannot be\nfreed when CONFIG_PREEMPT is set, as there's no way to tell if a task\nwas preempted on the trampoline. That was before Paul McKenney\nimplemented synchronize_rcu_tasks() that would make sure all tasks\n(except idle) have scheduled out or have entered user space.\n\nWhile testing this, I triggered this bug:\n\n BUG: unable to handle kernel paging request at ffffffffa0230077\n ...\n RIP: 0010:0xffffffffa0230077\n ...\n Call Trace:\n  schedule+0x5/0xe0\n  schedule_preempt_disabled+0x18/0x30\n  do_idle+0x172/0x220\n\nWhat happened was that the idle task was preempted on the trampoline.\nAs synchronize_rcu_tasks() ignores the idle thread, there's nothing\nthat lets ftrace know that the idle task was preempted on a trampoline.\n\nThe idle task shouldn't need to ever enable preemption. The idle task\nis simply a loop that calls schedule or places the cpu into idle mode.\nIn fact, having preemption enabled is inefficient, because it can\nhappen when idle is just about to call schedule anyway, which would\ncause schedule to be called twice. Once for when the interrupt came in\nand was returning back to normal context, and then again in the normal\npath that the idle loop is running in, which would be pointless, as it\nhad already scheduled.\n\nThe only reason schedule_preempt_disable() enables preemption is to be\nable to call sched_submit_work(), which requires preemption enabled. As\nthis is a nop when the task is in the RUNNING state, and idle is always\nin the running state, there's no reason that idle needs to enable\npreemption. But that means it cannot use schedule_preempt_disable() as\nother callers of that function require calling sched_submit_work().\n\nAdding a new function local to kernel/sched/ that allows idle to call\nthe scheduler without enabling preemption, fixes the\nsynchronize_rcu_tasks() issue, as well as removes the pointless spurious\nschedule calls caused by interrupts happening in the brief window where\npreemption is enabled just before it calls schedule.\n\nReviewed: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nAcked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nLink: http://lkml.kernel.org/r/20170414084809.3dacde2a@gandalf.local.home\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>\nSigned-off-by: zachariasmaladroit <zacharias.maladroit@gmail.com>","distinct":true,"url":"https://api.github.com/repos/zachariasmaladroit/android_kernel_lge_msm8998/commits/9a70aa4385e02d5dd99f5bdcb0f580867b679414"},{"sha":"a3005fe16a63d6029df68770ca630f764e3e6dfd","author":{"name":"Xunlei Pang","email":"eb0fe57749fb5220e81e6a8f7e0e28cd1ade30e9@redhat.com"},"message":"sched/rtmutex/deadline: Fix a PI crash for deadline tasks\n\nA crash happened while I was playing with deadline PI rtmutex.\n\n    BUG: unable to handle kernel NULL pointer dereference at 0000000000000018\n    IP: [<ffffffff810eeb8f>] rt_mutex_get_top_task+0x1f/0x30\n    PGD 232a75067 PUD 230947067 PMD 0\n    Oops: 0000 [#1] SMP\n    CPU: 1 PID: 10994 Comm: a.out Not tainted\n\n    Call Trace:\n    [<ffffffff810b658c>] enqueue_task+0x2c/0x80\n    [<ffffffff810ba763>] activate_task+0x23/0x30\n    [<ffffffff810d0ab5>] pull_dl_task+0x1d5/0x260\n    [<ffffffff810d0be6>] pre_schedule_dl+0x16/0x20\n    [<ffffffff8164e783>] __schedule+0xd3/0x900\n    [<ffffffff8164efd9>] schedule+0x29/0x70\n    [<ffffffff8165035b>] __rt_mutex_slowlock+0x4b/0xc0\n    [<ffffffff81650501>] rt_mutex_slowlock+0xd1/0x190\n    [<ffffffff810eeb33>] rt_mutex_timed_lock+0x53/0x60\n    [<ffffffff810ecbfc>] futex_lock_pi.isra.18+0x28c/0x390\n    [<ffffffff810ed8b0>] do_futex+0x190/0x5b0\n    [<ffffffff810edd50>] SyS_futex+0x80/0x180\n\nThis is because rt_mutex_enqueue_pi() and rt_mutex_dequeue_pi()\nare only protected by pi_lock when operating pi waiters, while\nrt_mutex_get_top_task(), will access them with rq lock held but\nnot holding pi_lock.\n\nIn order to tackle it, we introduce new \"pi_top_task\" pointer\ncached in task_struct, and add new rt_mutex_update_top_task()\nto update its value, it can be called by rt_mutex_setprio()\nwhich held both owner's pi_lock and rq lock. Thus \"pi_top_task\"\ncan be safely accessed by enqueue_task_dl() under rq lock.\n\nOriginally-From: Peter Zijlstra <peterz@infradead.org>\nSigned-off-by: Xunlei Pang <xlpang@redhat.com>\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nAcked-by: Steven Rostedt <rostedt@goodmis.org>\nReviewed-by: Thomas Gleixner <tglx@linutronix.de>\nCc: juri.lelli@arm.com\nCc: bigeasy@linutronix.de\nCc: mathieu.desnoyers@efficios.com\nCc: jdesfossez@efficios.com\nCc: bristot@redhat.com\nLink: http://lkml.kernel.org/r/20170323150216.157682758@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nSigned-off-by: celtare21 <celtare21@gmail.com>\nSigned-off-by: zachariasmaladroit <zacharias.maladroit@gmail.com>","distinct":true,"url":"https://api.github.com/repos/zachariasmaladroit/android_kernel_lge_msm8998/commits/a3005fe16a63d6029df68770ca630f764e3e6dfd"},{"sha":"756a2f268546e2faef230f4f702b3602ea307452","author":{"name":"Mark Rutland","email":"1db9dd262beaa64f35756dd39531d9747b7778bb@arm.com"},"message":"kernel/fork.c: detect early free of a live mm\n\nKASAN splats indicate that in some cases we free a live mm, then\ncontinue to access it, with potentially disastrous results.  This is\nlikely due to a mismatched mmdrop() somewhere in the kernel, but so far\nthe culprit remains elusive.\n\nLet's have __mmdrop() verify that the mm isn't live for the current\ntask, similar to the existing check for init_mm.  This way, we can catch\nthis class of issue earlier, and without requiring KASAN.\n\nCurrently, idle_task_exit() leaves active_mm stale after it switches to\ninit_mm.  This isn't harmful, but will trigger the new assertions, so we\nmust adjust idle_task_exit() to update active_mm.\n\nLink: http://lkml.kernel.org/r/20180312140103.19235-1-mark.rutland@arm.com\nSigned-off-by: Mark Rutland <mark.rutland@arm.com>\nReviewed-by: Andrew Morton <akpm@linux-foundation.org>\nCc: Ingo Molnar <mingo@kernel.org>\nCc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>\nCc: Michal Hocko <mhocko@suse.com>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Rik van Riel <riel@redhat.com>\nCc: Will Deacon <will.deacon@arm.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>\nSigned-off-by: zachariasmaladroit <zacharias.maladroit@gmail.com>","distinct":true,"url":"https://api.github.com/repos/zachariasmaladroit/android_kernel_lge_msm8998/commits/756a2f268546e2faef230f4f702b3602ea307452"}]}
{"actor":{"display_login":"zachariasmaladroit"}}