All of lore.kernel.org
 help / color / mirror / Atom feed
From: Breno Leitao <leitao@debian.org>
To: Simon Horman <horms@kernel.org>
Cc: kuba@kernel.org, davem@davemloft.net, edumazet@google.com,
	pabeni@redhat.com, thepacketgeek@gmail.com,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	davej@codemonkey.org.uk, thevlad@meta.com, max@kutsevol.com
Subject: Re: [PATCH net-next 8/9] net: netconsole: split send_msg_fragmented
Date: Fri, 6 Sep 2024 01:48:15 -0700	[thread overview]
Message-ID: <20240906-spirited-versatile-cougar-2babed@devvm32600> (raw)
In-Reply-To: <20240904111636.GV4792@kernel.org>

On Wed, Sep 04, 2024 at 12:16:36PM +0100, Simon Horman wrote:
> On Tue, Sep 03, 2024 at 07:07:51AM -0700, Breno Leitao wrote:
> > Refactor the send_msg_fragmented() function by extracting the logic for
> > sending the message body into a new function called
> > send_fragmented_body().
> > 
> > Now, send_msg_fragmented() handles appending the release and header, and
> > then delegates the task of sending the body to send_fragmented_body().
> 
> I think it would be good to expand a bit on why here.
> 
> > Signed-off-by: Breno Leitao <leitao@debian.org>
> > ---
> >  drivers/net/netconsole.c | 85 +++++++++++++++++++++++-----------------
> >  1 file changed, 48 insertions(+), 37 deletions(-)
> > 
> > diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
> > index be23def330e9..81d7d2b09988 100644
> > --- a/drivers/net/netconsole.c
> > +++ b/drivers/net/netconsole.c
> > @@ -1066,45 +1066,21 @@ static void append_release(char *buf)
> >  	scnprintf(buf, MAX_PRINT_CHUNK, "%s,", release);
> >  }
> >  
> > -static void send_msg_fragmented(struct netconsole_target *nt,
> > -				const char *msg,
> > -				const char *userdata,
> > -				int msg_len,
> > -				int release_len)
> > +static void send_fragmented_body(struct netconsole_target *nt, char *buf,
> > +				 const char *msgbody, int header_len,
> > +				 int msgbody_len)
> >  {
> > -	int header_len, msgbody_len, body_len;
> > -	static char buf[MAX_PRINT_CHUNK]; /* protected by target_list_lock */
> > -	int offset = 0, userdata_len = 0;
> > -	const char *header, *msgbody;
> > -
> > -	if (userdata)
> > -		userdata_len = nt->userdata_length;
> > -
> > -	/* need to insert extra header fields, detect header and msgbody */
> > -	header = msg;
> > -	msgbody = memchr(msg, ';', msg_len);
> > -	if (WARN_ON_ONCE(!msgbody))
> > -		return;
> > -
> > -	header_len = msgbody - header;
> > -	msgbody_len = msg_len - header_len - 1;
> > -	msgbody++;
> > -
> > -	/*
> > -	 * Transfer multiple chunks with the following extra header.
> > -	 * "ncfrag=<byte-offset>/<total-bytes>"
> > -	 */
> > -	if (release_len)
> > -		append_release(buf);
> > +	int body_len, offset = 0;
> > +	const char *userdata = NULL;
> > +	int userdata_len = 0;
> >  
> > -	/* Copy the header into the buffer */
> > -	memcpy(buf + release_len, header, header_len);
> > -	header_len += release_len;
> > +#ifdef CONFIG_NETCONSOLE_DYNAMIC
> > +	userdata = nt->userdata_complete;
> > +	userdata_len = nt->userdata_length;
> > +#endif
> 
> I think that dropping the userdata parameter of send_msg_fragmented() ought
> to part of an earlier patch or separate patch. It doesn't seem strictly
> related to this patch.

I agree with you. Let me separate it in a different patch, then.

Thanks for the review,
--breno

  reply	other threads:[~2024-09-06  8:48 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-03 14:07 [PATCH net-next 0/9] netconsole refactoring and warning fix Breno Leitao
2024-09-03 14:07 ` [PATCH net-next 1/9] net: netconsole: remove msg_ready variable Breno Leitao
2024-09-04 10:56   ` Simon Horman
2024-09-03 14:07 ` [PATCH net-next 2/9] net: netconsole: split send_ext_msg_udp() function Breno Leitao
2024-09-04 10:55   ` Simon Horman
2024-09-03 14:07 ` [PATCH net-next 3/9] net: netconsole: separate fragmented message handling in send_ext_msg Breno Leitao
2024-09-04 10:59   ` Simon Horman
2024-09-06  8:33     ` Breno Leitao
2024-09-03 14:07 ` [PATCH net-next 4/9] net: netconsole: rename body to msg_body Breno Leitao
2024-09-04 11:02   ` Simon Horman
2024-09-03 14:07 ` [PATCH net-next 5/9] net: netconsole: introduce variable to track body length Breno Leitao
2024-09-04 11:04   ` Simon Horman
2024-09-03 14:07 ` [PATCH net-next 6/9] net: netconsole: track explicitly if msgbody was written to buffer Breno Leitao
2024-09-04 11:07   ` Simon Horman
2024-09-06  8:37     ` Breno Leitao
2024-09-03 14:07 ` [PATCH net-next 7/9] net: netconsole: extract release appending into separate function Breno Leitao
2024-09-04 11:08   ` Simon Horman
2024-09-03 14:07 ` [PATCH net-next 8/9] net: netconsole: split send_msg_fragmented Breno Leitao
2024-09-04 11:16   ` Simon Horman
2024-09-06  8:48     ` Breno Leitao [this message]
2024-09-03 14:07 ` [PATCH net-next 9/9] net: netconsole: Fix a wrong warning Breno Leitao

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=20240906-spirited-versatile-cougar-2babed@devvm32600 \
    --to=leitao@debian.org \
    --cc=davej@codemonkey.org.uk \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=max@kutsevol.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=thepacketgeek@gmail.com \
    --cc=thevlad@meta.com \
    /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.