Re: [RFC 4/5] x86, perf: implements lwp-perf-integration (rc1)

Avi Kivity
2011-12-19T11:13:38Z

On 12/19/2011 12:54 PM, Ingo Molnar wrote:
> * Robert Richter <robert.richter@amd.com> wrote:
>
> > On 19.12.11 00:43:10, Ingo Molnar wrote:
> >
> > > So the question becomes, how well is it integrated: can perf
> > > 'record -a + perf report', or 'perf top' use LWP, to do
> > > system-wide precise [user-space] profiling and such?
> >
> > There is only self-monitoring of a process possible, no kernel
> > and system-wide profiling. This is because we can not allocate
> > memory regions in the kernel for a thread other than the
> > current. This would require a complete rework of mm code.
>
> Hm, i don't think a rework is needed: check the
> vmalloc_to_page() code in kernel/events/ring_buffer.c. Right now
> CONFIG_PERF_USE_VMALLOC is an ARM, MIPS, SH and Sparc specific
> feature, on x86 it turns on if CONFIG_DEBUG_PERF_USE_VMALLOC=y.
>
> That should be good enough for prototyping the kernel/user
> shared buffering approach.
>

LWP wants user memory, vmalloc is insufficient. You need do_mmap() with
a different mm.

You could let a workqueue call use_mm() and then do_mmap(). Even then
it is subject to disruption by the monitored thread (and may disrupt the
monitored thread by playing with its address space). This is for thread
monitoring only, I don't think system-wide monitoring is possible with LWP.

--
error compiling committee.c: too many arguments to function