Messages in this thread | | | From | Alexander Kapshuk <> | Date | Wed, 24 May 2023 09:43:17 +0300 | Subject | Re: [PATCH 1/2] perf arm64: Handle __NR3264_ prefixed syscall number |
| |
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 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" }'
| |