[lkml]   [2012]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: perf: record segfaults for cycles event when collecting data on a VM

    On 02/08/2012 10:44 AM, Joerg Roedel wrote:
    > On Wed, Feb 08, 2012 at 09:55:35AM -0700, David Ahern wrote:
    >> perf record -e cycles -p 21483 -- sleep 1
    >> [ perf record: Woken up 1 times to write data ]
    >> [ perf record: Captured and wrote 0.012 MB (~503 samples) ]
    >> Segmentation fault
    > The problem is similar to the one Jason is seeing. I am working on a fix
    > right now.
    > Bottom line is that the perf-tool may receive samples tagged as
    > GUEST_KERNEL even when guest-sampling is disabled (probably a
    > race-condition). The perf-tool can not find a valid machine pointer for
    > such a sample and passes NULL down to the other functions. And some
    > functions don't seem to handle this.
    > David, can you try to change the default for perf_guest back to false
    > amd re-test? Not with 'sleep 1' probably, on my setup it takes a busy
    > guest and a few seconds to trigger.

    The segfault is in the event processing once the collection is done
    (perf-record), so the time length should not matter.

    Either way, this fixes the segafult:

    diff --git a/tools/perf/util/util.c b/tools/perf/util/util.c
    index 8131410..fb25d13 100644
    --- a/tools/perf/util/util.c
    +++ b/tools/perf/util/util.c
    @@ -6,7 +6,7 @@
    * XXX We need to find a better place for these things...
    bool perf_host = true;
    -bool perf_guest = true;
    +bool perf_guest = false;

    void event_attr_init(struct perf_event_attr *attr)
    which makes sense. It forces perf_session__find_machine_for_cpumode() to
    return the host machine always.


    > Joerg

     \ /
      Last update: 2012-02-08 18:55    [W:0.022 / U:145.588 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site