All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: "D. Starke" <daniel.starke@siemens.com>
Cc: linux-serial <linux-serial@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jirislaby@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 8/9] tty: n_gsm: add DLCI specific rx/tx statistics
Date: Wed, 5 Apr 2023 12:13:49 +0300 (EEST)	[thread overview]
Message-ID: <6db04388-7f41-86b-a3f-29b2ccd9b51a@linux.intel.com> (raw)
In-Reply-To: <20230405054730.3850-8-daniel.starke@siemens.com>

On Wed, 5 Apr 2023, D. Starke wrote:

> From: Daniel Starke <daniel.starke@siemens.com>
> 
> Add counters for the number of data bytes received/transmitted per DLCI in
> for preparation for an upcoming patch which will expose these values to the
> user.
> 
> Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
> ---
>  drivers/tty/n_gsm.c | 24 +++++++++++++++++++++++-
>  1 file changed, 23 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
> index 49cb2dbfa233..61f9825fde3c 100644
> --- a/drivers/tty/n_gsm.c
> +++ b/drivers/tty/n_gsm.c
> @@ -185,6 +185,9 @@ struct gsm_dlci {
>  	void (*data)(struct gsm_dlci *dlci, const u8 *data, int len);
>  	void (*prev_data)(struct gsm_dlci *dlci, const u8 *data, int len);
>  	struct net_device *net; /* network interface, if created */
> +	/* Statistics (not currently exposed) */
> +	u64 tx;			/* Data bytes sent on this DLCI */
> +	u64 rx;			/* Data bytes received on this DLCI */
>  };
>  
>  /*
> @@ -1215,6 +1218,7 @@ static int gsm_dlci_data_output(struct gsm_mux *gsm, struct gsm_dlci *dlci)
>  	tty_port_tty_wakeup(&dlci->port);
>  
>  	__gsm_data_queue(dlci, msg);
> +	dlci->tx += len;
>  	/* Bytes of data we used up */
>  	return size;
>  }

Reading the function comments and your changelog, I'm left to wonder why 
gsm_dlci_data_output() is supposed to increment ->tx but 
gsm_dlci_data_output_framed() is not?

-- 
 i.

