5e652ebb | 10-Sep-2018 |
gaurank kathpalia <gkathpal@codeaurora.org> |
qcacmn: Add tracing in scheduler_post_msg_by_priority
Trace every msg, and print its src, and dest in scheduler_post_msg_by_priority for ML logging
Print to F3, and trace it too
Change-Id: I64a214
qcacmn: Add tracing in scheduler_post_msg_by_priority
Trace every msg, and print its src, and dest in scheduler_post_msg_by_priority for ML logging
Print to F3, and trace it too
Change-Id: I64a2142bf3277e85e970132933f2157b95dad68d CRs-Fixed: 2306043
show more ...
|
c7ee85c4 | 10-Mar-2018 |
Dustin Brown <dustinb@codeaurora.org> |
qcacmn: Use qdf_flex_mem for scheduler messages
Currently, the scheduler thread keeps a large, pre-allocated array of messages for use in message posting. The vast majority of the time, however, the
qcacmn: Use qdf_flex_mem for scheduler messages
Currently, the scheduler thread keeps a large, pre-allocated array of messages for use in message posting. The vast majority of the time, however, the scheduler thread has zero or one messages pending in the queue. This leads to a huge memory overhead for nominal driver operation.
Replace the current pre-allocated scheduler message pool with a hybrid static/dynamic approach.
Change-Id: Ie942bacfef43edf142a9f35ad0309069096cda90 CRs-Fixed: 2204172
show more ...
|
e0c9f669 | 04-Dec-2017 |
Dustin Brown <dustinb@codeaurora.org> |
qcacmn: split scheduler init/deinit
A commonly used and robust life-cycle pattern consists of the following 4 steps:
1) create (allocate resources) 2) start (mark resources as safe for use) 3) s
qcacmn: split scheduler init/deinit
A commonly used and robust life-cycle pattern consists of the following 4 steps:
1) create (allocate resources) 2) start (mark resources as safe for use) 3) stop (mark resources as unsafe for use) 4) destroy (deallocate resources)
This pattern effectively prevents access to uninitialized and freed resources. While the dispatcher psoc life-cycle follows this pattern, the global life-cycle is condensed into steps 1 and 4. Unsurprisingly, this led to uninitialized and freed resource access problems, especially in regards to the scheduler thread.
Split the scheduler init and deinit life-cycle functions into init, enable, disable, and deinit. Create new global enable and disable dispatcher functions, and call the new scheduler APIs as appropriate. This brings the global dispatcher life-cycle in line with the existing psoc life-cycle, and prevents many scheduler related resource access issues.
Change-Id: I58b65be0611f48e48354f28c221185f6f490f30c CRs-Fixed: 2153283
show more ...
|