{"push_id":543157389,"size":2,"distinct_size":2,"ref":"refs/heads/gee-lollipop","head":"64612846511db92540b133809266a5931a3e2d62","before":"3b093e996de34548f0e17faa688455f7acf38bed","commits":[{"sha":"2b84ef6c8ed2e78ec4f79a68bee19e4c94526c51","author":{"email":"4b3f23b045e38e54cffd83d34440316666b35af9@codeaurora.org","name":"Stepan Moskovchenko"},"message":"ARM: Use -mcpu=cortex-a15 when targeting MSM Krait CPUs\n\nEnable compiler optimizations specific to the Cortex-A15\nprocessor when targeting MSM Krait CPUs. This is necessary\ntake advantage of the UDIV/SDIV instructions supported by\nthese processors. To accomplish this, we need to remove the\n-march=armv7-a ISA restriction from the compiler options\nbecause 'cortex-a15' is a superset of 'armv7-a'.\n\nChange-Id: I6215aecc11fb4f77c971de7b84f68649ef234357\nSigned-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/lollipop-og/kernel_msm/commits/2b84ef6c8ed2e78ec4f79a68bee19e4c94526c51"},{"sha":"64612846511db92540b133809266a5931a3e2d62","author":{"email":"adb0658383f88ec6beb1fb7689ba0dac7c1c4882@oracle.com","name":"Junxiao Bi"},"message":"writeback: fix race that cause writeback hung\n\nThere is a race between mark inode dirty and writeback thread, see the\nfollowing scenario.  In this case, writeback thread will not run though\nthere is dirty_io.\n\n__mark_inode_dirty()                                          bdi_writeback_workfn()\n\t...                                                       \t...\n\tspin_lock(&inode->i_lock);\n\t...\n\tif (bdi_cap_writeback_dirty(bdi)) {\n\t    <<< assume wb has dirty_io, so wakeup_bdi is false.\n\t    <<< the following inode_dirty also have wakeup_bdi false.\n\t    if (!wb_has_dirty_io(&bdi->wb))\n\t\t    wakeup_bdi = true;\n\t}\n\tspin_unlock(&inode->i_lock);\n\t                                                            <<< assume last dirty_io is removed here.\n\t                                                            pages_written = wb_do_writeback(wb);\n\t                                                            ...\n\t                                                            <<< work_list empty and wb has no dirty_io,\n\t                                                            <<< delayed_work will not be queued.\n\t                                                            if (!list_empty(&bdi->work_list) ||\n\t                                                                (wb_has_dirty_io(wb) && dirty_writeback_interval))\n\t                                                                queue_delayed_work(bdi_wq, &wb->dwork,\n\t                                                                    msecs_to_jiffies(dirty_writeback_interval * 10));\n\tspin_lock(&bdi->wb.list_lock);\n\tinode->dirtied_when = jiffies;\n\t<<< new dirty_io is added.\n\tlist_move(&inode->i_wb_list, &bdi->wb.b_dirty);\n\tspin_unlock(&bdi->wb.list_lock);\n\n\t<<< though there is dirty_io, but wakeup_bdi is false,\n\t<<< so writeback thread will not be waked up and\n\t<<< the new dirty_io will not be flushed.\n\tif (wakeup_bdi)\n\t    bdi_wakeup_thread_delayed(bdi);\n\nWriteback will run until there is a new flush work queued.  This may cause\na lot of dirty pages stay in memory for a long time.\n\nSigned-off-by: Junxiao Bi <junxiao.bi@oracle.com>\nReviewed-by: Jan Kara <jack@suse.cz>\nCc: Fengguang Wu <fengguang.wu@intel.com>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>\nSigned-off-by: Francisco Franco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/lollipop-og/kernel_msm/commits/64612846511db92540b133809266a5931a3e2d62"}]}