PM: runtime: add tracepoint for runtime_status changes
authorVilas Bhat <vilasbhat@google.com>
Wed, 21 Feb 2024 19:47:53 +0000 (19:47 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 22 Feb 2024 19:27:39 +0000 (20:27 +0100)
commit015abee404760249a5c968b9ce29216b94b8ced1
treef5dc5aacadc46fa210ef43aa54d934fef9552bd2
parentb7d46644e554ed017dfabc0841acf418d0584bc9
PM: runtime: add tracepoint for runtime_status changes

Existing runtime PM ftrace events (`rpm_suspend`, `rpm_resume`,
`rpm_return_int`) offer limited visibility into the exact timing of device
runtime power state transitions, particularly when asynchronous operations
are involved. When the `rpm_suspend` or `rpm_resume` functions are invoked
with the `RPM_ASYNC` flag, a return value of 0 i.e., success merely
indicates that the device power state request has been queued, not that
the device has yet transitioned.

A new ftrace event, `rpm_status`, is introduced. This event directly logs
the `power.runtime_status` value of a device whenever it changes providing
granular tracking of runtime power state transitions regardless of
synchronous or asynchronous `rpm_suspend` / `rpm_resume` usage.

Signed-off-by: Vilas Bhat <vilasbhat@google.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/base/power/runtime.c
include/trace/events/rpm.h