{"push_id":723567768,"size":26,"distinct_size":26,"ref":"refs/heads/mkl-mr1","head":"6e2e1e8422c84b80b389afccca004b5155bebd2b","before":"47f0345cfbaadb72d7e2ab2106665d70519622e0","commits":[{"sha":"2cdea29fc46c4cb4164442d01ad5692b9d65246c","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"find7: Enable TASK_DELAY_ACCT\n\n * This allows us to get IOWAIT stats in ANR dumps.\n\nChange-Id: I863b7cea100e4f60beb4783a2354f814a6f04d31","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/2cdea29fc46c4cb4164442d01ad5692b9d65246c"},{"sha":"db0bc0360d1a390a1e7f6948d4b039fa8578ba58","author":{"email":"e8b50d7b4a37839a028792f3f95c0e00a3aa8c10@lge.com","name":"Devin Kim"},"message":"cgroup: remove synchronize_rcu() from cgroup_attach_{task|proc}()\n\nThese 2 syncronize_rcu()s make attaching a task to a cgroup\nquite slow, and it can't be ignored in some situations.\n\nA real case from Colin Cross: Android uses cgroups heavily to\nmanage thread priorities, putting threads in a background group\nwith reduced cpu.shares when they are not visible to the user,\nand in a foreground group when they are. Some RPCs from foreground\nthreads to background threads will temporarily move the background\nthread into the foreground group for the duration of the RPC.\nThis results in many calls to cgroup_attach_task.\n\nIn cgroup_attach_task() it's task->cgroups that is protected by RCU,\nand put_css_set() calls kfree_rcu() to free it.\n\nIf we remove this synchronize_rcu(), there can be threads in RCU-read\nsections accessing their old cgroup via current->cgroups with\nconcurrent rmdir operation, but this is safe.\n\n # time for ((i=0; i<50; i++)) { echo $$ > /mnt/sub/tasks; echo $$ > /mnt/tasks; }\n\nreal    0m2.524s\nuser    0m0.008s\nsys     0m0.004s\n\nWith this patch:\n\nreal    0m0.004s\nuser    0m0.004s\nsys     0m0.000s\n\ntj: These synchronize_rcu()s are utterly confused.  synchornize_rcu()\n    necessarily has to come between two operations to guarantee that\n    the changes made by the former operation are visible to all rcu\n    readers before proceeding to the latter operation.  Here,\n    synchornize_rcu() are at the end of attach operations with nothing\n    beyond it.  Its only effect would be delaying completion of\n    write(2) to sysfs tasks/procs files until all rcu readers see the\n    change, which doesn't mean anything.\n\ncherry-picked from:\nhttps://android.googlesource.com/kernel/common/+/5d65bc0ca1bceb73204dab943922ba3c83276a8c\n\nChange-Id: I0714e1fcbf8e1e410814fef3dfb483deb4742031\nSigned-off-by: Li Zefan <lizefan@huawei.com>\nSigned-off-by: Tejun Heo <tj@kernel.org>\nReported-by: Colin Cross <ccross@google.com>\nSigned-off-by: Devin Kim <dojip.kim@lge.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/db0bc0360d1a390a1e7f6948d4b039fa8578ba58"},{"sha":"18420b26003c2899d6d68ae9a1173194129284e6","author":{"email":"45d857216ef082c1ddfd5d3991b4f3d23f51761f@arcor.de","name":"myfluxi"},"message":"msm: rpm_smd: Use spin_lock_irqsave in work function\n\nChange-Id: I5726687c35d57c2a37e2bc6f878ba7e81b619786","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/18420b26003c2899d6d68ae9a1173194129284e6"},{"sha":"f8e47cd6194d400860c2ee40b21e226f1377f9c6","author":{"email":"db18ceb40708dab5e9bcdbeb620f7eed18da08e5@codeaurora.org","name":"Vinayak Menon"},"message":"lowmemorykiller: use for_each_thread instead of buggy while_each_thread\n\nCouple of cases were reported few months ago, where the cpu was blocked\non the following call stack for /seconds/ after which the watchdog fires.\n\ntest_task_flag(p = 0xE14ABF00, ?)\nlowmem_shrink(?, sc = 0xD7A03C04)\nshrink_slab(shrink = 0xD7A03C04, nr_pages_scanned = 0, lru_pages = 120)\ntry_to_free_pages(zonelist = 0xC1116440, ?, ?, ?)\n__alloc_pages_nodemask(?, order = 0, ?, nodemask = 0x0)\n__do_page_cache_readahead(mapping = 0xEB819364, filp = 0xCC16DC00, offset =\nra_submit(?, ?, ?)\nfilemap_fault(vma = 0xC105D240, vmf = 0xD7A03DC8)\n\nThere weren't any dumps to analyse the case, but this can be a possible\nreason. while_each_thread is known to be buggy and can result in the\nfunction looping forever if the task exits, even when protected with\nrcu_read_lock. Use for_each_thread instead.\n\nMore details on the problems with while_each_thread can be found\nat https://lkml.org/lkml/2013/12/2/320\n\nChange-Id: I5eb6e4b463f81142a2a7824db389201357432ec7\nSigned-off-by: Vinayak Menon <vinmenon@codeaurora.org>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/f8e47cd6194d400860c2ee40b21e226f1377f9c6"},{"sha":"c17912778fea8c96409a201df121246c51c68415","author":{"email":"a4a9764687115057dfb6081f6c434bf20156ee3b@google.com","name":"jinqian"},"message":"Power: Report suspend times from last_suspend_time\n\nThis node epxorts two values separated by space.\nFrom left to right:\n1. time spent in suspend/resume process\n2. time spent sleep in suspend state\n\nChange-Id: I2cb9a9408a5fd12166aaec11b935a0fd6a408c63","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/c17912778fea8c96409a201df121246c51c68415"},{"sha":"e36cbca3ac43c2fa0715757e4a3ff706cdd14901","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"ARM: gic: ignore non-wakeup interrupts when reporting wakeup sources\n\nChange-Id: Ic352cf717527216b3194904d1412630583e954d6\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/e36cbca3ac43c2fa0715757e4a3ff706cdd14901"},{"sha":"15e1a802bd0c2f07eb54c7d3ac97e222ad86beff","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"irq_flow_handler_t now returns bool\n\nAlter the signature of irq_flow_handler_t to return true for those interrupts\nwhose handlers were invoked, and false otherwise.  Also rework the actual\nhandlers, handle_.*_irq, to support the new signature.\n\nChange-Id: I8a50410c477692bbcd39a0fefdac14253602d1f5\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/15e1a802bd0c2f07eb54c7d3ac97e222ad86beff"},{"sha":"3b7a79444f98cc708d898b535670631ced16eab6","author":{"email":"f66cc59a245d146467efed1402e6d2f55ef6f900@google.com","name":"Patrick Tjin"},"message":"gpio: msm-common: Add wakeup reason logging\n\nAdd call to log_wakeup_reason from msm_gpio_show_resume_irq\nand remove redundant print.\n\nChange-Id: Ibf73991104aca1aa4ddfc8d36294d3c768f743b9\nSigned-off-by: Patrick Tjin <pattjin@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/3b7a79444f98cc708d898b535670631ced16eab6"},{"sha":"3a25225b4ca4503111972d5a838a5efb4b421c26","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"gpio-msm: remove logging of wakeup reason\n\nTo be handled automatically by generic wakeup_reasons interface.\n\nChange-Id: I4a1f20a5be8ef7b08327002337b11d174d6a16aa\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/3a25225b4ca4503111972d5a838a5efb4b421c26"},{"sha":"f523f1d5f3eff018d1b780c890a3bf09a3d5a257","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"Revert \"gpio-msm: remove logging of wakeup reason\"\n\nThis reverts commit 7bdc794d7819ec55a34ca4bd5969e0f4a232d67c.\n\nAlso rename:\n-                       log_wakeup_reason(irq);\n+                       log_base_wakeup_reason(irq);\n\nChange-Id: I57b5540252cc7476dd6f443cb0016c86573fe883\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/f523f1d5f3eff018d1b780c890a3bf09a3d5a257"},{"sha":"cd75601d880f65df1e386930b9fd56c499361857","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"PM: wakeup_reason: add functions to query and clear wakeup reasons\n\nThe query results are valid until the next PM_SUSPEND_PREPARE.\n\nChange-Id: I6bc2bd47c830262319576a001d39ac9a994916cf\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/cd75601d880f65df1e386930b9fd56c499361857"},{"sha":"551441b03131a71434d366068785301ebce7117c","author":{"email":"ff359ca7f9aedbb05cd6aa3d17e7b3b3ad3b25c9@google.com","name":"Ruchi Kandoi"},"message":"PM: wakeup_reason: add functionality to log the last suspend-abort reason.\n\nExtends the last_resume_reason to log suspend abort reason. The abort\nreasons will have \"Abort:\" appended at the start to distinguish itself\nfrom the resume reason.\n\nSigned-off-by: Ruchi Kandoi <kandoiruchi@google.com>\nSigned-off-by: Iliyan Malchev <malchev@google.com>\nChange-Id: I3207f1844e3d87c706dfc298fb10e1c648814c5f","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/551441b03131a71434d366068785301ebce7117c"},{"sha":"5f23a0908d61c2ed9a9e603b80824e2ef6da76dd","author":{"email":"ff359ca7f9aedbb05cd6aa3d17e7b3b3ad3b25c9@google.com","name":"Ruchi Kandoi"},"message":"power: log the last suspend abort reason.\n\nExtends the last_resume_reason to log suspend abort reason. The abort\nreasons will have \"Abort:\" appended at the start to distinguish itself\nfrom the resume reason.\n\nSigned-off-by: Ruchi Kandoi <kandoiruchi@google.com>\nSigned-off-by: Iliyan Malchev <malchev@google.com>\nChange-Id: I3207f1844e3d87c706dfc298fb10e1c648814c5f","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/5f23a0908d61c2ed9a9e603b80824e2ef6da76dd"},{"sha":"d068da0fbe09497607d501c094f46c37168668eb","author":{"email":"5b1a755a6b1799d96d2e1f98e16b285f5f690241@google.com","name":"Dmitry Shmidt"},"message":"PM: wakeup_reason: add check_wakeup_reason() to verify wakeup source irq\n\nWakeup reason is set before driver resume handlers are called.\nIt is cleared before driver suspend handlers are called, on\nPM_SUSPEND_PREPARE.\n\nChange-Id: I04218c9b0c115a7877e8029c73e6679ff82e0aa4\nSigned-off-by: Dmitry Shmidt <dimitrysh@google.com>\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/d068da0fbe09497607d501c094f46c37168668eb"},{"sha":"04dccef90493f6e3c1389276e75e6b9381b954db","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"PM: wakeup_reason: correctly deduce wakeup interrupts\n\nThe wakeup_reason driver works by having a callback log_wakeup_reason(), be\ncalled by the resume path once for each wakeup interrupt, with the irq number\nas argument.  It then saves this interrupt in an array, and reports it when\nrequested (via /sys/kernel/wakeup_reasons/last_resume_reason) and also prints\nthe information out in kmsg.\n\nThis approach works, but it has the deficiency that often the reported wakeup\ninterrupt, while correct, is not the interrupt truly responsible for the\nwakeup.  The reason for this is due to chained interrupt controllers (whether\nin hardware or simulated in software).  It could be, for example, that the\npower button is wired to a GPIO handled by a single interrupt for all GPIOs,\nwhich interrupt then determines the GPIO and maps this to a software interrupt.\nWhether this is done in software, or by chaining interrupt controllers, the end\nresult is that the wakeup reason will show not the interrupt associated with\nthe power button, but the base-GPIO interrupt instead.\n\nThis patch reworks the wakeup_sources driver such that it reports those final\ninterrupts we are interested in, and not the intermediate (and not the base)\nones.  It does so as follows:\n\n-- The assumption is that generic_handle_irq() is called to dispatch all\n   interrupts; due to this, chained interrupts result in recursive calls of\n   generic_handle_irq().\n-- We reconstruct the chains of interrupts that originate with the base wakeup\n   interrupt and terminate with the interrupt we are interested in by tracing\n   the calls to generic_handle_irq()\n-- The tracing works by maitaining a per-cpu counter that is incremented with\n   each call to generic_handle_irq(); that counter is reported to the\n   wakeup_sources driver by a pair of functions, called\n   log_possible_wakeup_reason_start() and log_possible_wakeup_reason_complete().\n   The former is called before generic_handle_irq() handles the interrupt\n   (thereby potentially calling itself recusively) and the latter afterward.\n-- The two functions mentioned above are complemented by log_base_wake_reason()\n   (renamed from log_wakeup_reason()), which is used to report the base wakeup\n   interrupts to the wakeup_reason driver.\n-- The three functions work together to build a set of trees, one per base\n   wakeup reason, the leaves of which correspond to the interrupts we are\n   interesed in; these trees can be arbitratily complex, though in reality they\n   most often are a single node, or a chain of two nodes.  The complexity\n   supports arbitrarily involved interrupt dispatch.\n-- On resume, we build the tree; once the tree is completed, we walk it\n   recursively, and print out to kmesg the (more useful) list of wakeup\n   sources; simiarly, we walk the tree and print the leaves when\n   /sys/kernel/wakeup_reasons/last_resume_reason is read.\n\nSigned-off-by: Iliyan Malchev <malchev@google.com>\nChange-Id: If8acb2951b61d2c6bcf4d011fe04d7f91057d139","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/04dccef90493f6e3c1389276e75e6b9381b954db"},{"sha":"b4f651e8f79b3852da45e5667d6003b559fe75a6","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"PM: wakeup_reasons: fix race condition\n\nlog_possible_wakeup_reason() and stop_logging_wakeup_reasons() can race, as the\nlatter can be called from process context, and both can run on separate cores.\n\nChange-Id: I306441d0be46dd4fe58c55cdc162f9d61a28c27d\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/b4f651e8f79b3852da45e5667d6003b559fe75a6"},{"sha":"54eb9cc48a482cefb2551756a4eb74657c795d77","author":{"email":"ff359ca7f9aedbb05cd6aa3d17e7b3b3ad3b25c9@google.com","name":"Ruchi Kandoi"},"message":"wakeup: Add last wake up source logging for suspend abort reason.\n\nThere is a possibility that a wakeup source event is received after\nthe device prepares to suspend which might cause the suspend to abort.\n\nThis patch adds the functionality of reporting the last active wakeup\nsource which is currently not active but caused the suspend to abort reason\nvia the /sys/kernel/power/last_wakeup_reason file.\n\nChange-Id: I1760d462f497b33e425f5565cb6cff5973932ec3\nSigned-off-by: Ruchi Kandoi <kandoiruchi@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/54eb9cc48a482cefb2551756a4eb74657c795d77"},{"sha":"7f2aecdf3cf0e681caad90c0d1f226a3a583156b","author":{"email":"5b1a755a6b1799d96d2e1f98e16b285f5f690241@google.com","name":"Dmitry Shmidt"},"message":"PM: Replace WARN_ON on timeout with one line print\n\nChange-Id: Ia8b32b8ee225b7b62a327fecb10e9284ee4116df\nSigned-off-by: Dmitry Shmidt <dimitrysh@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/7f2aecdf3cf0e681caad90c0d1f226a3a583156b"},{"sha":"401f93217bb991d318d4d2f992ac31d90a189ee3","author":{"email":"5b1a755a6b1799d96d2e1f98e16b285f5f690241@google.com","name":"Dmitry Shmidt"},"message":"Power: Report total suspend times from boot in suspend_since_boot\n\n    This node exports five values separated by space.\n        From left to right:\n        1. Amount of suspend/resume cycles\n        2. Amount of suspend abort cycles\n        3. Total time spent in suspend/resume process\n        4. Total time in suspend abort process\n        5. Total time spent sleep in suspend state\n\nChange-Id: Ife188fd8386dce35f95fa7ba09fbc9d7e152db62\nSigned-off-by: Dmitry Shmidt <dimitrysh@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/401f93217bb991d318d4d2f992ac31d90a189ee3"},{"sha":"bc4872e46f0a60101c8f4732da92a4ae44674c6e","author":{"email":"b9962a40c76f189681da2829a74a26cab77021ea@google.com","name":"Iliyan Malchev"},"message":"PM: wakeup_reasons: disable wakeup-reason deduction by default\n\nIntroduce a config item, CONFIG_DEDUCE_WAKEUP_REASONS, disabled by default.\nMake CONFIG_PARTUALRESUME select it.\n\nChange-Id: I7d831ff0a9dfe0a504824f4bc65ba55c4d92546b\nSigned-off-by: Iliyan Malchev <malchev@google.com>","distinct":true,"url":"https://api.github.com/repos/MoKee/android_kernel_oneplus_msm8974/commits/bc4872e46f0a60101c8f4732da92a4ae44674c6e"}]}