{"push_id":811226323,"size":2,"distinct_size":2,"ref":"refs/heads/mkl-mr1","head":"53be44fe8c5a9e2157e24125a0b596a27dc02df5","before":"ba05515c66fc09f50c44206eae542cfc66185cc8","commits":[{"sha":"133d3b08c2b2eeb3aaec3b5714e800c2c736c97c","author":{"email":"00e4cf8f46a57000a44449bf9dd8cbbcc209fd2a@linutronix.de","name":"Thomas Gleixner"},"message":"tick: Upstream fixes\n\n * Addresses the issue of timers being scheduled on offline CPUs.\n\ntick: Don't invoke tick_nohz_stop_sched_tick() if the cpu is offline\n\ncommit 5b39939a4 (nohz: Move ts->idle_calls incrementation into strict\nidle logic) moved code out of tick_nohz_stop_sched_tick() and missed\nto bail out when the cpu is offline. That's causing subsequent\nfailures as an offline CPU is supposed to die and not to fiddle with\nnohz magic.\n\nReturn false in can_stop_idle_tick() if the cpu is offline.\n\nReported-and-tested-by: Jiri Kosina <jkosina@suse.cz>\nReported-and-tested-by: Prarit Bhargava <prarit@redhat.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nCc: Borislav Petkov <bp@alien8.de>\nCc: Tony Luck <tony.luck@intel.com>\nCc: x86@kernel.org\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1305132138160.2863@ionos\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\ntimers: Consolidate base->next_timer update\n\nAnother bunch of mindlessly copied code. All callers of\ninternal_add_timer() except the recascading code updates\nbase->next_timer.\n\nMove this into internal_add_timer() and let the cascading code call\n__internal_add_timer().\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Gilad Ben-Yossef <gilad@benyossef.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.189946224@linutronix.de\n\ntimers: Create detach_if_pending() and use it\n\nMost callers of detach_timer() have the same pattern around\nthem. Check whether the timer is pending and eventually updating\nbase->next_timer.\n\nCreate detach_if_pending() and replace the duplicated code.\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Gilad Ben-Yossef <gilad@benyossef.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.131246037@linutronix.de\n\ntimers: Add accounting of non deferrable timers\n\nThe code in get_next_timer_interrupt() is suboptimal as it has to run\nthrough the cascade to find the next expiring timer. On a completely\nidle core we should only do that when there is an active timer\nenqueued and base->next_timer does not give us a fast answer.\n\nAdd accounting of the active timers to the now consolidated\nattach/detach code. I deliberately avoided sanity checks because the\ncode is fully symetric and any fiddling with timers w/o using the API\nfunctions will lead to cute explosions anyway. ulong is big enough\neven on 32bit and if we really run into the situation to have more\nthan 1<<32 timers enqueued there, then we are definitely not in a\nstate to go idle and run through that code.\n\nThis allows us to fix another shortcoming of get_next_timer_interrupt().\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Gilad Ben-Yossef <gilad@benyossef.com>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.236377028@linutronix.de\n\ntimers: Improve get_next_timer_interrupt()\n\nGilad reported at\n\n http://lkml.kernel.org/r/1336056962-10465-2-git-send-email-gilad@benyossef.com\n\n\"Current timer code fails to correctly return a value meaning that\n there is no future timer event, with the result that the timer keeps\n getting re-armed in HZ one shot mode even when we could turn it off,\n generating unneeded interrupts.\n\n What is happening is that when __next_timer_interrupt() wishes\n to return a value that signifies \"there is no future timer\n event\", it returns (base->timer_jiffies + NEXT_TIMER_MAX_DELTA).\n\n However, the code in tick_nohz_stop_sched_tick(), which called\n __next_timer_interrupt() via get_next_timer_interrupt(),\n compares the return value to (last_jiffies + NEXT_TIMER_MAX_DELTA)\n to see if the timer needs to be re-armed.\n\n base->timer_jiffies != last_jiffies and so tick_nohz_stop_sched_tick()\n interperts the return value as indication that there is a distant\n future event 12 days from now and programs the timer to fire next\n after KTIME_MAX nsecs instead of avoiding to arm it. This ends up\n causing a needless interrupt once every KTIME_MAX nsecs.\"\n\nFix this by using the new active timer accounting. This avoids scans\nwhen no active timer is enqueued completely, so we don't have to rely\non base->timer_next and base->timer_jiffies anymore.\n\nChange-Id: I874ee5e5f837a228cebf5e6a084baf520d33cd0f\nReported-by: Gilad Ben-Yossef <gilad@benyossef.com>\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Frederic Weisbecker <fweisbec@gmail.com>\nLink: http://lkml.kernel.org/r/20120525214819.317535385@linutronix.de","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_motorola_victara_retcn/commits/133d3b08c2b2eeb3aaec3b5714e800c2c736c97c"},{"sha":"53be44fe8c5a9e2157e24125a0b596a27dc02df5","author":{"email":"546b05909706652891a87f7bfe385ae147f61f91@kernel.org","name":"Tejun Heo"},"message":"timer: Generalize timer->base flags handling\n\nTo prepare for addition of another flag, generalize timer->base flags\nhandling.\n\n* Rename from TBASE_*_FLAG to TIMER_* and make them LU constants.\n\n* Define and use TIMER_FLAG_MASK for flags masking so that multiple\n  flags can be handled correctly.\n\n* Don't dereference timer->base directly even if\n  !tbase_get_deferrable().  All two such places are already passed in\n  @base, so use it instead.\n\n* Make sure tvec_base's alignment is large enough for timer->base\n  flags using BUILD_BUG_ON().\n\nSigned-off-by: Tejun Heo <tj@kernel.org>\nCc: torvalds@linux-foundation.org\nCc: peterz@infradead.org\nLink: http://lkml.kernel.org/r/1344449428-24962-2-git-send-email-tj@kernel.org\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\n\nChange-Id: I371295186ad8c08d243f82ec68f92344317f3e6a","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_motorola_victara_retcn/commits/53be44fe8c5a9e2157e24125a0b596a27dc02df5"}]}