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

Peter Zijlstra
2013-06-25T10:47:17Z

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.

> Second, what offset are you talking about here?

The offset to the start of the vma, this should be the same for both
maps, irrespective of where they're mapped.

You could then match shared memory segments on inode:offset.