Re: [PATCH 1/2] perf tools: Decompress kernel module when reading DSO data

From: Namhyung Kim
Date: Fri Jun 02 2017 - 21:41:39 EST


Hi Jiri,

On Thu, Jun 1, 2017 at 8:29 PM, Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> On Thu, Jun 01, 2017 at 06:06:04PM +0900, Namhyung Kim wrote:
>
> SNIP
>
>> @@ -399,6 +438,7 @@ static int __open_dso(struct dso *dso, struct machine *machine)
>> int fd;
>> char *root_dir = (char *)"";
>> char *name = malloc(PATH_MAX);
>> + bool needs_unlink = false;
>>
>> if (!name)
>> return -ENOMEM;
>> @@ -415,7 +455,23 @@ static int __open_dso(struct dso *dso, struct machine *machine)
>> if (!is_regular_file(name))
>> return -EINVAL;
>>
>> + if (dso__needs_decompress(dso)) {
>> + char buf[32];
>> +
>> + fd = dso__decompress_kmodule(dso, name, buf, sizeof(buf));
>> + if (fd < 0)
>
> free(name)

ok.

>
>> + return -1;
>> +
>> + close(fd);
>> + strcpy(name, buf);
>
> also why not use name directly instead of buf?

The name should have original compressed filename and buf will be set
to a new decompressed name.

Thanks,
Namhyung