[dpdk-dev,1/2] log: remove useless intermediate buffer

Message ID 1527753808-19409-1-git-send-email-david.marchand@6wind.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

David Marchand May 31, 2018, 8:03 a.m. UTC
  Rather than copy the log message, we can use a precision in the format
string given to syslog.

Fixes: af75078fece3 ("first public release")
Signed-off-by: David Marchand <david.marchand@6wind.com>
---
 lib/librte_eal/linuxapp/eal/eal_log.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)
  

Comments

Olivier Matz June 25, 2018, 2:42 p.m. UTC | #1
On Thu, May 31, 2018 at 10:03:27AM +0200, David Marchand wrote:
> Rather than copy the log message, we can use a precision in the format
> string given to syslog.
> 
> Fixes: af75078fece3 ("first public release")
> Signed-off-by: David Marchand <david.marchand@6wind.com>

Reviewed-by: Olivier Matz <olivier.matz@6wind.com>
  
Thomas Monjalon June 27, 2018, 4:19 p.m. UTC | #2
25/06/2018 16:42, Olivier Matz:
> On Thu, May 31, 2018 at 10:03:27AM +0200, David Marchand wrote:
> > Rather than copy the log message, we can use a precision in the format
> > string given to syslog.
> > 
> > Fixes: af75078fece3 ("first public release")

I remove the Fixes: line because we don't need to backport
this patch. I consider it is not a fix.

> > Signed-off-by: David Marchand <david.marchand@6wind.com>
> 
> Reviewed-by: Olivier Matz <olivier.matz@6wind.com>

Applied, thanks
  
David Marchand June 27, 2018, 4:41 p.m. UTC | #3
On Wed, Jun 27, 2018 at 6:19 PM, Thomas Monjalon <thomas@monjalon.net> wrote:
> 25/06/2018 16:42, Olivier Matz:
>> On Thu, May 31, 2018 at 10:03:27AM +0200, David Marchand wrote:
>> > Rather than copy the log message, we can use a precision in the format
>> > string given to syslog.
>> >
>> > Fixes: af75078fece3 ("first public release")
>
> I remove the Fixes: line because we don't need to backport
> this patch. I consider it is not a fix.

Yes, clearly, no need for backport.
Thanks.
  

Patch

diff --git a/lib/librte_eal/linuxapp/eal/eal_log.c b/lib/librte_eal/linuxapp/eal/eal_log.c
index ff14588..9d02ddd 100644
--- a/lib/librte_eal/linuxapp/eal/eal_log.c
+++ b/lib/librte_eal/linuxapp/eal/eal_log.c
@@ -25,25 +25,14 @@ 
 static ssize_t
 console_log_write(__attribute__((unused)) void *c, const char *buf, size_t size)
 {
-	char copybuf[BUFSIZ + 1];
 	ssize_t ret;
-	uint32_t loglevel;
 
 	/* write on stdout */
 	ret = fwrite(buf, 1, size, stdout);
 	fflush(stdout);
 
-	/* truncate message if too big (should not happen) */
-	if (size > BUFSIZ)
-		size = BUFSIZ;
-
 	/* Syslog error levels are from 0 to 7, so subtract 1 to convert */
-	loglevel = rte_log_cur_msg_loglevel() - 1;
-	memcpy(copybuf, buf, size);
-	copybuf[size] = '\0';
-
-	/* write on syslog too */
-	syslog(loglevel, "%s", copybuf);
+	syslog(rte_log_cur_msg_loglevel() - 1, "%.*s", (int)size, buf);
 
 	return ret;
 }