lkml.org 
[lkml]   [2020]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 21/48] PM: domains: Add "performance" column to debug summary
    Date
    Add "performance" column to debug summary which shows performance state
    of all power domains and theirs devices.

    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    ---
    drivers/base/power/domain.c | 22 +++++++++++++++++-----
    1 file changed, 17 insertions(+), 5 deletions(-)

    diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
    index a3e1bfc233d4..1c60dae8540c 100644
    --- a/drivers/base/power/domain.c
    +++ b/drivers/base/power/domain.c
    @@ -2951,7 +2951,15 @@ static void rtpm_status_str(struct seq_file *s, struct device *dev)
    else
    WARN_ON(1);

    - seq_puts(s, p);
    + seq_printf(s, "%-25s ", p);
    +}
    +
    +static void perf_status_str(struct seq_file *s, struct device *dev)
    +{
    + struct generic_pm_domain_data *gpd_data;
    +
    + gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
    + seq_put_decimal_ull(s, "", gpd_data->performance_state);
    }

    static int genpd_summary_one(struct seq_file *s,
    @@ -2979,7 +2987,7 @@ static int genpd_summary_one(struct seq_file *s,
    else
    snprintf(state, sizeof(state), "%s",
    status_lookup[genpd->status]);
    - seq_printf(s, "%-30s %-15s ", genpd->name, state);
    + seq_printf(s, "%-30s %-50s %u", genpd->name, state, genpd->performance_state);

    /*
    * Modifications on the list require holding locks on both
    @@ -2987,7 +2995,10 @@ static int genpd_summary_one(struct seq_file *s,
    * Also genpd->name is immutable.
    */
    list_for_each_entry(link, &genpd->parent_links, parent_node) {
    - seq_printf(s, "%s", link->child->name);
    + if (list_is_first(&link->parent_node, &genpd->parent_links))
    + seq_printf(s, "\n%50s ", link->child->name);
    + else
    + seq_printf(s, "%s", link->child->name);
    if (!list_is_last(&link->parent_node, &genpd->parent_links))
    seq_puts(s, ", ");
    }
    @@ -3001,6 +3012,7 @@ static int genpd_summary_one(struct seq_file *s,

    seq_printf(s, "\n %-50s ", kobj_path);
    rtpm_status_str(s, pm_data->dev);
    + perf_status_str(s, pm_data->dev);
    kfree(kobj_path);
    }

    @@ -3016,9 +3028,9 @@ static int summary_show(struct seq_file *s, void *data)
    struct generic_pm_domain *genpd;
    int ret = 0;

    - seq_puts(s, "domain status children\n");
    + seq_puts(s, "domain status children performance\n");
    seq_puts(s, " /device runtime status\n");
    - seq_puts(s, "----------------------------------------------------------------------\n");
    + seq_puts(s, "----------------------------------------------------------------------------------------------\n");

    ret = mutex_lock_interruptible(&gpd_list_lock);
    if (ret)
    --
    2.29.2
    \
     
     \ /
      Last update: 2020-12-17 19:12    [W:3.170 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site