• David Ahern's avatar
    perf tools: handle endianness of feature bitmap · d327fa43
    David Ahern authored
    Feature bitmap is declared as an array of unsigned longs -- not good
    since its size can differ between the host that generated the data file
    and the host analyzing the file.
    
    We need to handle endianness, but we don't know the size of the unsigned
    long where the file was generated. Take a best guess at determining it:
    try 64-bit swap first (ie., file created on a 64-bit host), and check if
    the hostname feature bit is set (this feature bit is forced on as of
    fbe96f29).  If the bit is not, undo the 64-bit swap and try a 32-bit
    swap. If the hostname bit is still not set (e.g., older data file), punt
    and fallback to the original behavior -- clearing all feature bits and
    setting buildid.
    
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1318980841-12616-1-git-send-email-dsahern@gmail.comSigned-off-by: default avatarDavid Ahern <dsahern@gmail.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    d327fa43
header.c 50.5 KB