Re: [PATCH v2 10/13] perf header: add a buffer to struct feat_fd

From: Jiri Olsa
Date: Thu May 25 2017 - 04:13:21 EST


On Tue, May 23, 2017 at 12:48:50AM -0700, David Carrillo-Cisneros wrote:

SNIP

> @@ -795,11 +831,19 @@ static int write_pmu_mappings(struct feat_fd *fd,
> struct perf_evlist *evlist __maybe_unused)
> {
> struct perf_pmu *pmu = NULL;
> - off_t offset = lseek(fd->fd, 0, SEEK_CUR);
> - __u32 pmu_num = 0;
> + u32 pmu_num = 0;
> int ret;
>
> - /* write real pmu_num later */
> + /*
> + * Do a first pass to count number of pmu to avoid lseek so this
> + * works in pipe mode as well.
> + */
> + while ((pmu = perf_pmu__scan(pmu))) {
> + if (!pmu->name)
> + continue;
> + pmu_num++;
> + }

please put this functionality into preceeding separate patch

thanks,
jirka