Re: [PATCH 0/8] perf: add ability to sample physical data addresses

Ingo Molnar
2013-06-26T13:29:36Z

* Peter Zijlstra <peterz@infradead.org> wrote:

> > > Such would completely shatter physical page relations.
> > >
> > > If the shared memory thing is really the issue, doesn't perf already
> > > have the process memory layout (/proc/$PID/maps and aux stream mmap
> > > updates) with which it can compute map relative offsets and compare
> > > thusly?
> >
> > Not sure I understand this.
> > suppose the same shared memory segment is mapped at two different
> > addresses by shmat(). First, I don't know if those show up in /proc/maps.
>
> They should; IIRC maps is a full vma list.. /me prods about in
> fs/proc/task_mmu.c.. yes it prints all vmas.

Btw., as a related matter, it would be nice to add an ioctl() that would
trigger a regular MMAP event for all current vmas.

PERF_EVENT_IOC_DUMP_MMAPS or so?

This would be easier to process than the somewhat fragile parsing
/proc/*/maps text files, and it would more consistently fit into the perf
tracing model.

I suspect it would/could also be less racy than /proc/*/maps, which is
restart based due to the 4K procfs limit, while the ioctl() could dump
everything into the trace buffer, as long as the buffer is large enough.

Thanks,

Ingo