{"push_id":644175665,"size":4,"distinct_size":4,"ref":"refs/heads/lollipop-stock-BFS","head":"3d75a70a7aead03c6819f95964e8730c4c76eaac","before":"9ddb22e8d4ea6be47234f402790fdfc0655f8b20","commits":[{"sha":"75887a19e371d88860a24d5a8dd1bf7d5e310546","author":{"email":"00e4cf8f46a57000a44449bf9dd8cbbcc209fd2a@linutronix.de","name":"Thomas Gleixner"},"message":"stop_machine: Store task reference in a separate per cpu variable\n\nTo allow the stopper thread being managed by the smpboot thread\ninfrastructure separate out the task storage from the stopper data\nstructure.\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Rusty Russell <rusty@rustcorp.com.au>\nCc: Paul McKenney <paulmck@linux.vnet.ibm.com>\nCc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nCc: Arjan van de Veen <arjan@infradead.org>\nCc: Paul Turner <pjt@google.com>\nCc: Richard Weinberger <rw@linutronix.de>\nCc: Magnus Damm <magnus.damm@gmail.com>\nLink: http://lkml.kernel.org/r/20130131120741.626690384@linutronix.de\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>","distinct":true,"url":"https://api.github.com/repos/revjunkie/lge-g2-d802/commits/75887a19e371d88860a24d5a8dd1bf7d5e310546"},{"sha":"7ddf206fe21a472fce87c8217aa9a21c8a856993","author":{"email":"00e4cf8f46a57000a44449bf9dd8cbbcc209fd2a@linutronix.de","name":"Thomas Gleixner"},"message":"stop_machine: Use smpboot threads\n\nUse the smpboot thread infrastructure. Mark the stopper thread\nselfparking and park it after it has finished the take_cpu_down()\nwork.\n\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>\nCc: Peter Zijlstra <peterz@infradead.org>\nCc: Rusty Russell <rusty@rustcorp.com.au>\nCc: Paul McKenney <paulmck@linux.vnet.ibm.com>\nCc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nCc: Arjan van de Veen <arjan@infradead.org>\nCc: Paul Turner <pjt@google.com>\nCc: Richard Weinberger <rw@linutronix.de>\nCc: Magnus Damm <magnus.damm@gmail.com>\nLink: http://lkml.kernel.org/r/20130131120741.686315164@linutronix.de\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>","distinct":true,"url":"https://api.github.com/repos/revjunkie/lge-g2-d802/commits/7ddf206fe21a472fce87c8217aa9a21c8a856993"},{"sha":"44b5facbee27fc5e7b1372f0101ff75e034d5572","author":{"email":"00e4cf8f46a57000a44449bf9dd8cbbcc209fd2a@linutronix.de","name":"Thomas Gleixner"},"message":"stop_machine: Mark per cpu stopper enabled early\n\ncommit 14e568e78 (stop_machine: Use smpboot threads) introduced the\nfollowing regression:\n\nBefore this commit the stopper enabled bit was set in the online\nnotifier.\n\nCPU0\t\t\t\tCPU1\ncpu_up\n\t\t\t\tcpu online\nhotplug_notifier(ONLINE)\n  stopper(CPU1)->enabled = true;\n...\nstop_machine()\n\nThe conversion to smpboot threads moved the enablement to the wakeup\npath of the parked thread. The majority of users seem to have the\nfollowing working order:\n\nCPU0\t\t\t\tCPU1\ncpu_up\n\t\t\t\tcpu online\nunpark_threads()\n  wakeup(stopper[CPU1])\n....\n\t\t\t\tstopper thread runs\n\t\t\t\t  stopper(CPU1)->enabled = true;\nstop_machine()\n\nBut Konrad and Sander have observed:\n\nCPU0\t\t\t\tCPU1\ncpu_up\n\t\t\t\tcpu online\nunpark_threads()\n  wakeup(stopper[CPU1])\n....\nstop_machine()\n\t\t\t\tstopper thread runs\n\t\t\t\t  stopper(CPU1)->enabled = true;\n\nNow the stop machinery kicks CPU0 into the stop loop, where it gets\nstuck forever because the queue code saw stopper(CPU1)->enabled ==\nfalse, so CPU0 waits for CPU1 to enter stomp_machine, but the CPU1\nstopper work got discarded due to enabled == false.\n\nAdd a pre_unpark function to the smpboot thread descriptor and call it\nbefore waking the thread.\n\nThis fixes the problem at hand, but the stop_machine code should be\nmore robust. The stopper->enabled flag smells fishy at best.\n\nThanks to Konrad for going through a loop of debug patches and\nproviding the information to decode this issue.\n\nReported-and-tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>\nReported-and-tested-by: Sander Eikelenboom <linux@eikelenboom.it>\nCc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>\nCc: Rusty Russell <rusty@rustcorp.com.au>\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1302261843240.22263@ionos\nSigned-off-by: Thomas Gleixner <tglx@linutronix.de>","distinct":true,"url":"https://api.github.com/repos/revjunkie/lge-g2-d802/commits/44b5facbee27fc5e7b1372f0101ff75e034d5572"},{"sha":"3d75a70a7aead03c6819f95964e8730c4c76eaac","author":{"email":"fdc4dde2da46f30e98e7f7915d9d3c60fc8ac969@rocketmail.com","name":"revjunkie"},"message":"stop_machine: missing from bfs patch\n\nSigned-off-by: revjunkie <rajibrahim@rocketmail.com>","distinct":true,"url":"https://api.github.com/repos/revjunkie/lge-g2-d802/commits/3d75a70a7aead03c6819f95964e8730c4c76eaac"}]}