diff options
author | Sahara <keun-o.park@windriver.com> | 2013-06-20 22:12:29 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-06-24 07:09:03 -0400 |
commit | ae8822b842e229fa4459fca2d979b630d812311d (patch) | |
tree | b95b7c91426f15617cc370c874858e2d25b6fd9c /kernel/power | |
parent | 247e9ee034b0448a585afa16e292cbb9dc0aef68 (diff) |
PM / QoS: Add pm_qos_request tracepoints
Adds tracepoints to pm_qos_add_request, pm_qos_update_request,
pm_qos_remove_request, and pm_qos_update_request_timeout.
It's useful for checking pm_qos_class, value, and timeout_us.
Signed-off-by: Sahara <keun-o.park@windriver.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/qos.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/power/qos.c b/kernel/power/qos.c index 4fb8d1427938..06fe28589e9c 100644 --- a/kernel/power/qos.c +++ b/kernel/power/qos.c | |||
@@ -336,6 +336,7 @@ void pm_qos_add_request(struct pm_qos_request *req, | |||
336 | } | 336 | } |
337 | req->pm_qos_class = pm_qos_class; | 337 | req->pm_qos_class = pm_qos_class; |
338 | INIT_DELAYED_WORK(&req->work, pm_qos_work_fn); | 338 | INIT_DELAYED_WORK(&req->work, pm_qos_work_fn); |
339 | trace_pm_qos_add_request(pm_qos_class, value); | ||
339 | pm_qos_update_target(pm_qos_array[pm_qos_class]->constraints, | 340 | pm_qos_update_target(pm_qos_array[pm_qos_class]->constraints, |
340 | &req->node, PM_QOS_ADD_REQ, value); | 341 | &req->node, PM_QOS_ADD_REQ, value); |
341 | } | 342 | } |
@@ -364,6 +365,7 @@ void pm_qos_update_request(struct pm_qos_request *req, | |||
364 | 365 | ||
365 | cancel_delayed_work_sync(&req->work); | 366 | cancel_delayed_work_sync(&req->work); |
366 | 367 | ||
368 | trace_pm_qos_update_request(req->pm_qos_class, new_value); | ||
367 | if (new_value != req->node.prio) | 369 | if (new_value != req->node.prio) |
368 | pm_qos_update_target( | 370 | pm_qos_update_target( |
369 | pm_qos_array[req->pm_qos_class]->constraints, | 371 | pm_qos_array[req->pm_qos_class]->constraints, |
@@ -390,6 +392,8 @@ void pm_qos_update_request_timeout(struct pm_qos_request *req, s32 new_value, | |||
390 | 392 | ||
391 | cancel_delayed_work_sync(&req->work); | 393 | cancel_delayed_work_sync(&req->work); |
392 | 394 | ||
395 | trace_pm_qos_update_request_timeout(req->pm_qos_class, | ||
396 | new_value, timeout_us); | ||
393 | if (new_value != req->node.prio) | 397 | if (new_value != req->node.prio) |
394 | pm_qos_update_target( | 398 | pm_qos_update_target( |
395 | pm_qos_array[req->pm_qos_class]->constraints, | 399 | pm_qos_array[req->pm_qos_class]->constraints, |
@@ -419,6 +423,7 @@ void pm_qos_remove_request(struct pm_qos_request *req) | |||
419 | 423 | ||
420 | cancel_delayed_work_sync(&req->work); | 424 | cancel_delayed_work_sync(&req->work); |
421 | 425 | ||
426 | trace_pm_qos_remove_request(req->pm_qos_class, PM_QOS_DEFAULT_VALUE); | ||
422 | pm_qos_update_target(pm_qos_array[req->pm_qos_class]->constraints, | 427 | pm_qos_update_target(pm_qos_array[req->pm_qos_class]->constraints, |
423 | &req->node, PM_QOS_REMOVE_REQ, | 428 | &req->node, PM_QOS_REMOVE_REQ, |
424 | PM_QOS_DEFAULT_VALUE); | 429 | PM_QOS_DEFAULT_VALUE); |