> @@ -1459,6 +1463,7 @@ static int gsm_control_command(struct gsm_mux *gsm, int cmd, const u8 *data,
>  	msg->data[1] = (dlen << 1) | EA;
>  	memcpy(msg->data + 2, data, dlen);
>  	gsm_data_queue(gsm->dlci[0], msg);
> +	gsm->dlci[0]->tx += dlen;
>  
>  	return 0;
>  }
> @@ -1485,6 +1490,7 @@ static void gsm_control_reply(struct gsm_mux *gsm, int cmd, const u8 *data,
>  	msg->data[1] = (dlen << 1) | EA;
>  	memcpy(msg->data + 2, data, dlen);
>  	gsm_data_queue(gsm->dlci[0], msg);
> +	gsm->dlci[0]->tx += dlen;
>  }
>  
>  /**
> @@ -1849,10 +1855,13 @@ static void gsm_control_message(struct gsm_mux *gsm, unsigned int command,
>  						const u8 *data, int clen)
>  {
>  	u8 buf[1];
> +	struct gsm_dlci *dlci = gsm->dlci[0];
> +
> +	if (dlci)
> +		dlci->rx += clen;
>  
>  	switch (command) {
>  	case CMD_CLD: {
> -		struct gsm_dlci *dlci = gsm->dlci[0];
>  		/* Modem wishes to close down */
>  		if (dlci) {
>  			dlci->dead = true;
> @@ -1931,6 +1940,8 @@ static void gsm_control_response(struct gsm_mux *gsm, unsigned int command,
>  
>  	ctrl = gsm->pending_cmd;
>  	dlci = gsm->dlci[0];
> +	if (dlci)
> +		dlci->rx += clen;
>  	command |= 1;
>  	/* Does the reply match our command */
>  	if (ctrl != NULL && (command == ctrl->cmd || command == CMD_NSC)) {
> @@ -2295,6 +2306,9 @@ static void gsm_dlci_begin_open(struct gsm_dlci *dlci)
>  			need_pn = true;
>  	}
>  
> +	dlci->tx = 0;
> +	dlci->rx = 0;
> +
>  	switch (dlci->state) {
>  	case DLCI_CLOSED:
>  	case DLCI_WAITING_CONFIG:
> @@ -2327,6 +2341,9 @@ static void gsm_dlci_begin_open(struct gsm_dlci *dlci)
>   */
>  static void gsm_dlci_set_opening(struct gsm_dlci *dlci)
>  {
> +	dlci->tx = 0;
> +	dlci->rx = 0;
> +
>  	switch (dlci->state) {
>  	case DLCI_CLOSED:
>  	case DLCI_WAITING_CONFIG:
> @@ -2346,6 +2363,9 @@ static void gsm_dlci_set_opening(struct gsm_dlci *dlci)
>   */
>  static void gsm_dlci_set_wait_config(struct gsm_dlci *dlci)
>  {
> +	dlci->tx = 0;
> +	dlci->rx = 0;
> +
>  	switch (dlci->state) {
>  	case DLCI_CLOSED:
>  	case DLCI_CLOSING:
> @@ -2422,6 +2442,7 @@ static void gsm_dlci_data(struct gsm_dlci *dlci, const u8 *data, int clen)
>  		fallthrough;
>  	case 1:		/* Line state will go via DLCI 0 controls only */
>  	default:
> +		dlci->rx += clen;
>  		tty_insert_flip_string(port, data, clen);
>  		tty_flip_buffer_push(port);
>  	}
> @@ -2782,6 +2803,7 @@ static void gsm_queue(struct gsm_mux *gsm)
>  			gsm->open_error++;
>  			return;
>  		}
> +		dlci->rx += gsm->len;
>  		if (dlci->dead)
>  			gsm_response(gsm, address, DM|PF);
>  		else {
> 


  reply	other threads:[~2023-04-05  9:13 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-05  5:47 [PATCH 1/9] tty: n_gsm: fix redundant assignment of gsm->encoding D. Starke
2023-04-05  5:47 ` [PATCH 2/9] tty: n_gsm: add restart parameter to DLC specific ioctl config D. Starke
2023-04-05  8:15   ` Ilpo Järvinen
2023-04-06  5:17     ` Starke, Daniel
2023-04-05  5:47 ` [PATCH 3/9] tty: n_gsm: add missing description to gsm_config D. Starke
2023-04-05  8:18   ` Ilpo Järvinen
2023-04-06  5:26     ` Starke, Daniel
2023-04-05  5:47 ` [PATCH 4/9] tty: n_gsm: fix unneeded initialization of ret in gsm_dlci_config D. Starke
2023-04-05  8:23   ` Ilpo Järvinen
2023-04-06  5:31     ` Starke, Daniel
2023-04-05  5:47 ` [PATCH 5/9] tty: n_gsm: add open_error counter to gsm_mux D. Starke
2023-04-05  8:41   ` Ilpo Järvinen
2023-04-06  5:42     ` Starke, Daniel
2023-04-05  5:47 ` [PATCH 6/9] tty: n_gsm: increase malformed counter for malformed control frames D. Starke
2023-04-05  8:44   ` Ilpo Järvinen
2023-04-06  5:45     ` Starke, Daniel
2023-04-05  5:47 ` [PATCH 7/9] tty: n_gsm: increase gsm_mux unsupported counted where appropriate D. Starke
2023-04-05  9:00   ` Ilpo Järvinen
2023-04-06  5:57     ` Starke, Daniel
2023-04-05  5:47 ` [PATCH 8/9] tty: n_gsm: add DLCI specific rx/tx statistics D. Starke
2023-04-05  9:13   ` Ilpo Järvinen [this message]
2023-04-06  6:02     ` Starke, Daniel
2023-04-05  5:47 ` [PATCH 9/9] tty: n_gsm: cleanup gsm_control_command and gsm_control_reply D. Starke
2023-04-05  9:15   ` Ilpo Järvinen
2023-04-06  6:04     ` Starke, Daniel
2023-04-05  8:16 ` [PATCH 1/9] tty: n_gsm: fix redundant assignment of gsm->encoding Ilpo Järvinen

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=6db04388-7f41-86b-a3f-29b2ccd9b51a@linux.intel.com \
    --to=ilpo.jarvinen@linux.intel.com \
    --cc=daniel.starke@siemens.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.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 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.