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

From: Jiri Olsa
Date: Thu Jun 01 2017 - 07:30:02 EST


On Thu, Jun 01, 2017 at 06:06:04PM +0900, Namhyung Kim wrote:

SNIP

> - }
> -
> - unlink(tmpbuf);
> -
> -out:
> - free(m.ext);
> - return fd;
> -}
> -
> bool symsrc__possibly_runtime(struct symsrc *ss)
> {
> return ss->dynsym || ss->opdsec;
> @@ -702,9 +668,13 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
> int fd;
>
> if (dso__needs_decompress(dso)) {
> - fd = decompress_kmodule(dso, name, type);
> + char buf[32];
> +
> + fd = dso__decompress_kmodule(dso, name, buf, sizeof(buf));
> if (fd < 0)
> return -1;
> +
> + unlink(buf);

I wonder we could make this more clear and add:

dso__decompress_kmodule_fd
dso__decompress_kmodule_path

_fd version would remove the file and _path version would close the descriptor

in any case, could you please split the change so the
changes to decompress_kmodule are apparent?

thanks,
jirka