All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tiezhu Yang <yangtiezhu@loongson.cn>
To: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Hans-Peter Nilsson <hp@axis.com>, Leo Yan <leo.yan@linaro.org>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	loongarch@lists.linux.dev, loongson-kernel@lists.loongnix.cn
Subject: Re: [PATCH 1/2] perf arm64: Handle __NR3264_ prefixed syscall number
Date: Wed, 24 May 2023 15:18:28 +0800	[thread overview]
Message-ID: <2932e212-ba17-090b-761b-b18e8f9c33e8@loongson.cn> (raw)
In-Reply-To: <CAJ1xhMV=WaYbdGpiRedLUGnYp8JLzcP81Ksw1k1610xeHCiGBA@mail.gmail.com>



On 05/24/2023 02:43 PM, Alexander Kapshuk wrote:
> On Wed, May 24, 2023 at 6:19 AM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>>
>>
>>
>> On 05/23/2023 08:31 PM, Alexander Kapshuk wrote:
>>> On Tue, May 23, 2023 at 1:22 PM Tiezhu Yang <yangtiezhu@loongson.cn> wrote:
>>>>
>>>> After commit 9854e7ad35fe ("perf arm64: Simplify mksyscalltbl"),
>>>> in the generated syscall table file syscalls.c, there exist some
>>>> __NR3264_ prefixed syscall numbers such as [__NR3264_ftruncate],
>>>> it looks like not so good, just do some small filter operations
>>>> to handle __NR3264_ prefixed syscall number as a digital number.
>>>>
>>>> Without this patch:
>>>>
>>>>   [__NR3264_ftruncate] = "ftruncate",
>>>>
>>>> With this patch:
>>>>
>>>>   [46] = "ftruncate",
>>>>
>>>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>>>> ---
>>>>  tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 7 ++++---
>>>>  1 file changed, 4 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
>>>> index 22cdf91..59ab7939 100755
>>>> --- a/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
>>>> +++ b/tools/perf/arch/arm64/entry/syscalls/mksyscalltbl
>>>> @@ -39,7 +39,8 @@ create_table()
>>>>         echo "};"
>>>>  }
>>>>
>>>> -$gcc -E -dM -x c -I $incpath/include/uapi $input \
>>>> -       |sed -ne 's/^#define __NR_//p' \
>>>> -       |sort -t' ' -k2 -n             \
>>>> +$gcc -E -dM -x c -I $incpath/include/uapi $input               \
>>>> +       |awk '{if ($2~"__NR" && $3 !~"__NR3264_") {print}}'     \
>>>> +       |sed -ne 's/^#define __NR_//p;s/^#define __NR3264_//p'  \
>>>> +       |sort -t' ' -k2 -n                                      \
>>>>         |create_table
>>>> --
>>>> 2.1.0
>>>>
>>>
>>> As an aside, the awk + sed + sort parts of the command line may be
>>> reduced to the following awk script, if desired:
>>> awk '$2 ~ "__NR" && $3 !~ "__NR3264_" {
>>>         sub("^#define __NR_", "")
>>>         sub("^#define __NR3264_", "")
>>>         print | "sort -k2 -n"
>>> }'
>>>
>>
>> Hi Alexander,
>>
>> Thanks, it seems more simple and works well as expected.
>> Let us wait for more review comments before respin.
>>
>> If no any objections, I will send v2 with the following
>> changes based on the current patch in the next week.
>>
>> -$gcc -E -dM -x c -I $incpath/include/uapi $input               \
>> -       |awk '{if ($2~"__NR" && $3 !~"__NR3264_") {print}}'     \
>> -       |sed -ne 's/^#define __NR_//p;s/^#define __NR3264_//p'  \
>> -       |sort -t' ' -k2 -n                                      \
>> +$gcc -E -dM -x c -I $incpath/include/uapi $input \
>> +       |awk '$2 ~ "__NR" && $3 !~ "__NR3264_" {
>> +               sub("^#define __NR_", "")
>> +               sub("^#define __NR3264_", "")
>> +               print | "sort -k2 -n"}' \
>>          |create_table
>>
>> Thanks,
>> Tiezhu
>>
>
> Hi Tiezhu,
>
> Thanks for your prompt feedback.
> It was merely a suggestion entirely subject to your discretion.
>
> If no other patterns are anticipated to be processed by the sub

Yes, there are only 2 patterns such as "__NR_" and "__NR3264_",
I confirmed that in include/uapi/asm-generic/unistd.h.

> routines, they may be combined into a single sub routine like so:
> awk '$2 ~ "__NR" && $3 !~ "__NR3264_" {
>         sub("^#define __NR(3264)?_", "")
>         print | "sort -k2 -n"
> }'

Thanks again, I tested the above code, it also works well and
looks better, I will modify the code as you suggested in v2.

Thanks,
Tiezhu


  reply	other threads:[~2023-05-24  7:18 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-23 10:22 [PATCH 0/2] perf tools: Modify mksyscalltbl Tiezhu Yang
2023-05-23 10:22 ` [PATCH 1/2] perf arm64: Handle __NR3264_ prefixed syscall number Tiezhu Yang
2023-05-23 12:31   ` Alexander Kapshuk
2023-05-24  3:19     ` Tiezhu Yang
2023-05-24  6:43       ` Alexander Kapshuk
2023-05-24  7:18         ` Tiezhu Yang [this message]
2023-05-27  1:43           ` Leo Yan
2023-05-23 10:22 ` [PATCH 2/2] perf LoongArch: Simplify mksyscalltbl Tiezhu Yang
2023-05-27  1:55   ` Leo Yan

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=2932e212-ba17-090b-761b-b18e8f9c33e8@loongson.cn \
    --to=yangtiezhu@loongson.cn \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.kapshuk@gmail.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=hp@axis.com \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=loongarch@lists.linux.dev \
    --cc=loongson-kernel@lists.loongnix.cn \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.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.