Re: [PATCH 08/11] perf python: Initialize 'page_size' variable

From: Arnaldo Carvalho de Melo
Date: Thu Oct 18 2012 - 09:59:02 EST


Em Thu, Oct 18, 2012 at 10:31:57AM +0900, Namhyung Kim escreveu:
> On Wed, 17 Oct 2012 14:19:44 -0300, Arnaldo Carvalho de Melo wrote:
> > From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

> > The commit 0c1fe6b:

> > 'perf tools: Have the page size value available for all tools'

> Is that commit in your perf/urgent branch? I got this:

> GEN python/perf.so

Ouch, brown paper bag grade stuff detected, I reverted it now in my perf/urgent
branch.

Ingo, I'm on a conference here in Brazil, just pushed this revert to
perf/urgent, up to you if you want to pull from it or apply all the
csets in this branch except for the one reverted:

commit 356712f6e296fdae1edae51b96b485ed830bdc0c
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Tue Oct 16 14:51:04 2012 -0300

perf python: Initialize 'page_size' variable

-----------------------

I'll keep it on my perf/core branch, where it is needed.

Thanks Namhyung!

- Arnaldo

> util/python.c: In function âinitperfâ:
> util/python.c:1018:2: error: âpage_sizeâ undeclared (first use in this function)
> util/python.c:1018:2: note: each undeclared identifier is reported only once for each function it appears in
> error: command 'gcc' failed with exit status 1
> cp: cannot stat `python_ext_build/lib/perf.so': No such file or directory
> make: *** [python/perf.so] Error 1
>
> Adding '#include "util.h"' didn't work. But manually adding 'extern
> unsigned int page_size;' did.
>
> Thanks,
> Namhyung
>
>
> >
> > Broke the python binding because the global variable 'page_size' is
> > initialized on the main() routine, that is not called when using
> > just the python binding, causing evlist.mmap() to fail because it
> > expects that variable to be initialized to the system's page size.
> >
> > Fix it by initializing it on the binding init routine.
> >
> > Cc: David Ahern <dsahern@xxxxxxxxx>
> > Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> > Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> > Cc: Mike Galbraith <efault@xxxxxx>
> > Cc: Namhyung Kim <namhyung@xxxxxxxxx>
> > Cc: Paul Mackerras <paulus@xxxxxxxxx>
> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> > Cc: Stephane Eranian <eranian@xxxxxxxxxx>
> > Link: http://lkml.kernel.org/n/tip-vrvp3azmbfzexnpmkhmvtzzc@xxxxxxxxxxxxxx
> > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> > ---
> > tools/perf/util/python.c | 2 ++
> > 1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c
> > index 9181bf2..a2657fd 100644
> > --- a/tools/perf/util/python.c
> > +++ b/tools/perf/util/python.c
> > @@ -1015,6 +1015,8 @@ PyMODINIT_FUNC initperf(void)
> > pyrf_cpu_map__setup_types() < 0)
> > return;
> >
> > + page_size = sysconf(_SC_PAGE_SIZE);
> > +
> > Py_INCREF(&pyrf_evlist__type);
> > PyModule_AddObject(module, "evlist", (PyObject*)&pyrf_evlist__type);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/