Re: [PATCH 0/13] maps: pagemap, kpagemap, and related cleanups

Maneesh Soni
2007-04-14T08:50:55Z

On Thu, Apr 12, 2007 at 09:23:45PM -0500, Matt Mackall wrote:
> On Fri, Apr 13, 2007 at 12:21:25PM +1000, Nick Piggin wrote:
> > Matt Mackall wrote:
> > >On Fri, Apr 13, 2007 at 11:42:29AM +1000, Nick Piggin wrote:
> >
> > >>If kprobes is simply crappy and doesn't work properly for this, then I
> > >>could accept that. I'm not someone trying to get this info. So why can't
> > >>it be used? (not just for kpagemap, but for clear_refs and all that gunk
> > >>too).
> > >
> > >
> > >kprobes is good for looking at events, but bad for looking at state.
> > >Especially metric shitloads of state.
> >
> > Why? Why is a kprobes trap significantly more expensive than a read
> > syscall?
>
> I guess I'm not clear on what you're proposing. From my understanding
> of kprobes (admittedly not an expert), this is hard to do and not a
> very good match.
>
> > >>Maybe. How about LRU? Reclaim performance is bad, and you want to work out
> > >>which pages keep going off the end of it, or which pages keep getting
> > >>written out via it, or who's pages are on the active list, forcing mine
> > >>out.
> > >
> > >
> > >Those are actually probably a good match for systemtap as they're all
> > >events.
> >
> > Traverse the LRU? Which files do they belong to? What process maps them?
>
> -ENOPARSE.
>

For non-event based data gathering using kprobes we can have a debugfs file
like /debug/kprobes/snapshot_probe and write a kprobe module with probe at
->write() function and then the user space can trigger the data collection

echo "1" > /debug/kprobes/snapshot_probe

Thus, the actual data collection code can reside in a separate
module or a systemtap script which provides very good post-processing
capabalities, and can be used without recompiling or rebooting the kernel.

Thanks
Maneesh

--
Maneesh Soni
Linux Technology Center,
IBM India Systems and Technology Lab,
Bangalore, India