Re: [PATCH 1/2] perf tools: Introduce memory mapping macros in mman-fix.h

From: Wangnan (F)
Date: Tue Sep 06 2016 - 11:29:05 EST




On 2016/9/6 21:39, Arnaldo Carvalho de Melo wrote:
Em Tue, Sep 06, 2016 at 09:25:47PM +0800, Wangnan (F) escreveu:

On 2016/9/6 20:59, Arnaldo Carvalho de Melo wrote:
Em Tue, Sep 06, 2016 at 05:48:51AM +0000, Wang Nan escreveu:
tools/perf/trace/beauty/mmap.c, tools/perf/util/event.c and
tools/perf/util/map.c depend on several macros in mman.h, which
are lost on old systems like ubuntu 12.04. They are architecture
Not "lost on old systems", changing that to "not present on old systems"

dependened macros. Importing ./arch/*/include/uapi/asm/mman.h
into tools/ is not easy because mman.h for some unusual archs
(like tile) have extra dependencies.
This patch introduces only required macros into mman-fix.h.
Macros list is gotten from tools/perf/trace/beauty/mmap.c.
ok, I'll try keeping the include/uapi/asm-generic/mman.h and
arch/alpha/include/uapi/asm/mman.h with just what you added, so that at
least the .c files appears as using the headers were those things are
defined in the kernel sources.

Ah, and good eyes in realizing this is not the same value for all
arches!
This is why we have to define these macros for each archs.
Your solution in tools/perf/trace/beauty/mmap.c works for
x86 only.

However, I don't like this patchset because we add 300+
lines of code and 22 new files for less than 15 macros,
and only one of them I really concern. Moreover, futhre
code require more symbols in uapi and we have to add new
headers, finally we will clone the whole uapi. We have
to stop doing this...
Why? If we want to support older newer kernels running on older distros,
which is a valid goal, or recent tool source code on older distros,
where fallbacks will take place with their older kernels, and if we have
the build automated for that (I have) then why not keep the tools
building on as many different userspaces as possible?

Your automated building checker is great. I mean we have
to find a way to stop pulling kernel headers to tools/include.

But since we haven't find such a way, I'll continously improve
this mman.h stuff. As your suggestion, I'll try to put them
in uapi/mman.h, not mman-fix.h. This require a building check
for each arch.

Thank you.