{"push_id":2944617666,"size":12,"distinct_size":12,"ref":"refs/heads/p-hmp","head":"3017d9002ab0cb27799bf9b9dfd16152eeaf1bea","before":"bc783b0bb3f002d3c4ec78b4e202afe8f8b96a7e","commits":[{"sha":"6dad464c930e101ad8240cd7f163be6139abd4f2","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"sched/core: Avoid obvious double update_rq_clock()\n\nAdd DEQUEUE_NOCLOCK to all places where we just did an\nupdate_rq_clock() already.\n\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Mike Galbraith <efault@gmx.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/6dad464c930e101ad8240cd7f163be6139abd4f2"},{"sha":"5e503cf5236466e998b375916776fdbb07da2de8","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"sched/core: Avoid double update_rq_clock() in move_queued_task()\n\nAddress this case:\n\n  WARNING: CPU: 0 PID: 2070 at ../kernel/sched/core.c:109 update_rq_clock+0x74/0x80\n  rq->clock_update_flags & RQCF_UPDATED\n\n  Call Trace:\n  update_rq_clock()\n  move_queued_task()\n  __set_cpus_allowed_ptr()\n  ...\n\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Mike Galbraith <efault@gmx.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/5e503cf5236466e998b375916776fdbb07da2de8"},{"sha":"60be6ad1a22902823431feb1111e85b6801ae14e","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>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/60be6ad1a22902823431feb1111e85b6801ae14e"},{"sha":"f05dcdfb423f0b1520d8a46671059a0198130214","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"futex: Remove rt_mutex_deadlock_account_*()\n\nThese are unused and clutter up the code.\n\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: juri.lelli@arm.com\nCc: bigeasy@linutronix.de\nCc: xlpang@redhat.com\nCc: rostedt@goodmis.org\nCc: mathieu.desnoyers@efficios.com\nCc: jdesfossez@efficios.com\nCc: dvhart@infradead.org\nCc: bristot@redhat.com\nLink: http://lkml.kernel.org/r/20170322104151.652692478@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/f05dcdfb423f0b1520d8a46671059a0198130214"},{"sha":"bb21e7343c16429bd0662c23e4c80904949415df","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"futex,rt_mutex: Provide futex specific rt_mutex API\n\nPart of what makes futex_unlock_pi() intricate is that\nrt_mutex_futex_unlock() -> rt_mutex_slowunlock() can drop\nrt_mutex::wait_lock.\n\nThis means it cannot rely on the atomicy of wait_lock, which would be\npreferred in order to not rely on hb->lock so much.\n\nThe reason rt_mutex_slowunlock() needs to drop wait_lock is because it can\nrace with the rt_mutex fastpath, however futexes have their own fast path.\n\nSince futexes already have a bunch of separate rt_mutex accessors, complete\nthat set and implement a rt_mutex variant without fastpath for them.\n\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: juri.lelli@arm.com\nCc: bigeasy@linutronix.de\nCc: xlpang@redhat.com\nCc: rostedt@goodmis.org\nCc: mathieu.desnoyers@efficios.com\nCc: jdesfossez@efficios.com\nCc: dvhart@infradead.org\nCc: bristot@redhat.com\nLink: http://lkml.kernel.org/r/20170322104151.702962446@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/bb21e7343c16429bd0662c23e4c80904949415df"},{"sha":"aa58f6123ada64b43abb1d511c5ac410b9ee6a73","author":{"name":"Xunlei Pang","email":"eb0fe57749fb5220e81e6a8f7e0e28cd1ade30e9@redhat.com"},"message":"rtmutex: Deboost before waking up the top waiter\n\nWe should deboost before waking the high-priority task, such that we\ndon't run two tasks with the same \"state\" (priority, deadline,\nsched_class, etc).\n\nIn order to make sure the boosting task doesn't start running between\nunlock and deboost (due to 'spurious' wakeup), we move the deboost\nunder the wait_lock, that way its serialized against the wait loop in\n__rt_mutex_slowlock().\n\nDoing the deboost early can however lead to priority-inversion if\ncurrent would get preempted after the deboost but before waking our\nhigh-prio task, hence we disable preemption before doing deboost, and\nenabling it after the wake up is over.\n\nThis gets us the right semantic order, but most importantly however;\nthis change ensures pointer stability for the next patch, where we\nhave rt_mutex_setprio() cache a pointer to the top-most waiter task.\nIf we, as before this change, do the wakeup first and then deboost,\nthis pointer might point into thin air.\n\n[peterz: Changelog + patch munging]\nSuggested-by: 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>\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.110065320@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/aa58f6123ada64b43abb1d511c5ac410b9ee6a73"},{"sha":"0baee27e6e7a7b89a8def32776cf41f58154a67f","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"sched/rtmutex: Refactor rt_mutex_setprio()\n\nWith the introduction of SCHED_DEADLINE the whole notion that priority\nis a single number is gone, therefore the @prio argument to\nrt_mutex_setprio() doesn't make sense anymore.\n\nSo rework the code to pass a pi_task instead.\n\nNote this also fixes a problem with pi_top_task caching; previously we\nwould not set the pointer (call rt_mutex_update_top_task) if the\npriority didn't change, this could lead to a stale pointer.\n\nAs for the XXX, I think its fine to use pi_task->prio, because if it\ndiffers from waiter->prio, a PI chain update is immenent.\n\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nCc: juri.lelli@arm.com\nCc: bigeasy@linutronix.de\nCc: xlpang@redhat.com\nCc: rostedt@goodmis.org\nCc: mathieu.desnoyers@efficios.com\nCc: jdesfossez@efficios.com\nCc: bristot@redhat.com\nLink: http://lkml.kernel.org/r/20170323150216.303827095@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/0baee27e6e7a7b89a8def32776cf41f58154a67f"},{"sha":"2d0258e5260e9684ae04d853d5009361cd00b355","author":{"name":"Peter Zijlstra","email":"3fddac958924aef220f202ca567388ddab3f14a8@infradead.org"},"message":"sched,tracing: Update trace_sched_pi_setprio()\n\nPass the PI donor task, instead of a numerical priority.\n\nNumerical priorities are not sufficient to describe state ever since\nSCHED_DEADLINE.\n\nAnnotate all sched tracepoints that are currently broken; fixing them\nwill bork userspace. *hate*.\n\nSigned-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>\nReviewed-by: Steven Rostedt <rostedt@goodmis.org>\nCc: juri.lelli@arm.com\nCc: bigeasy@linutronix.de\nCc: xlpang@redhat.com\nCc: mathieu.desnoyers@efficios.com\nCc: jdesfossez@efficios.com\nCc: bristot@redhat.com\nLink: http://lkml.kernel.org/r/20170323150216.353599881@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/2d0258e5260e9684ae04d853d5009361cd00b355"},{"sha":"cf98280d60b078e24b94ef00c045659379731f5e","author":{"name":"Xunlei Pang","email":"eb0fe57749fb5220e81e6a8f7e0e28cd1ade30e9@redhat.com"},"message":"sched/deadline/rtmutex: Dont miss the dl_runtime/dl_period update\n\nCurrently dl tasks will actually return at the very beginning\nof rt_mutex_adjust_prio_chain() in !detect_deadlock cases:\n\n    if (waiter->prio == task->prio) {\n        if (!detect_deadlock)\n            goto out_unlock_pi; // out here\n        else\n            requeue = false;\n    }\n\nAs the deadline value of blocked deadline tasks(waiters) without\nchanging their sched_class(thus prio doesn't change) never changes,\nthis seems reasonable, but it actually misses the chance of updating\nrt_mutex_waiter's \"dl_runtime(period)_copy\" if a waiter updates its\ndeadline parameters(dl_runtime, dl_period) or boosted waiter changes\nto !deadline class.\n\nThus, force deadline task not out by adding the !dl_prio() condition.\n\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/1460633827-345-7-git-send-email-xlpang@redhat.com\nLink: http://lkml.kernel.org/r/20170323150216.206577901@infradead.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/cf98280d60b078e24b94ef00c045659379731f5e"},{"sha":"836445de61f9e3291eec218a6e4934ba1eb4c481","author":{"name":"Ingo Molnar","email":"9dbbbf0688fedc85ad4da37637f1a64b8c718ee2@kernel.org"},"message":"sched/headers: Prepare for new header dependencies before moving code to <linux/sched/wake_q.h>\n\nWe are going to split <linux/sched/wake_q.h> out of <linux/sched.h>, which\nwill have to be picked up from other headers and a couple of .c files.\n\nCreate a trivial placeholder <linux/sched/wake_q.h> file that just\nmaps to <linux/sched.h> to make this patch obviously correct and\nbisectable.\n\nInclude the new header in the files that are going to need it.\n\nAcked-by: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Mike Galbraith <efault@gmx.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/836445de61f9e3291eec218a6e4934ba1eb4c481"},{"sha":"4c46d6647698329aa60a34451442eb61f8479cfa","author":{"name":"Ingo Molnar","email":"9dbbbf0688fedc85ad4da37637f1a64b8c718ee2@kernel.org"},"message":"sched/headers: Move the wake-queue types and interfaces from sched.h into <linux/sched/wake_q.h>\n\nAcked-by: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Mike Galbraith <efault@gmx.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/4c46d6647698329aa60a34451442eb61f8479cfa"},{"sha":"3017d9002ab0cb27799bf9b9dfd16152eeaf1bea","author":{"name":"Waiman Long","email":"38805f3311ec64b8a137036eb65c6135c09e144d@redhat.com"},"message":"sched/wake_q: Rename WAKE_Q to DEFINE_WAKE_Q\n\nCurrently the wake_q data structure is defined by the WAKE_Q() macro.\nThis macro, however, looks like a function doing something as \"wake\" is\na verb. Even checkpatch.pl was confused as it reported warnings like\n\n  WARNING: Missing a blank line after declarations\n  #548: FILE: kernel/futex.c:3665:\n  +\tint ret;\n  +\tWAKE_Q(wake_q);\n\nThis patch renames the WAKE_Q() macro to DEFINE_WAKE_Q() which clarifies\nwhat the macro is doing and eliminates the checkpatch.pl warnings.\n\nSigned-off-by: Waiman Long <longman@redhat.com>\nAcked-by: Davidlohr Bueso <dave@stgolabs.net>\nCc: Linus Torvalds <torvalds@linux-foundation.org>\nCc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Thomas Gleixner <tglx@linutronix.de>\nLink: http://lkml.kernel.org/r/1479401198-1765-1-git-send-email-longman@redhat.com\n[ Resolved conflict and added missing rename. ]\nSigned-off-by: Ingo Molnar <mingo@kernel.org>\nSigned-off-by: celtare21 <celtare21@gmail.com>","distinct":true,"url":"https://api.github.com/repos/celtare21/kernel_essential_msm8998/commits/3017d9002ab0cb27799bf9b9dfd16152eeaf1bea"}]}
{"actor":{"display_login":"celtare21"}}