Patch "soc: qcom: stats: Populate all subsystem debugfs files" has been added to the 6.2-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    soc: qcom: stats: Populate all subsystem debugfs files

to the 6.2-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     soc-qcom-stats-populate-all-subsystem-debugfs-files.patch
and it can be found in the queue-6.2 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit da62cc632acdebd2d1cb3c83c77d6f0f20214c77
Author: Stephen Boyd <swboyd@xxxxxxxxxxxx>
Date:   Wed Jan 18 19:23:29 2023 -0800

    soc: qcom: stats: Populate all subsystem debugfs files
    
    [ Upstream commit acdbf5f9b2c492505145f6e50c65418521a547c4 ]
    
    This driver relies on SMEM to populate items for each subsystem before
    the device probes. The items in SMEM that are being looked for are
    populated by the subsystems lazily, and therefore may not exist until
    the device has booted. For example, if I build this driver into the
    kernel on Trogdor Lazor and boot up, I don't see a 'modem' debugfs file
    populated, because the modem boots and populates the SMEM item after
    this driver probes.
    
    Always populate the files for the subsystems if they're in SMEM, and
    make the qcom_subsystem_sleep_stats_show() function return 0 if the SMEM
    items still isn't there. This way we can run a simple command like
    
            grep ^ /sys/kernel/debug/qcom_stats/*
    
    and collect the subsystem sleep stats without interspersed errors or
    missing details entirely because this driver probed first.
    
    Fixes: 1d7724690344 ("soc: qcom: Add Sleep stats driver")
    Cc: Matthias Kaehlcke <mka@xxxxxxxxxxxx>
    Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>
    Signed-off-by: Bjorn Andersson <andersson@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230119032329.2909383-1-swboyd@xxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/soc/qcom/qcom_stats.c b/drivers/soc/qcom/qcom_stats.c
index 6228af057120b..c207bb96c523a 100644
--- a/drivers/soc/qcom/qcom_stats.c
+++ b/drivers/soc/qcom/qcom_stats.c
@@ -92,7 +92,7 @@ static int qcom_subsystem_sleep_stats_show(struct seq_file *s, void *unused)
 	/* Items are allocated lazily, so lookup pointer each time */
 	stat = qcom_smem_get(subsystem->pid, subsystem->smem_item, NULL);
 	if (IS_ERR(stat))
-		return -EIO;
+		return 0;
 
 	qcom_print_stats(s, stat);
 
@@ -170,20 +170,14 @@ static void qcom_create_soc_sleep_stat_files(struct dentry *root, void __iomem *
 static void qcom_create_subsystem_stat_files(struct dentry *root,
 					     const struct stats_config *config)
 {
-	const struct sleep_stats *stat;
 	int i;
 
 	if (!config->subsystem_stats_in_smem)
 		return;
 
-	for (i = 0; i < ARRAY_SIZE(subsystems); i++) {
-		stat = qcom_smem_get(subsystems[i].pid, subsystems[i].smem_item, NULL);
-		if (IS_ERR(stat))
-			continue;
-
+	for (i = 0; i < ARRAY_SIZE(subsystems); i++)
 		debugfs_create_file(subsystems[i].name, 0400, root, (void *)&subsystems[i],
 				    &qcom_subsystem_sleep_stats_fops);
-	}
 }
 
 static int qcom_stats_probe(struct platform_device *pdev)



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux