I put the original trace file captured on Nexus 7 running Android 5.0 in the folder: https://drive.google.com/folderview?id=0B925ne0upo5HfjQ5M01HcDlFbGpiWmlsOWlu...
Some of the lock dependencies are very complicated to be fully emulated by workgen, so I just use "sleep" for a duration to reproduce the use case in some cases.
On Wed, Jun 10, 2015 at 10:03 AM, Pi-Cheng Chen pi-cheng.chen@linaro.org wrote:
Signed-off-by: Pi-Cheng Chen pi-cheng.chen@linaro.org
doc/examples/video_playback.json | 278 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100644 doc/examples/video_playback.json
diff --git a/doc/examples/video_playback.json b/doc/examples/video_playback.json new file mode 100644 index 0000000..941b20f --- /dev/null +++ b/doc/examples/video_playback.json @@ -0,0 +1,278 @@ +{
"tasks" : {"surfaceflinger" : {"priority" : -7,"loop" : -1,"suspend" : "surfaceflinger","run" : 1500},"DispSync" : {"priority" : -7,"loop" : -1,"phases" : {"p1" : {"lock" : "mutexB","wait" : { "ref" : "DispSync", "mutex" : "mutexB" },"unlock": "mutexB","run" : 35,"lock" : "mutexA","broad" : "EventThread","unlock" : "mutexA","run" : 40,},"p2" : {"loop" : 2,"lock" : "mutexB","wait" : { "ref" : "DispSync", "mutex" : "mutexB" },"unlock": "mutexB","run" : 30}},},"hwc_eventmon" : {"priority" : -19,"loop" : -1,"lock" : "mutexB","signal" : "DispSync","unlock": "mutexB","run" : 115,"timer" : { "ref" : "timerA", "period" : 16667 }},"EventThread1" : {"priority" : -8,"loop" : -1,"phases" : {"p1" : {"lock" : "mutexA","wait" : { "ref" : "EventThread", "mutex" : "mutexA" },"unlock" : "mutexA","run" : 25,"lock" : "mutexB","signal" : "DispSync","unlock": "mutexB","sleep" : 9650,"run" : 70,"lock" : "mutexB","signal" : "DispSync","unlock": "mutexB","run" : 80},"p2" : {"lock" : "mutexA","wait" : { "ref" : "EventThread", "mutex" : "mutexA" },"unlock" : "mutexA","run" : 90,"lock" : "mutexB","signal" : "DispSync","unlock": "mutexB"}}},"EventThread2" : {"priority" : -8,"loop" : -1,"phases" : {"p1" : {"lock" : "mutexA","wait" : { "ref" : "EventThread", "mutex" : "mutexA" },"unlock" : "mutexA","run" : 30,"resume" : "surfaceflinger"},"p2" : {"lock" : "mutexA","wait" : { "ref" : "EventThread", "mutex" : "mutexA" },"unlock" : "mutexA","run" : 35,"sleep" : 2000,"run" : 110,"lock" : "mutexB","signal" : "DispSync","unlock": "mutexB","run" : 60}}},"waker" : {"priority" : -19,"loop" : -1,"resume" : "NuPlayerRenderer","timer" : { "ref" : "timerB", "period" : 33333 }},"NuPlayerRenderer" : {"priority" : -15,"loop" : -1,"phases" : {"p1" : {"loop" : 3,"suspend" : "NuPlayerRenderer","run" : 140,"signal" : "NuPlayerDriver1","run" : 95},"p2" : {"sleep" : 27000,"run" : 580,"resume" : "NPDecoder","resume" : "NPDecoder-CL","resume" : "gle.aac.decoder"}}},"NuPlayerDriver1" : {"priority" : -15,"loop" : -1,"suspend" : "NuPlayerDriver1","run" : 100,"lock" : "mutexC","sync" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 50,"lock" : "mutexC","wait" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 80,"lock" : "mutexC","sync" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 370,"lock" : "mutexC","sync" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 135,"lock" : "mutexC","signal" : "NuPlayerDriver","unlock" : "mutexC"},"NuPlayerDriver2" : {"priority" : -15,"loop" : -1,"lock" : "mutexC","wait" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 110,"lock" : "mutexC","signal" : "NuPlayerDriver","unlock" : "mutexC","lock" : "mutexD","signal" : "CodecLooper1","unlock" : "mutexD","sleep" : 2500,"run" : 80,"lock" : "mutexC","sync" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 50,"lock" : "mutexC","sync" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 70,"lock" : "mutexC","sync" : { "ref" : "NuPlayerDriver", "mutex" : "mutexC" },"unlock" : "mutexC","run" : 35},"CodecLooper1" : {"priority" : -15,"loop" : -1,"lock" : "mutexD","wait" : { "ref" : "CodecLooper1", "mutex" : "mutexD" },"unlock" : "mutexD","run" : 230,"sleep" : 80,"run" : 150,"sleep" : 210,"run" : 330,"resume" : "CodecLooper2","sleep" : 900,"run" : 170,"sleep" : 670,"run" : 125,"resume" : "CodecLooper2"},"CodecLooper2" : {"priority" : -1,"loop" : -1,"suspend" : "CodecLooper2","run" : 160,"resume" : "CodecLooper3","sleep" : 590,"resume" : "OMXCallbackDisp2","run" : 75,"suspend" : "CodecLooper2","run" : 260},"OMXCallbackDisp2" : {"priority" : -1,"loop" : -1,"suspend" : "OMXCallbackDisp2","run" : 180},"CodecLooper3" : {"priority" : -1,"loop" : -1,"suspend" : "CodecLooper3","run" : 1000},"NPDecoder" : {"priority" : -15,"loop" : -1,"suspend" : "NPDecoder","run" : 500,"sleep" : 680,"resume" : "OMXCallbackDisp1","run" : 2000},"NPDecoder-CL" : {"priority" : -15,"loop" : -1,"suspend" : "NPDecoder-CL","run" : 570,"sleep" : 570,"run" : 2100},"gle.aac.decoder" : {"priority" : -1,"loop" : -1,"suspend" : "gle.aac.decoder","run" : 2400,"sleep" : 430,"run" : 45},"OMXCallbackDisp1" : {"priority" : -1,"loop" : -1,"suspend" : "OMXCallbackDisp1","run" : 135,"sleep" : 230,"run" : 140,"sleep" : 330,"run" : 190,"sleep" : 550,"run" : 160}}+}
-- 1.9.1