From: Greg KH <gregkh@linuxfoundation.org>
To: Ekansh Gupta <quic_ekangupt@quicinc.com>
Cc: srinivas.kandagatla@linaro.org, linux-arm-msm@vger.kernel.org,
ekangupt@qti.qualcomm.com, linux-kernel@vger.kernel.org,
bkumar@qti.qualcomm.com, fastrpc.upstream@qti.qualcomm.com
Subject: Re: [PATCH v1] misc: fastrpc: Collect driver-remote processor transaction logs
Date: Tue, 6 Jun 2023 19:42:31 +0200 [thread overview]
Message-ID: <2023060608-junction-conclude-f607@gregkh> (raw)
In-Reply-To: <1686070555-11154-1-git-send-email-quic_ekangupt@quicinc.com>
On Tue, Jun 06, 2023 at 10:25:55PM +0530, Ekansh Gupta wrote:
> Add changes to collect driver-remote processor rpmsg transaction
> logs. These logs will carry payload information for the rpmsg message
> instance. These logs are channel specific and are collected in
> channel context structure.
>
> These rpmsg transaction logs can help in improving debugability as
> all requests from processes are getting captured in channel context
> structure.
>
> Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
> ---
> drivers/misc/fastrpc.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 88 insertions(+)
>
> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
> index 30d4d04..6447cee 100644
> --- a/drivers/misc/fastrpc.c
> +++ b/drivers/misc/fastrpc.c
> @@ -104,6 +104,9 @@
>
> #define miscdev_to_fdevice(d) container_of(d, struct fastrpc_device, miscdev)
>
> +/* Length of glink transaction history to store */
> +#define GLINK_MSG_HISTORY_LEN (128)
> +
> static const char *domains[FASTRPC_DEV_MAX] = { "adsp", "mdsp",
> "sdsp", "cdsp"};
> struct fastrpc_phy_page {
> @@ -181,6 +184,28 @@ struct fastrpc_invoke_rsp {
> int retval; /* invoke return value */
> };
>
> +struct fastrpc_tx_msg {
> + struct fastrpc_msg msg; /* Msg sent to remote subsystem */
> + int rpmsg_send_err; /* rpmsg error */
> + s64 ns; /* Timestamp (in ns) of msg */
> +};
> +
> +struct fastrpc_rx_msg {
> + struct fastrpc_invoke_rsp rsp; /* Response from remote subsystem */
> + s64 ns; /* Timestamp (in ns) of response */
> +};
> +
> +struct fastrpc_rpmsg_log {
> + u32 tx_index; /* Current index of 'tx_msgs' array */
> + u32 rx_index; /* Current index of 'rx_msgs' array */
> + /* Rolling history of messages sent to remote subsystem */
> + struct fastrpc_tx_msg tx_msgs[GLINK_MSG_HISTORY_LEN];
> + /* Rolling history of responses from remote subsystem */
> + struct fastrpc_rx_msg rx_msgs[GLINK_MSG_HISTORY_LEN];
> + spinlock_t tx_lock;
> + spinlock_t rx_lock;
Why roll your own ring-buffer logic instead of using one of the many
offerings that the kernel already provides for you?
thanks,
greg k-h
next prev parent reply other threads:[~2023-06-06 17:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-06 16:55 [PATCH v1] misc: fastrpc: Collect driver-remote processor transaction logs Ekansh Gupta
2023-06-06 17:42 ` Greg KH [this message]
2023-06-07 6:51 ` Ekansh Gupta
2023-06-12 12:07 ` Srinivas Kandagatla
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=2023060608-junction-conclude-f607@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=bkumar@qti.qualcomm.com \
--cc=ekangupt@qti.qualcomm.com \
--cc=fastrpc.upstream@qti.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=quic_ekangupt@quicinc.com \
--cc=srinivas.kandagatla@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.