[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20211018093731.2dd5917f@gandalf.local.home>
Date: Mon, 18 Oct 2021 09:37:31 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Yang Jihong <yangjihong1@...wei.com>
Cc: <tom.zanussi@...ux.intel.com>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [QUESTION] Performance deterioration caused by commit
85f726a35e504418
On Mon, 18 Oct 2021 11:23:14 +0800
Yang Jihong <yangjihong1@...wei.com> wrote:
> Hi Tom and Steven,
>
> commit 85f726a35e504418 use strncpy instead of memcpy when copying comm,
> on ARM64 machine, this commit causes performance degradation.
>
> I test the number of instructions executed by invoking the
> trace_sched_switch function once on an arm64 machine:
> 1. Use memcpy, the number of instructions executed is 850.
> 2. Use strncpy, the number of instructions executed 1100.
> That is, use strncpy is almost 250 more instructions than memcpy.
>
> Has the impact on performance been considered in this commit? :)
> What is the impact of revert the patch?
>
It's a security issue. And like everything security, there's always going
to be a performance impact. Look at the performance impact due to spectre
and meltdown!
That said, although memcpy() may not be used, we don't need strncpy.
strncpy() will pad the rest of the string with nul bytes. But since the
memory the string is being recorded into is already initialized (or can be
if it isn't), we could use the faster strlcpy().
Have you tried testing it by switching strncpy() with strlcpy()?
-- Steve
Powered by blists - more mailing lists