lkml.org 
[lkml]   [2011]   [Sep]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH] perf: make perf.data more self-descriptive (v4)


    On 09/16/2011 09:19 AM, Peter Zijlstra wrote:
    > On Fri, 2011-09-16 at 08:50 -0600, David Ahern wrote:
    >>
    >> ppc data file: header->magic 454c494646524550
    >> x86 data file: header->magic 454c494646524550
    >>
    > Ok then we need to fix that magic thing..

    Right, but it breaks backwards/forwards compatibility. e.g.,

    diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
    index 73fa59e..603a8bb9 100644
    --- a/tools/perf/util/header.c
    +++ b/tools/perf/util/header.c
    @@ -65,9 +65,7 @@ char *perf_header__find_event(u64 id)
    return NULL;
    }

    -static const char *__perf_magic = "PERFFILE";
    -
    -#define PERF_MAGIC (*(u64 *)__perf_magic)
    +#define PERF_MAGIC 0x5045524646494c45ULL // "PERFFILE"

    struct perf_file_attr {
    struct perf_event_attr attr;
    That puts the magic in the file based on endianness of the recording
    system. e.g., on x86:

    $ od -c perf-magic.data | head -1
    0000000 E L I F F R E P h \0 \0 \0 \0 \0 \0 \0
    Which means older perf binaries can't analyze new files (created with
    new magic order) and newer perf binaries can't analyze older perf files
    -- the new command will incorrectly want to do endian swapping on the
    old file.

    David


    \
     
     \ /
      Last update: 2011-09-16 17:37    [W:0.021 / U:30.080 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site