From: Mukesh Ojha <quic_mojha@quicinc.com>
To: Bagas Sanjaya <bagasdotme@gmail.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>,
<vigneshr@ti.com>, <nm@ti.com>, <matthias.bgg@gmail.com>,
<kgene@kernel.org>, <alim.akhtar@samsung.com>,
<bmasney@redhat.com>, <quic_tsoni@quicinc.com>
Cc: <linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-msm@vger.kernel.org>,
<linux-hardening@vger.kernel.org>,
<linux-remoteproc@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-gpio@vger.kernel.org>,
<linux-mediatek@lists.infradead.org>,
<linux-samsung-soc@vger.kernel.org>, <kernel@quicinc.com>
Subject: Re: [PATCH v5 00/17] Add Qualcomm Minidump kernel driver related support
Date: Mon, 11 Sep 2023 16:09:47 +0530 [thread overview]
Message-ID: <c52e90e4-cab0-13b7-9658-1f730de6cf64@quicinc.com> (raw)
In-Reply-To: <ZP7VPfVtvbmB5aQf@debian.me>
On 9/11/2023 2:22 PM, Bagas Sanjaya wrote:
> On Sun, Sep 10, 2023 at 01:46:01AM +0530, Mukesh Ojha wrote:
>> Hi All,
>>
>> This is to continuation from the conversation happened at v4
>>
>> https://lore.kernel.org/lkml/632c5b97-4a91-c3e8-1e6c-33d6c4f6454f@quicinc.com/
>>
>> https://lore.kernel.org/lkml/695133e6-105f-de2a-5559-555cea0a0462@quicinc.com/
>>
>> We have put abstract on LPC on this topic as well as initiated a mail thread
>> with other SoC vendors but did not get much traction on it.
>>
>> https://lore.kernel.org/lkml/0199db00-1b1d-0c63-58ff-03efae02cb21@quicinc.com/
>>
>> We explored most of possiblity present in kernel to address this issue[1] but
>> solution like kdump/fadump does not seems safe/secure/performant from our
>> perspective.
>>
>> Hence, with this series we tried to make the minidump kernel driver, simple
>> and tied with pstore frontends, so that it collects the present available
>> frontends data like dmesg, ftrace, pmsg, ftrace., Also, we will be working
>> towards enhancing generic pstore to capture more debug data which will be
>> helpful for first hand of debugging that can benefit both other pstore users
>> as well as us as minidump users.
>>
>> One of the proposal made here,
>> https://lore.kernel.org/lkml/1683561060-2197-1-git-send-email-quic_mojha@quicinc.com/
>>
>> Looking forward for your comments.
>>
>> Thanks,
>> Mukesh
>>
>> [1]
>> Minidump is a best effort mechanism to collect useful and predefined data
>> for first level of debugging on end user devices running on Qualcomm SoCs.
>> It is built on the premise that System on Chip (SoC) or subsystem part of
>> SoC crashes, due to a range of hardware and software bugs. Hence, the
>> ability to collect accurate data is only a best-effort. The data collected
>> could be invalid or corrupted, data collection itself could fail, and so on.
>>
>> Qualcomm devices in engineering mode provides a mechanism for generating
>> full system ramdumps for post mortem debugging. But in some cases it's
>> however not feasible to capture the entire content of RAM. The minidump
>> mechanism provides the means for selecting which snippets should be
>> included in the ramdump.
>>
>> The core of SMEM based minidump feature is part of Qualcomm's boot
>> firmware code. It initializes shared memory (SMEM), which is a part of
>> DDR and allocates a small section of SMEM to minidump table i.e also
>> called global table of content (G-ToC). Each subsystem (APSS, ADSP, ...)
>> has their own table of segments to be included in the minidump and all
>> get their reference from G-ToC. Each segment/region has some details
>> like name, physical address and it's size etc. and it could be anywhere
>> scattered in the DDR.
>>
>> Existing upstream Qualcomm remoteproc driver[1] already supports SMEM
>> based minidump feature for remoteproc instances like ADSP, MODEM, ...
>> where predefined selective segments of subsystem region can be dumped
>> as part of coredump collection which generates smaller size artifacts
>> compared to complete coredump of subsystem on crash.
>>
>> [1]
>> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/remoteproc/qcom_common.c#n142
>>
>> In addition to managing and querying the APSS minidump description,
>> the Linux driver maintains a ELF header in a segment. This segment
>> gets updated with section/program header whenever a new entry gets
>> registered.
>>
>> Changes in v5:
>> - On suggestion from Pavan.k, to have single function call for minidump collection
>> from remoteproc driver, separated the logic to have separate minidump file called
>> qcom_rproc_minidump.c and also renamed the function from qcom_minidump() to
>> qcom_rproc_minidump(); however, dropped his suggestion about rework on lazy deletion
>> during region unregister in this series, will pursue it in next series.
>>
>> - To simplify the minidump driver, removed the complication for frontend and different
>> backend from Greg suggestion, will pursue this once main driver gets mainlined.
>>
>> - Move the dynamic ramoops region allocation from Device tree approach to command line
>> approch with the introduction command line parsing and memblock reservation during
>> early boot up; Not added documentation about it yet, will add if it gets positive
>> response.
>>
>> - Exporting linux banner from kernel to make minidump build also as module, however,
>> minidump is a debug module and should be kernel built to get most debug information
>> from kernel.
>>
>> - Tried to address comments given on dload patch series.
>>
>> Changes in v4: https://lore.kernel.org/lkml/1687955688-20809-1-git-send-email-quic_mojha@quicinc.com/
>> - Redesigned the driver and divided the driver into front end and backend (smem) so
>> that any new backend can be attached easily to avoid code duplication.
>> - Patch reordering as per the driver and subsystem to easier review of the code.
>> - Removed minidump specific code from remoteproc to minidump smem based driver.
>> - Enabled the all the driver as modules.
>> - Address comments made on documentation and yaml and Device tree file [Krzysztof/Konrad]
>> - Address comments made qcom_pstore_minidump driver and given its Device tree
>> same set of properties as ramoops. [Luca/Kees]
>> - Added patch for MAINTAINER file.
>> - Include defconfig change as one patch as per [Krzysztof] suggestion.
>> - Tried to remove the redundant file scope variables from the module as per [Krzysztof] suggestion.
>> - Addressed comments made on dload mode patch v6 version
>> https://lore.kernel.org/lkml/1680076012-10785-1-git-send-email-quic_mojha@quicinc.com/
>>
>> Changes in v3: https://lore.kernel.org/lkml/1683133352-10046-1-git-send-email-quic_mojha@quicinc.com/
>> - Addressed most of the comments by Srini on v2 and refactored the minidump driver.
>> - Added platform device support
>> - Unregister region support.
>> - Added update region for clients.
>> - Added pending region support.
>> - Modified the documentation guide accordingly.
>> - Added qcom_pstore_ramdump client driver which happen to add ramoops platform
>> device and also registers ramoops region with minidump.
>> - Added download mode patch series with this minidump series.
>> https://lore.kernel.org/lkml/1680076012-10785-1-git-send-email-quic_mojha@quicinc.com/
>>
>> Changes in v2: https://lore.kernel.org/lkml/1679491817-2498-1-git-send-email-quic_mojha@quicinc.com/
>> - Addressed review comment made by [quic_tsoni/bmasney] to add documentation.
>> - Addressed comments made by [srinivas.kandagatla]
>> - Dropped pstore 6/6 from the last series, till i get conclusion to get pstore
>> region in minidump.
>> - Fixed issue reported by kernel test robot.
>>
>> Changes in v1: https://lore.kernel.org/lkml/1676978713-7394-1-git-send-email-quic_mojha@quicinc.com/
>>
>> Testing of the patches has been done on sm8450 target after enabling config like
>> CONFIG_PSTORE_RAM and CONFIG_PSTORE_CONSOLE and once the device boots up.
>>
>> echo mini > /sys/module/qcom_scm/parameters/download_mode
>>
>> Try crashing it via devmem2 0xf11c000(this is known to create xpu violation and
>> and put the device in download mode) on command prompt.
>>
>> Default storage type is set to via USB, so minidump would be downloaded with the
>> help of x86_64 machine (running PCAT tool) attached to Qualcomm device which has
>> backed minidump boot firmware support.
>>
>> This will make the device go to download mode and collect the minidump on to the
>> attached x86 machine running the Qualcomm PCAT tool(This comes as part Qualcomm
>> package manager kit).
>>
>> After that we will see a bunch of predefined registered region as binary blobs files
>> starts with md_* downloaded on the x86 machine on given location in PCAT tool from
>> the target device, more about this can be found in qualcomm minidump guide patch.
>>
>
> I tried to apply this series on top of 535a265d7f0dd50 (as suggested by
> `b4 am -l -g`), but it conflicts on patch [04/17]. Please specify the
> exact base commit or another series for which this series is based on.
Apologies !
I just realized, it was 6.5-rc7, but let me rebase version of the series;
Sorry, for all the reviewed done so far, i will definitely take care of
them or reply.
-Mukesh
>
> Thanks.
>
next prev parent reply other threads:[~2023-09-11 20:52 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-09 20:16 Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 01/17] docs: qcom: Add qualcomm minidump guide Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 02/17] soc: qcom: Add qcom_rproc_minidump module Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 03/17] remoteproc: qcom_q6v5_pas: Use qcom_rproc_minidump() Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 04/17] remoteproc: qcom: Remove minidump related data from qcom_common.c Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 05/17] init: export linux_banner data variable Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 06/17] soc: qcom: Add Qualcomm APSS minidump kernel driver Mukesh Ojha
2023-09-11 11:01 ` Krzysztof Kozlowski
2023-09-12 9:26 ` Mukesh Ojha
2023-09-12 9:54 ` Krzysztof Kozlowski
2023-09-13 7:09 ` Mukesh Ojha
2023-09-12 9:58 ` Mukesh Ojha
2023-09-11 11:07 ` Krzysztof Kozlowski
2023-09-11 19:09 ` Jeff Johnson
2023-09-11 19:33 ` Konrad Dybcio
2023-09-13 15:18 ` Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 07/17] soc: qcom: minidump: Add pending region registration Mukesh Ojha
2023-09-11 11:08 ` Krzysztof Kozlowski
2023-09-11 18:59 ` Jeff Johnson
2023-09-09 20:16 ` [PATCH v5 08/17] arm64: mm: Add dynamic ramoops region support through command line Mukesh Ojha
2023-09-11 5:22 ` Pavan Kondeti
2023-09-09 20:16 ` [PATCH v5 09/17] pstore/ram: Use dynamic ramoops reserve resource Mukesh Ojha
2023-09-11 5:33 ` Pavan Kondeti
2023-09-11 10:51 ` Mukesh Ojha
2023-09-12 0:39 ` Pavan Kondeti
2023-09-12 9:46 ` Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 10/17] pstore: Add pstore_region_defined() helper and export it Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 11/17] qcom_minidump: Register ramoops region with minidump Mukesh Ojha
2023-09-11 6:01 ` Pavan Kondeti
2023-09-11 7:58 ` Mukesh Ojha
2023-09-11 11:09 ` Krzysztof Kozlowski
2023-09-09 20:16 ` [PATCH v5 12/17] MAINTAINERS: Add entry for minidump related files Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 13/17] firmware: qcom_scm: provide a read-modify-write function Mukesh Ojha
2023-09-11 8:08 ` Kathiravan Thirumoorthy
2023-09-11 8:11 ` Kathiravan Thirumoorthy
2023-09-09 20:16 ` [PATCH v5 14/17] pinctrl: qcom: Use qcom_scm_io_update_field() Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 15/17] firmware: scm: Modify only the download bits in TCSR register Mukesh Ojha
2023-09-11 8:11 ` Kathiravan Thirumoorthy
2023-09-11 8:16 ` Kathiravan Thirumoorthy
2023-09-09 20:16 ` [PATCH v5 16/17] firmware: qcom_scm: Refactor code to support multiple download mode Mukesh Ojha
2023-09-09 20:16 ` [PATCH v5 17/17] firmware: qcom_scm: Add multiple download mode support Mukesh Ojha
2023-09-11 7:59 ` [PATCH v5 00/17] Add Qualcomm Minidump kernel driver related support Kathiravan Thirumoorthy
2023-09-11 8:52 ` Bagas Sanjaya
2023-09-11 10:39 ` Mukesh Ojha [this message]
2023-09-11 13:14 ` Bagas Sanjaya
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=c52e90e4-cab0-13b7-9658-1f730de6cf64@quicinc.com \
--to=quic_mojha@quicinc.com \
--cc=agross@kernel.org \
--cc=alim.akhtar@samsung.com \
--cc=andersson@kernel.org \
--cc=andy.shevchenko@gmail.com \
--cc=bagasdotme@gmail.com \
--cc=bmasney@redhat.com \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=gpiccoli@igalia.com \
--cc=keescook@chromium.org \
--cc=kernel@quicinc.com \
--cc=kgene@kernel.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-mediatek@lists.infradead.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mathieu.poirier@linaro.org \
--cc=matthias.bgg@gmail.com \
--cc=nm@ti.com \
--cc=quic_tsoni@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=tony.luck@intel.com \
--cc=vigneshr@ti.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
all inboxes | Powered by JetHome®