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

Ananth N Mavinakayanahalli
2007-04-13T12:10:17Z

On Fri, Apr 13, 2007 at 12:50:20PM +1000, Nick Piggin wrote:
> Andrew Morton wrote:
> >On Fri, 13 Apr 2007 12:18:56 +1000 Nick Piggin <nickpiggin@yahoo.com.au>
> >wrote:
> >
> >
> >>>I guess one could generate an answer to the static question with
> >>>systemtap,
> >>>by accumulating running counts across the application lifetime and then
> >>>snapshotting them. Sounds hard though.
> >>
> >>Can't you just traverse arbitrary kernel data structures at a given point
> >>in time, exactly like the /proc/ call is doing?
> >
> >
> >Do a full pagetable walk, with all the associated locking from within
> >a systemtap script? I'd be surprised. Maybe if it's mostly hand-coded
> >in C, perhaps.
>
> It looks like you can traverse arbitrary data structures, yes.
>
> It definitely seems like you can use some kernel functions, but the
> ones I saw may just be systemtap facilities. But what is so surprising
> about being able to call a kernel function when running in kernel
> context? Perhaps there is some fundamental limitation of kprobes that
> I don't understand.

The main requirement for kprobes handlers is that they can't sleep. You
could definitely call a kernel function from kprobe handlers as long as
the function doesn't sleep.

Ananth