Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp460358rwb; Wed, 18 Jan 2023 21:00:52 -0800 (PST) X-Google-Smtp-Source: AMrXdXtpYPLixlvHbqFbAapIuuT0ntSxyQ/5EnLbNrlNXNAzodTSU72DShKCCOlzJ4sT6ygxrRoT X-Received: by 2002:a05:6a21:3296:b0:b8:8961:b169 with SMTP id yt22-20020a056a21329600b000b88961b169mr13125269pzb.25.1674104452571; Wed, 18 Jan 2023 21:00:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674104452; cv=none; d=google.com; s=arc-20160816; b=ikCYywQWBIdLk4ICMM5ZHjeCCPIcArjgsnJeJ0ZopwNtghHt7mqDXN2THM2MZjUkUP 5rFBhU6/QoRL1qbbmJcww+SNZF20OCfYJ7mlO/cMhEcsAAFQR3IgETpg4wtzRP9ETUgW I0Y4iE05Yb9jLr5j7RyjjT3KDhmhk4BP6XJY1r3rhfExf3+iIDWqijMxHJhcO4JLJxk/ xRLSjflZ2Od126PvggsKYpoZLPZ7SCuuktITQe6uahlyCocsZB9kntjSpTGHNZZY1g60 nIx+cGd0Ag2CSTPxOuiJxL2nrDffwAQYYawLszR758zCCqTMjrWR9Ri54WDt4U3PRGC4 xj9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=932/KQGWtMWjBdrKFZjdbv0KuCSiMt6IcZgAE6+dbyE=; b=kJwJTrXdL0ie+awlBhn8MCC0JqpooETeIlpajk9Cg3MXSjt2W3ScxzPNMDYCUmEa12 P9mZ0L9wuyVIJh2CNpiXSdefEijVe6sZuf++FojsToVkKHfKVyJLjDmeuHZ6B/GUiIAq 1/4i14sc3Jw9N+2kVlua91o6Ue64nG//1RZnY5tA3/4PRPzXdu3B8kfqMvAg3uvVeSAY AjD12zbwGVhWyETwMjPOQpGXDwn0pLNDFoLm8DepCjknn0ZMcMOp1LcOYWGB1H6lNBGz C9KVIKa6nLwB0XL4+J6XrUU0Xuxng15YEZ5zHuzjrdhXfYGMx7POffgkuMg8ehnnu8bW iwBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=EhzBLEnM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b19-20020a056a000cd300b0058dc5ec09d4si8009927pfv.350.2023.01.18.21.00.46; Wed, 18 Jan 2023 21:00:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=EhzBLEnM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230170AbjASEhg (ORCPT + 44 others); Wed, 18 Jan 2023 23:37:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230334AbjASEgw (ORCPT ); Wed, 18 Jan 2023 23:36:52 -0500 Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com [IPv6:2607:f8b0:4864:20::f2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F19B7C84B for ; Wed, 18 Jan 2023 20:33:28 -0800 (PST) Received: by mail-qv1-xf2c.google.com with SMTP id g10so731049qvo.6 for ; Wed, 18 Jan 2023 20:33:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=932/KQGWtMWjBdrKFZjdbv0KuCSiMt6IcZgAE6+dbyE=; b=EhzBLEnM/KzZH9y8HH+CW6J/9tes2aMNaJ1KN5SKhC916AaYIqDUcFYYjJzdTsdcNi zxDXYEQsbNs/nw17sjlITGjjevhf717/PVzSXkJnebUPDUFUhbxv5GOE7nOcM8FbsW0B hvzi+TyAIR1mkuSGyif4bKGxECg4c01vNOEo4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=932/KQGWtMWjBdrKFZjdbv0KuCSiMt6IcZgAE6+dbyE=; b=7yCkVAxn17eVQHa2qNzd32QaX4FIe2bSiJIZYFUdHMTrZsVw2n6/d9ln/D6wNBEPDE TtRJ9oRrbG2W62selAYoW/p+zqSfpweoAyyJIxI0/EcpR2QPXN7+BdnJF1dWt5EiJXOk rMixNu0STp3ood1Oe3KCMbfauX1ZVW3uTPNomPM7/wlRYOPs2xnZlgiVqVTPtU5Ud1nj bIY7kMmRiltm/Wv1Wx/uTGYBzNdKhzP9UAtEMqynp+Xbw2ov8lbizZLsI1pwTxIvk64u OGw6t5VrCksoFR98MyiPE0kTwFYXgzdaVzOLn3VcejiYeARLAST+QKxesttZ3ekqyDrl foSQ== X-Gm-Message-State: AFqh2krrpZjfas7gZApbSJ4WBwWutbcSf8rjqeM3W+DgvJ1uCWtl/0I1 rc/MY8Txqsk7DYWX8SRTHUlNXHHG+JSdvyo6 X-Received: by 2002:a17:90a:c282:b0:229:472d:af3d with SMTP id f2-20020a17090ac28200b00229472daf3dmr9641936pjt.1.1674098611663; Wed, 18 Jan 2023 19:23:31 -0800 (PST) Received: from smtp.gmail.com ([2620:15c:11a:201:dc41:dbaf:a0e3:7b4b]) by smtp.gmail.com with ESMTPSA id y9-20020a17090a154900b00229bd164ba9sm2042173pja.7.2023.01.18.19.23.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Jan 2023 19:23:31 -0800 (PST) From: Stephen Boyd To: Andy Gross , Bjorn Andersson Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev, linux-arm-msm@vger.kernel.org, Konrad Dybcio , Matthias Kaehlcke Subject: [PATCH] soc: qcom: stats: Populate all subsystem debugfs files Date: Wed, 18 Jan 2023 19:23:29 -0800 Message-Id: <20230119032329.2909383-1-swboyd@chromium.org> X-Mailer: git-send-email 2.39.0.246.g2a6d74b583-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Signed-off-by: Stephen Boyd --- drivers/soc/qcom/qcom_stats.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/soc/qcom/qcom_stats.c b/drivers/soc/qcom/qcom_stats.c index 6228af057120..c207bb96c523 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) base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2 -- https://chromeos.dev