From: Pavan Kondeti <quic_pkondeti@quicinc.com>
To: Mukesh Ojha <quic_mojha@quicinc.com>
Cc: Pavan Kondeti <quic_pkondeti@quicinc.com>, <corbet@lwn.net>,
<agross@kernel.org>, <andersson@kernel.org>,
<konrad.dybcio@linaro.org>, <robh+dt@kernel.org>,
<krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>,
<keescook@chromium.org>, <tony.luck@intel.com>,
<gpiccoli@igalia.com>, <mathieu.poirier@linaro.org>,
<catalin.marinas@arm.com>, <will@kernel.org>,
<linus.walleij@linaro.org>, <andy.shevchenko@gmail.com>,
<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-hardening@vger.kernel.org>,
<linux-remoteproc@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-gpio@vger.kernel.org>
Subject: Re: [PATCH v4 04/21] soc: qcom: Add Qualcomm APSS minidump (frontend) feature support
Date: Fri, 30 Jun 2023 14:08:54 +0530 [thread overview]
Message-ID: <b0b78da5-eec6-4bcc-9eaf-8149e2477f18@quicinc.com> (raw)
In-Reply-To: <774b0432-a78f-1aec-a31a-51067e33154f@quicinc.com>
On Fri, Jun 30, 2023 at 12:45:13PM +0530, Mukesh Ojha wrote:
> > > +/**
> > > + * qcom_minidump_region_register() - Register region in APSS Minidump table.
> > > + * @region: minidump region.
> > > + *
> > > + * Return: On success, it returns 0 and negative error value on failure.
> > > + */
> >
> > Are we not going to return any cookie upon success which can be passed
> > to us during unregistration?
>
> e.g, Let's just say if we return the region number as an cookies, the
> problem i see that, we multiple unregistration is happening we will
> be shifting the array upwards and that results in the index/cookies does
> not retain the same for the shifted regions.
>
> So, at the moment, client need to pass the same region for un-registration
> as they have passed for registration..
>
From a driver user pov, there is no reason for keeping
qcom_minidump_region struct around after the registration, agree?
However, the unregistration API expects it again, so the driver needs to
cache it. The region is no way being used by the minidump core either..so it is
just there for no reason. Hence I asked this question.
Thanks for the explanation about why the region number can't be used as
cookie. Is it a limitation on the firmware that we need to left shift
all regions when a region is deleted? I ask this because
minidump_region::valid is avaialble for Linux to mark a lazy deletion.
Sure your look up would have to traverse the entire array in worst case,
but today also you are doing that for duplicate name check.
If this lazy deletion can be implemented, the region number can be used
a cookie, right?
> >
> > > +int qcom_minidump_region_register(const struct qcom_minidump_region *region)
> > > +{
> > > + int ret;
> > > +
> > > + if (!qcom_minidump_valid_region(region))
> > > + return -EINVAL;
> > > +
> > > + mutex_lock(&md_lock);
> > > + if (!md) {
> > > + mutex_unlock(&md_lock);
> > > + pr_err("No backend registered yet, try again..");
> > > + return -EPROBE_DEFER;
> > > + }
> > > +
> > > + ret = md->ops->md_region_register(md, region);
> > > + if (ret)
> > > + goto unlock;
> > > +
> >
> > The md_lock description in the beginning does not seems to be correct.
> > It is not limited to backend registration. It has much wider usage.
> >
> > You are holding the lock while calling into backend. Basically the
> > synchronization is done in the front end.
>
> Initially, the thought was to have the backend their own lock but that
> is irrelevant as all the contention is there in the front end.
>
> So, used the same lock for synchronization as i moved in developement
> and the later that comment became obsolete.
>
> Thanks for catching this.
> will fix the comment.
>
Sure
> >
> > > + qcom_md_update_elf_header(region);
> > > +unlock:
> > > + mutex_unlock(&md_lock);
> > > + return ret;
> > > +}
> > > +EXPORT_SYMBOL_GPL(qcom_minidump_region_register);
>
> >
> > > + ret = qcom_minidump_clear_header(region);
> > > +unlock:
> > > + mutex_unlock(&md_lock);
> > > + return ret;
> > > +}
> > > +EXPORT_SYMBOL_GPL(qcom_minidump_region_unregister);
> >
> > can we create a namespace for exporting these symbols?
>
> Any specific reason, you are suggesting this ?
>
My original intention was to mark qcom_minidump_backend_register()
and qcom_minidump_backend_unregister() under a namespace. Because these
are not meant for any drivers but only for minidump backend. That serves
as a clear documentation that minidump implementation is spanned across
this frontend and backend modules.
Thanks,
Pavan
next prev parent reply other threads:[~2023-06-30 8:40 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-28 12:34 [PATCH v4 00/21] Add Qualcomm Minidump kernel driver related support Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 01/21] docs: qcom: Add qualcomm minidump guide Mukesh Ojha
2023-06-28 23:21 ` Rob Herring
2023-06-28 12:34 ` [PATCH v4 02/21] kallsyms: Export kallsyms_lookup_name Mukesh Ojha
2023-06-28 13:24 ` Andy Shevchenko
2023-06-28 15:04 ` Mukesh Ojha
2023-06-28 13:53 ` Pavan Kondeti
2023-06-28 15:22 ` Mukesh Ojha
2023-06-28 15:32 ` Will Deacon
2023-06-28 15:43 ` Greg KH
2023-06-28 12:34 ` [PATCH v4 03/21] soc: qcom: Add qcom_minidump_smem module Mukesh Ojha
2023-06-28 13:31 ` Andy Shevchenko
2023-06-28 15:47 ` Greg KH
2023-06-28 12:34 ` [PATCH v4 04/21] soc: qcom: Add Qualcomm APSS minidump (frontend) feature support Mukesh Ojha
2023-06-28 13:43 ` Andy Shevchenko
2023-06-29 2:33 ` Pavan Kondeti
2023-06-30 7:15 ` Mukesh Ojha
2023-06-30 8:38 ` Pavan Kondeti [this message]
2023-06-28 12:34 ` [PATCH v4 05/21] soc: qcom: Add linux minidump smem backend driver support Mukesh Ojha
2023-06-28 13:51 ` Andy Shevchenko
2023-06-28 12:34 ` [PATCH v4 06/21] soc: qcom: minidump: Add pending region registration support Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 07/21] soc: qcom: minidump: Add update region support Mukesh Ojha
2023-06-29 2:49 ` Pavan Kondeti
2023-06-28 12:34 ` [PATCH v4 08/21] dt-bindings: reserved-memory: Add qcom,ramoops binding Mukesh Ojha
2023-06-28 14:10 ` Pavan Kondeti
2023-06-28 23:17 ` Rob Herring
2023-06-29 1:45 ` Pavan Kondeti
2023-06-28 14:47 ` Rob Herring
2023-06-28 15:01 ` Mukesh Ojha
2023-07-02 8:12 ` Krzysztof Kozlowski
2023-07-03 6:21 ` Mukesh Ojha
2023-07-03 7:20 ` Krzysztof Kozlowski
2023-07-03 15:55 ` Mukesh Ojha
2023-07-04 5:57 ` Krzysztof Kozlowski
2023-07-19 10:29 ` Luca Stefani
2023-06-28 12:34 ` [PATCH v4 09/21] pstore/ram : Export ramoops_parse_dt() symbol Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 10/21] soc: qcom: Add qcom's pstore minidump driver support Mukesh Ojha
2023-06-28 22:57 ` Rob Herring
2023-06-29 9:16 ` Mukesh Ojha
2023-07-05 23:27 ` Rob Herring
2023-06-28 12:34 ` [PATCH v4 11/21] soc: qcom: Register pstore frontend region with minidump Mukesh Ojha
2023-06-30 4:55 ` Pavan Kondeti
2023-06-30 9:25 ` Andy Shevchenko
2023-06-28 12:34 ` [PATCH v4 12/21] remoteproc: qcom: Expand MD_* as MINIDUMP_* Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 13/21] remoterproc: qcom: refactor to leverage exported minidump symbol Mukesh Ojha
2023-06-28 15:51 ` Pavan Kondeti
2023-06-29 9:20 ` Mukesh Ojha
2023-06-30 3:41 ` Pavan Kondeti
2023-06-28 12:34 ` [PATCH v4 14/21] MAINTAINERS: Add entry for minidump driver related support Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 15/21] arm64: defconfig: Enable Qualcomm Minidump related drivers Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 16/21] arm64: dts: qcom: sm8450: Add Qualcomm ramoops minidump node Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 17/21] firmware: qcom_scm: provide a read-modify-write function Mukesh Ojha
2023-06-30 5:01 ` Pavan Kondeti
2023-06-28 12:34 ` [PATCH v4 18/21] pinctrl: qcom: Use qcom_scm_io_update_field() Mukesh Ojha
2023-06-28 13:44 ` Andy Shevchenko
2023-06-30 14:58 ` Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 19/21] firmware: scm: Modify only the download bits in TCSR register Mukesh Ojha
2023-06-28 15:20 ` Konrad Dybcio
2023-06-30 14:57 ` Mukesh Ojha
2023-06-28 12:34 ` [PATCH v4 20/21] firmware: qcom_scm: Refactor code to support multiple download mode Mukesh Ojha
2023-06-30 5:25 ` Pavan Kondeti
2023-06-30 9:28 ` Andy Shevchenko
2023-06-28 12:34 ` [PATCH v4 21/21] firmware: qcom_scm: Add multiple download mode support Mukesh Ojha
2023-06-28 15:45 ` [PATCH v4 00/21] Add Qualcomm Minidump kernel driver related support Greg KH
2023-06-28 16:20 ` Mukesh Ojha
2023-06-28 16:53 ` Greg KH
2023-06-28 23:12 ` Rob Herring
2023-06-30 16:04 ` Mukesh Ojha
2023-07-02 8:29 ` Krzysztof Kozlowski
2023-07-03 21:05 ` Trilok Soni
2023-07-06 17:20 ` Mathieu Poirier
2023-07-18 15:03 ` Mukesh Ojha
2023-08-07 13:46 ` Mukesh Ojha
2023-07-06 17:40 ` Rob Herring
2023-07-06 18:07 ` Trilok Soni
2023-08-10 16:47 ` Mukesh Ojha
2023-07-04 9:27 ` Linus Walleij
2023-07-05 17:29 ` Trilok Soni
2023-07-14 23:45 ` Trilok Soni
2023-07-18 5:47 ` Mukesh Ojha
2023-07-18 13:35 ` Greg KH
2023-07-18 13:55 ` Mukesh Ojha
2023-07-18 14:41 ` Greg KH
2023-07-18 16:22 ` Trilok Soni
2023-07-02 8:08 ` Krzysztof Kozlowski
2023-07-13 4:39 ` Kathiravan T
2023-07-14 15:25 ` Mukesh Ojha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b0b78da5-eec6-4bcc-9eaf-8149e2477f18@quicinc.com \
--to=quic_pkondeti@quicinc.com \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=andy.shevchenko@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=gpiccoli@igalia.com \
--cc=keescook@chromium.org \
--cc=konrad.dybcio@linaro.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=mathieu.poirier@linaro.org \
--cc=quic_mojha@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=tony.luck@intel.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox