{"push_id":655914935,"size":5,"distinct_size":5,"ref":"refs/heads/SkyHigh-LL","head":"f4eb5752b86ed3431c54fa761669ceeaa9c61cec","before":"4a2a8d5ff0592d7773b83984334eb683ca52b2a8","commits":[{"sha":"fffb3b14cd010abd7c2d1cf7d2c31c12c7fd9113","author":{"email":"42480b5f4d505650064e5081b85d867a03559887@gmail.com","name":"franciscofranco"},"message":"android: lowmemorykiller: squash task adj rbtree optimization from Motorola\n\nRelevant patches with commit messages, author, reviewers etc:\nhttps://github.com/MotorolaMobilityLLC/kernel-msm/commit/68a883dcfbfdecdb6f3a3cdffb274047800b64cc\nhttps://github.com/MotorolaMobilityLLC/kernel-msm/commit/785a40b91a8dcdf1bbc58911c7b462245ae80736\nhttps://github.com/MotorolaMobilityLLC/kernel-msm/commit/d737a870c4ca6e8be96c01ec9748f4756b748c18\nhttps://github.com/MotorolaMobilityLLC/kernel-msm/commit/5e5d603ccfc1ee77fde34fe58b79e5b276fa5459\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>\nSigned-off-by: UpInTheAir <upintheair.xda@gmail.com>\n\nConflicts:\n\tdrivers/staging/android/Kconfig","distinct":true,"url":"https://api.github.com/repos/UpInTheAir/SM-N915/commits/fffb3b14cd010abd7c2d1cf7d2c31c12c7fd9113"},{"sha":"11e393f8947243f8a629ad4d28992e4144b5a54c","author":{"email":"42480b5f4d505650064e5081b85d867a03559887@gmail.com","name":"franciscofranco"},"message":"tick: don't update idle time if cpu offline\n\nAn offline cpu still has ts->idle_active == 1, that cause\noff time is counted as idle time, and hence cause cpu load\ncalculated wrongly.\n\nCheck the cpu online status before updating the idle time to\nfix it.\n\nChange-Id: I00deb4cbcaec18f7625ee774bf4c3e643330dd5f\nSigned-off-by: Lianwei Wang <a22439@motorola.com>\nReviewed-on: http://gerrit.mot.com/695764\nSLTApproved: Slta Waiver <sltawvr@motorola.com>\nTested-by: Jira Key <jirakey@motorola.com>\nReviewed-by: Christopher Fries <cfries@motorola.com>\nReviewed-by: Igor Kovalenko <igork@motorola.com>\nSubmit-Approved: Jira Key <jirakey@motorola.com>\n[picked from http://goo.gl/lLF51X]\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/UpInTheAir/SM-N915/commits/11e393f8947243f8a629ad4d28992e4144b5a54c"},{"sha":"22ca8f3101c6bd645566e4b43346beaf9ee8afd1","author":{"email":"4ba010dc37de3a0b3ddffe053cf94f200b4ff575@lab.ntt.co.jp","name":"Toshiaki Makita"},"message":"cfq-iosched: Fix wrong children_weight calculation\n\ncfq_group_service_tree_add() is applying new_weight at the beginning of\nthe function via cfq_update_group_weight().\nThis actually allows weight to change between adding it to and subtracting\nit from children_weight, and triggers WARN_ON_ONCE() in\ncfq_group_service_tree_del(), or even causes oops by divide error during\nvfr calculation in cfq_group_service_tree_add().\n\nThe detailed scenario is as follows:\n1. Create blkio cgroups X and Y as a child of X.\n   Set X's weight to 500 and perform some I/O to apply new_weight.\n   This X's I/O completes before starting Y's I/O.\n2. Y starts I/O and cfq_group_service_tree_add() is called with Y.\n3. cfq_group_service_tree_add() walks up the tree during children_weight\n   calculation and adds parent X's weight (500) to children_weight of root.\n   children_weight becomes 500.\n4. Set X's weight to 1000.\n5. X starts I/O and cfq_group_service_tree_add() is called with X.\n6. cfq_group_service_tree_add() applies its new_weight (1000).\n7. I/O of Y completes and cfq_group_service_tree_del() is called with Y.\n8. I/O of X completes and cfq_group_service_tree_del() is called with X.\n9. cfq_group_service_tree_del() subtracts X's weight (1000) from\n   children_weight of root. children_weight becomes -500.\n   This triggers WARN_ON_ONCE().\n10. Set X's weight to 500.\n11. X starts I/O and cfq_group_service_tree_add() is called with X.\n12. cfq_group_service_tree_add() applies its new_weight (500) and adds it\n    to children_weight of root. children_weight becomes 0. Calcularion of\n    vfr triggers oops by divide error.\n\nweight should be updated right before adding it to children_weight.\n\nReported-by: Ruki Sekiya <sekiya.ruki@lab.ntt.co.jp>\nSigned-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>\nAcked-by: Tejun Heo <tj@kernel.org>\nCc: stable@vger.kernel.org\nSigned-off-by: Jens Axboe <axboe@fb.com>\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/UpInTheAir/SM-N915/commits/22ca8f3101c6bd645566e4b43346beaf9ee8afd1"},{"sha":"c1c4e8426ad086e8b4418b61b835dfc2507c08db","author":{"email":"fac732170a1579defe9e057a895426984dcd2793@google.com","name":"Andrew Hunter"},"message":"jiffies: Fix timeval conversion to jiffies\n\ncommit d78c9300c51d6ceed9f6d078d4e9366f259de28c upstream.\n\ntimeval_to_jiffies tried to round a timeval up to an integral number\nof jiffies, but the logic for doing so was incorrect: intervals\ncorresponding to exactly N jiffies would become N+1. This manifested\nitself particularly repeatedly stopping/starting an itimer:\n\nsetitimer(ITIMER_PROF, &val, NULL);\nsetitimer(ITIMER_PROF, NULL, &val);\n\nwould add a full tick to val, _even if it was exactly representable in\nterms of jiffies_ (say, the result of a previous rounding.)  Doing\nthis repeatedly would cause unbounded growth in val.  So fix the math.\n\nHere's what was wrong with the conversion: we essentially computed\n(eliding seconds)\n\njiffies = usec  * (NSEC_PER_USEC/TICK_NSEC)\n\nby using scaling arithmetic, which took the best approximation of\nNSEC_PER_USEC/TICK_NSEC with denominator of 2^USEC_JIFFIE_SC =\nx/(2^USEC_JIFFIE_SC), and computed:\n\njiffies = (usec * x) >> USEC_JIFFIE_SC\n\nand rounded this calculation up in the intermediate form (since we\ncan't necessarily exactly represent TICK_NSEC in usec.) But the\nscaling arithmetic is a (very slight) *over*approximation of the true\nvalue; that is, instead of dividing by (1 usec/ 1 jiffie), we\neffectively divided by (1 usec/1 jiffie)-epsilon (rounding\ndown). This would normally be fine, but we want to round timeouts up,\nand we did so by adding 2^USEC_JIFFIE_SC - 1 before the shift; this\nwould be fine if our division was exact, but dividing this by the\nslightly smaller factor was equivalent to adding just _over_ 1 to the\nfinal result (instead of just _under_ 1, as desired.)\n\nIn particular, with HZ=1000, we consistently computed that 10000 usec\nwas 11 jiffies; the same was true for any exact multiple of\nTICK_NSEC.\n\nWe could possibly still round in the intermediate form, adding\nsomething less than 2^USEC_JIFFIE_SC - 1, but easier still is to\nconvert usec->nsec, round in nanoseconds, and then convert using\ntime*spec*_to_jiffies.  This adds one constant multiplication, and is\nnot observably slower in microbenchmarks on recent x86 hardware.\n\nTested: the following program:\n\nint main() {\n  struct itimerval zero = {{0, 0}, {0, 0}};\n  /* Initially set to 10 ms. */\n  struct itimerval initial = zero;\n  initial.it_interval.tv_usec = 10000;\n  setitimer(ITIMER_PROF, &initial, NULL);\n  /* Save and restore several times. */\n  for (size_t i = 0; i < 10; ++i) {\n    struct itimerval prev;\n    setitimer(ITIMER_PROF, &zero, &prev);\n    /* on old kernels, this goes up by TICK_USEC every iteration */\n    printf(\"previous value: %ld %ld %ld %ld\\n\",\n           prev.it_interval.tv_sec, prev.it_interval.tv_usec,\n           prev.it_value.tv_sec, prev.it_value.tv_usec);\n    setitimer(ITIMER_PROF, &prev, NULL);\n  }\n    return 0;\n}\n\nCc: Thomas Gleixner <tglx@linutronix.de>\nCc: Ingo Molnar <mingo@redhat.com>\nCc: Paul Turner <pjt@google.com>\nCc: Richard Cochran <richardcochran@gmail.com>\nCc: Prarit Bhargava <prarit@redhat.com>\nReviewed-by: Paul Turner <pjt@google.com>\nReported-by: Aaron Jacobs <jacobsa@google.com>\nSigned-off-by: Andrew Hunter <ahh@google.com>\n[jstultz: Tweaked to apply to 3.17-rc]\nSigned-off-by: John Stultz <john.stultz@linaro.org>\n[lizf: Backported to 3.4: adjust filename]\nSigned-off-by: Zefan Li <lizefan@huawei.com>\n\nSigned-off-by: franciscofranco <franciscofranco.1990@gmail.com>","distinct":true,"url":"https://api.github.com/repos/UpInTheAir/SM-N915/commits/c1c4e8426ad086e8b4418b61b835dfc2507c08db"},{"sha":"f4eb5752b86ed3431c54fa761669ceeaa9c61cec","author":{"email":"96c56e33d93d5f83686c7a552b3f4f5937152d38@gmail.com","name":"UpInTheAir"},"message":"enable ANDROID_LMK_ADJ_RBTREE","distinct":true,"url":"https://api.github.com/repos/UpInTheAir/SM-N915/commits/f4eb5752b86ed3431c54fa761669ceeaa9c61cec"}]}