Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b15a6f4 authored by Atish Kumar Patra's avatar Atish Kumar Patra
Browse files

glink-debugfs: Add channel remote edge and state to debugfs



It is advisable to have remote state and edge information
of channels for ease in debugging.

Replace  tx and rx packet count of a channel with remote
edge and state of that channel in the debugfs file.

Change-Id: I3e5f3c80f6a5645a215e751a80eb81fbf679717a
Signed-off-by: default avatarAtish Kumar Patra <apatra@codeaurora.org>
parent b343ffda
Loading
Loading
Loading
Loading
+19 −4
Original line number Diff line number Diff line
@@ -3591,19 +3591,34 @@ int glink_get_ch_rcid(struct channel_ctx *ch_ctx)
EXPORT_SYMBOL(glink_get_ch_rcid);

/**
 * glink_get_ch_state() - get the channel state
 * glink_get_ch_lstate() - get the local channel state
 * @ch_ctx:	pointer to the channel context.
 *
 * Return: Name of the channel state, NUll in case of invalid input
 * Return: Name of the local channel state, NUll in case of invalid input
 */
const char *glink_get_ch_state(struct channel_ctx *ch_ctx)
const char *glink_get_ch_lstate(struct channel_ctx *ch_ctx)
{
	if (ch_ctx == NULL)
		return NULL;

	return glink_get_ch_state_string(ch_ctx->local_open_state);
}
EXPORT_SYMBOL(glink_get_ch_state);
EXPORT_SYMBOL(glink_get_ch_lstate);

/**
 * glink_get_ch_rstate() - get the remote channel state
 * @ch_ctx:	pointer to the channel context.
 *
 * Return: true if remote side is opened false otherwise
 */
bool glink_get_ch_rstate(struct channel_ctx *ch_ctx)
{
	if (ch_ctx == NULL)
		return NULL;

	return ch_ctx->remote_opened;
}
EXPORT_SYMBOL(glink_get_ch_rstate);

/**
 * glink_get_ch_xprt_name() - get the name of the transport to which
+13 −13
Original line number Diff line number Diff line
@@ -405,19 +405,19 @@ static void glink_dfs_create_channel_list(struct seq_file *s)
	int count = 0;
	/*
	* formatted, human readable channel state output, ie:
	* NAME               |LCID|RCID|XPRT |STATE   |TX |RX |LINT-Q|RINT-Q|
	* NAME               |LCID|RCID|XPRT|EDGE|LSTATE |RSTATE|LINT-Q|RINT-Q|
	* --------------------------------------------------------------------
	* LOCAL_LOOPBACK_CLNT|2   |1   |lloop|OPENED  | - | - |5     |6     |
	* LOCAL_LOOPBACK_CLNT|2   |1  |lloop|local|OPENED|OPENED|5     |6    |
	* N.B. Number of TX & RX Packets not implemented yet. -ENOSYS is printed
	*/
	seq_printf(s, "%-20s|%-4s|%-4s|%-19s|%-7s|%-3s|%-3s|%-5s|%-5s|\n",
	seq_printf(s, "%-20s|%-4s|%-4s|%-10s|%-6s|%-7s|%-7s|%-5s|%-5s|\n",
								"NAME",
								"LCID",
								"RCID",
								"XPRT",
								"STATE",
								"TX",
								"RX",
								"EDGE",
								"LSTATE",
								"RSTATE",
								"LINTQ",
								"RINTQ");
	seq_puts(s,
@@ -430,15 +430,15 @@ static void glink_dfs_create_channel_list(struct seq_file *s)
		ch_ctx = glink_ch_ctx_iterator_next(&ch_iter);
		while (ch_ctx != NULL) {
			count++;
			seq_printf(s, "%-20s|%-4i|%-4i|%-19s|%-7s|",
			seq_printf(s, "%-20s|%-4i|%-4i|%-10s|%-6s|%-7s|",
					glink_get_ch_name(ch_ctx),
					glink_get_ch_lcid(ch_ctx),
					glink_get_ch_rcid(ch_ctx),
					glink_get_ch_xprt_name(ch_ctx),
					glink_get_ch_state(ch_ctx));
			seq_printf(s, "%-3i|%-3i|%-5i|%-5i|\n",
				glink_get_ch_tx_pkt_count(ch_ctx),
				glink_get_ch_rx_pkt_count(ch_ctx),
					glink_get_ch_edge_name(ch_ctx),
					glink_get_ch_lstate(ch_ctx));
			seq_printf(s, "%-7s|%-5i|%-5i|\n",
			(glink_get_ch_rstate(ch_ctx) ? "OPENED" : "CLOSED"),
			glink_get_ch_lintents_queued(ch_ctx),
			glink_get_ch_rintents_queued(ch_ctx));

+11 −3
Original line number Diff line number Diff line
@@ -558,12 +558,20 @@ int glink_get_ch_lcid(struct channel_ctx *ch_ctx);
int glink_get_ch_rcid(struct channel_ctx *ch_ctx);

/**
 * glink_get_ch_state() - get the channel state
 * glink_get_ch_lstate() - get the local channel state
 * @ch_ctx:	pointer to the channel context.
 *
 * Return: name of the channel state, NULL in case of invalid input
 * Return: name of the local channel state, NULL in case of invalid input
 */
const char *glink_get_ch_lstate(struct channel_ctx *ch_ctx);

/**
 * glink_get_ch_rstate() - get the remote channel state
 * @ch_ctx:	pointer to the channel context.
 *
 * Return: true if remote side is opened false otherwise
 */
const char *glink_get_ch_state(struct channel_ctx *ch_ctx);
bool glink_get_ch_rstate(struct channel_ctx *ch_ctx);

/**
 * glink_get_ch_xprt_name() - get the name of the transport to which