Re: [PATCH 01/11] mm: export vmalloc_sync_all symbol to GPL modules

Mathieu Desnoyers
2011-12-01T22:19:42Z

* Greg KH (greg@kroah.com) wrote:
> On Thu, Dec 01, 2011 at 04:57:00PM -0500, Christoph Hellwig wrote:
> > On Thu, Dec 01, 2011 at 04:41:13PM -0500, Mathieu Desnoyers wrote:
> > > LTTng needs this symbol exported. It calls it to ensure its tracing
> > > buffers and allocated data structures never trigger a page fault. This
> > > is required to handle page fault handler tracing and NMI tracing
> > > gracefully.
> >
> > We:
> >
> > a) don't export symbols unless they have an intree-user
>
> lttng is now in-tree in the drivers/staging/ area. See linux-next for
> details if you are curious.
>
> > b) especially don't export something as lowlevel as this one.
>
> Mathieu, there's nothing else you can do to get this information? Or
> does lttng really want such lowlevel data?

LTTng calls vmalloc_sync_all() to make sure it won't crash the system
(due to recursive page fault) when hooking on the page fault handler and
on any hook that would happen to sit in a function hit by NMI context.
So it really goes beyond just extracting information for this one I'm
afraid: it's a matter of execution correctness.

This is a point I'm really anal about: the tracer should _never_ crash
the traced system, _ever_, in any foreseeable condition.

Thanks,

Mathieu

>
> thanks,
>
> greg k-h

--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.