lkml.org 
[lkml]   [2008]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 05/24] perfmon: X86 generic code (x86)
    On Thu, Nov 27, 2008 at 12:35:54PM +0100, stephane eranian wrote:
    > On Thu, Nov 27, 2008 at 12:31 PM, Andi Kleen <andi@firstfloor.org> wrote:
    > >> The only reason why I have to deal with NMI is not so much to allow
    > >> for profiling irq-off regions but because I have to share the PMU with
    > >> the NMI watchdog. Otherwise I'd have to fail or disable the NMI watchdog
    > >> on the fly.
    > >
    > > The NMI watchdog is now off by default so failing with it enabled
    > > is fine.
    >
    > Yes, but most likely it is on in distro kernels.

    Really? Why?

    Old distros of course do it but only because they run old
    kernels.

    > You have to handle the case where the NMI fires while you are holding
    > a perfmon lock. What you have in the patch (and the the fully-featured version)
    > is that we get the NMI and we stop the PMU WITHOUT grabbing any perfmon
    > lock, and the we repost the interrupt with the regular vector. We also make sure
    > we grab the RIP at NMI. That is the one we want to see reported in the sampling
    > buffer.
    >
    > I am still wondering how Oprofile handles the case where multiple processes or
    > threads access the same file descriptor.

    It uses per CPU buffers (so no races on the writer) and readers can
    of course use a lock to coordinate between themselves.

    I wrote a similar scheme for mce_log() (although the current version
    in tree has some issues too)

    -Andi


    \
     
     \ /
      Last update: 2008-11-27 13:25    [W:0.020 / U:30.220 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site