Skip to content
  • Sebastien Boisvert's avatar
    include/linux/pfn_t.h: force '~' to be parsed as an unary operator · 674004e6
    Sebastien Boisvert authored
    commit 4d54954a197175c0dcb3c82af0c0740d0c5f827a upstream.
    
    Tracing the event "fs_dax:dax_pmd_insert_mapping" with perf produces this
    warning:
    
          [fs_dax:dax_pmd_insert_mapping] unknown op '~'
    
    It is printed in process_op (tools/lib/traceevent/event-parse.c) because
    '~' is parsed as a binary operator.
    
    perf reads the format of fs_dax:dax_pmd_insert_mapping ("print fmt") from
    /sys/kernel/debug/tracing/events/fs_dax/dax_pmd_insert_mapping/format .
    
    The format contains:
    
    ~(((u64) ~(~(((1UL) << 12)-1)))
             ^
             \ interpreted as a binary operator by process_op().
    
    This part is generated in the declaration of the event class
    dax_pmd_insert_mapping_class in include/trace/events/fs_dax.h :
    
    		__print_flags_u64(__entry->pfn_val & PFN_FLAGS_MASK, "|",
    			PFN_FLAGS_TRACE),
    
    This patch adds a pair of parentheses in the declaration of PFN_FLAGS_MASK
    to make sure that '~' is parsed as a unary operator by perf.
    
    The part of the format that was problematic is now:
    
    ~(((u64) (~(~(((1UL) << 12)-1))))
    
    Now, all the '~' are parsed as unary operators.
    
    Link: http://lkml.kernel.org/r/20181021145939.8760-1-sebhtml@videotron.qc.ca
    
    
    Signed-off-by: default avatarSebastien Boisvert <sebhtml@videotron.qc.ca>
    Acked-by: default avatarDan Williams <dan.j.williams@intel.com>
    Cc: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Ross Zwisler <zwisler@kernel.org>
    Cc: Elenie Godzaridis <arangradient@gmail.com>
    Cc: <stable@vger.kerenl.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    674004e6