Re: [PATCH 4.9 52/66] Revert "perf tests: Decompress kernel module before objdump"

From: Florian Fainelli
Date: Wed Sep 05 2018 - 14:50:20 EST


On 04/17/2018 08:59 AM, Greg Kroah-Hartman wrote:
> 4.9-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>
> This reverts commit 7525a238be8f46617cdda29d1be5b85ffe3b042d which is
> commit 94df1040b1e6aacd8dec0ba3c61d7e77cd695f26 upstream.
>
> It breaks the build of perf on 4.9.y, so I'm dropping it.

Sorry to hijack this thread, I was not able to find the original email
when the offending patch was included in 4.1.52. So kernel 4.1.52 also
has the same problem, can you push a 4.1.53 tag with that patch reverted
as well?

Thank you!

>
> Reported-by: Pavlos Parissis <pavlos.parissis@xxxxxxxxx>
> Reported-by: Lei Chen <chenl.lei@xxxxxxxxx>
> Reported-by: Maxime Hadjinlian <maxime.hadjinlian@xxxxxxxxx>
> Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
> Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: David Ahern <dsahern@xxxxxxxxx>
> Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> Cc: Wang Nan <wangnan0@xxxxxxxxxx>
> Cc: kernel-team@xxxxxxx
> Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> Cc: Sasha Levin <alexander.levin@xxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> tools/perf/tests/code-reading.c | 20 +-------------------
> 1 file changed, 1 insertion(+), 19 deletions(-)
>
> --- a/tools/perf/tests/code-reading.c
> +++ b/tools/perf/tests/code-reading.c
> @@ -224,8 +224,6 @@ static int read_object_code(u64 addr, si
> unsigned char buf2[BUFSZ];
> size_t ret_len;
> u64 objdump_addr;
> - const char *objdump_name;
> - char decomp_name[KMOD_DECOMP_LEN];
> int ret;
>
> pr_debug("Reading object code for memory address: %#"PRIx64"\n", addr);
> @@ -286,25 +284,9 @@ static int read_object_code(u64 addr, si
> state->done[state->done_cnt++] = al.map->start;
> }
>
> - objdump_name = al.map->dso->long_name;
> - if (dso__needs_decompress(al.map->dso)) {
> - if (dso__decompress_kmodule_path(al.map->dso, objdump_name,
> - decomp_name,
> - sizeof(decomp_name)) < 0) {
> - pr_debug("decompression failed\n");
> - return -1;
> - }
> -
> - objdump_name = decomp_name;
> - }
> -
> /* Read the object code using objdump */
> objdump_addr = map__rip_2objdump(al.map, al.addr);
> - ret = read_via_objdump(objdump_name, objdump_addr, buf2, len);
> -
> - if (dso__needs_decompress(al.map->dso))
> - unlink(objdump_name);
> -
> + ret = read_via_objdump(al.map->dso->long_name, objdump_addr, buf2, len);
> if (ret > 0) {
> /*
> * The kernel maps are inaccurate - assume objdump is right in
>
>


--
Florian