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

Ingo Molnar
2013-06-25T10:51:32Z

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

> On Tue, Jun 25, 2013 at 11:59:09AM +0200, Stephane Eranian wrote:
> > One guarantee we have is that the physical does correspond to the virtual
> > address at the time of the interrupt.
>
> That might not be much of a guarantee depending on the circumstances.
>
> > But yeah, if physical pages are swapped during the run, then things become
> > a lot more complicated. I am not trying to address this.
> >
> > Can page move for shared memory segments?
>
> Yep..
>
> > > 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.

A syscall (ioctl?) to dump all current vmas into the mmap update stream
(to form a starting point) might be handy - that would remove the
fragility and overhead of parsing /proc/ details.

Thanks,

Ingo