[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <575ee047-c6ce-95c3-8781-8c9a78534bb1@linaro.org>
Date: Wed, 3 May 2023 23:53:26 +0100
From: Caleb Connolly <caleb.connolly@...aro.org>
To: Souradeep Chowdhury <quic_schowdhu@...cinc.com>,
Andy Gross <agross@...nel.org>,
Konrad Dybcio <konrad.dybcio@...ainline.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Bjorn Andersson <andersson@...nel.org>,
Rob Herring <robh+dt@...nel.org>
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
Sibi Sankar <quic_sibis@...cinc.com>,
Rajendra Nayak <quic_rjendra@...cinc.com>
Subject: Re: [PATCH V4 2/3] soc: qcom: boot_stat: Add Driver Support for Boot
Stats
On 17/04/2023 16:08, Souradeep Chowdhury wrote:
> All of Qualcomm's proprietary Android boot-loaders capture boot time
> stats, like the time when the bootloader started execution and at what
> point the bootloader handed over control to the kernel etc. in the IMEM
> region. This information is captured in a specific format by this driver
> by mapping a structure to the IMEM memory region and then accessing the
> members of the structure to show the information within debugfs file.
> This information is useful in verifying if the existing boot KPIs have
> regressed or not. The information is shown in milliseconds, a sample
> log from sm8450(waipio) device is as follows:-
>
> /sys/kernel/debug/146aa6b0.boot_stats # cat abl_time
> 17898 ms
> /sys/kernel/debug/146aa6b0.boot_stats # cat pre_abl_time
> 2879 ms
>
> The Module Power Manager(MPM) sleep counter starts ticking at the PBL
> stage and the timestamp generated by the sleep counter is logged by
> the Qualcomm proprietary bootloader(ABL) at two points-> First when it
> starts execution which is logged here as "pre_abl_time" and the second
> when it is about to load the kernel logged as "abl_time". Documentation
> details are also added in Documentation/ABI/testing/debugfs-driver-bootstat
>
> Signed-off-by: Souradeep Chowdhury <quic_schowdhu@...cinc.com>
Hi,
[...]
> +
> +static int boot_stats_probe(struct platform_device *pdev)
> +{
> + struct device *bootstat_dev = &pdev->dev;
> + struct bs_data *drvdata;
> +
> + drvdata = devm_kzalloc(bootstat_dev, sizeof(*drvdata), GFP_KERNEL);
> + platform_set_drvdata(pdev, drvdata);
> +
> + drvdata->dbg_dir = debugfs_create_dir(dev_name(bootstat_dev), NULL);
This might be better as just "qcom_boot_stats", rather than including
the address.
[...]
> +
> +static const struct of_device_id boot_stats_dt_match[] = {
> + { .compatible = "qcom,sm8450-bootstats" },
This driver doesn't only support sm8450, I've tested this on sdm845 and
it works just fine. Can we use a generic compatible here instead?
> + { }
> +};
> +MODULE_DEVICE_TABLE(of, boot_stats_dt_match);
> +
> +static struct platform_driver boot_stat_driver = {
> + .probe = boot_stats_probe,
> + .remove_new = boot_stats_remove,
> + .driver = {
> + .name = "qcom-boot-stats",
> + .of_match_table = boot_stats_dt_match,
> + },
> +};
> +module_platform_driver(boot_stat_driver);
> +
> +MODULE_DESCRIPTION("Qualcomm Technologies Inc. Boot Stat driver");
> +MODULE_LICENSE("GPL");
> --
> 2.7.4
>
--
Kind Regards,
Caleb (they/them)
Powered by blists - more mailing lists