{"push_id":3360463801,"size":2,"distinct_size":2,"ref":"refs/heads/Boosting","head":"c9a6faf5bfc28cc44db16417d60ddcb878f8d2f0","before":"5e33e2685d2e49b5e2693c025273ea08f0101a16","commits":[{"sha":"918b71e184f38a4e4fcc9ef1404262878b623704","author":{"name":"Patrick Bellasi","email":"431c86f368affbc3148c4669fbd465131f7e82cb@arm.com"},"message":"ANDROID: sched/tune: cleanup schedtune_boostgroup_{init,release}\n\nThis update the definition of these two methods to make more clear their\nrole.\n\nIn this refactored version, the slow path entry functions:\n   schedtune_css_alloc()\n   schedtune_css_free()\nare in charge just to allocate and release the memory used to track\nschedtune boost groups.\n\nThese two functions rely respectively on:\n   schedtune_boostgroup_init()\n   schedtune_boostgroup_release()\nfor everything related to setting up data structures and properly\ninitializing them.\n\nChange-Id: I9336102b5c6a6b5726fd466e99b7d6b28d38f455\nSigned-off-by: Patrick Bellasi <patrick.bellasi@arm.com>\n(cherry picked from commit eafebcabecd08e7a7e71481bcda6d6f788622495)\nSigned-off-by: ethan-halsall <ethan.halsall@gmail.com>","distinct":true,"url":"https://api.github.com/repos/ethan-halsall/Simple-Kernel/commits/918b71e184f38a4e4fcc9ef1404262878b623704"},{"sha":"c9a6faf5bfc28cc44db16417d60ddcb878f8d2f0","author":{"name":"Patrick Bellasi","email":"431c86f368affbc3148c4669fbd465131f7e82cb@arm.com"},"message":"ANDROID: sched/tune: fix boost_group spin_lock re-initialization\n\nIn:\n\n  c5616f2f874   ANDROID: sched/tune: Initialize raw_spin_lock\n                in boosted_groups\n\na spin_lock is initialized on each CPU every time a boost_group is\nactivated (i.e. a cgroup created).\n\nHowever, those spin_lock are already initialized at boot time by\nschedtune_init_cgroups() which also set schedtune_initialized to true\nthus enabling the tasks accounting done by schedtune_{en,de}queue_task().\nThis means that an already initialize and used spin_lock is wrongly\nre-initialized thus potentially leading to a:\n   BUG: spinlock already unlocked on CPU\nin the (unlikely in AOSP) case we have a race between schedtune cgroups\ncreation and tasks enqueue/dequeue.\n\nThis probably happened because the fix provided by c5616f2f874 was just\nthe wrong cure for a different issues: the missing one-time\ninitialization of the per-CPU spinlocks in schedtune_init_cgroups().\nAll these fixes happened on v4.4 and have been forward ported to the\ncurrent v4.9 base.\n\nLet's better fix this by:\n- removing the not necessary spinlock re-initialization in:\n  schedtune_boostgroup_init()\n- add a new \"valid\" flag to better flag which boost_groups are currently\n  used to track a valid cgroup.\n\nThis patch adds also a better documentation of the used data structures\nand the locking strategy in use to synchronize fast and slow paths.\n\nChange-Id: I3c2a256693b12b317373bbc032ed46e620f79ee8\nSigned-off-by: Patrick Bellasi <patrick.bellasi@arm.com>\nReported-by: Stanley Shih <stanley.shih@mstarsemi.com>\n\n[\nThe first of the two fixes listed above has been already\nmerged by:\n\n   commit f6bec4e8c771 (\"Revert \"ANDROID: sched/tune:\n                         Initialize raw_spin_lock in boosted_groups\")\n\nwhich, in conjunction with:\n\n   commit 751e50939134 (\"ANDROID: sched: tune:\n                         Fix lacking spinlock initialization\")\n\nprovides the correct initialization of the boostgroups spinlocks.\n\nLet's keep the changelog as it is to better keep track of the original\nintended fix as well as to better document the required locking strategy.\n]\nSigned-off-by: Patrick Bellasi <patrick.bellasi@arm.com>\n(cherry picked from commit db2c520bb56b98be3209d0fd7fe9fa2e7a25a6b5)","distinct":true,"url":"https://api.github.com/repos/ethan-halsall/Simple-Kernel/commits/c9a6faf5bfc28cc44db16417d60ddcb878f8d2f0"}]}
{"actor":{"display_login":"ethan-halsall"}}