• David Howells's avatar
    rxrpc: Tidy up abort generation infrastructure · 57af281e
    David Howells authored
    Tidy up the abort generation infrastructure in the following ways:
    
     (1) Create an enum and string mapping table to list the reasons an abort
         might be generated in tracing.
    
     (2) Replace the 3-char string with the values from (1) in the places that
         use that to log the abort source.  This gets rid of a memcpy() in the
         tracepoint.
    
     (3) Subsume the rxrpc_rx_eproto tracepoint with the rxrpc_abort tracepoint
         and use values from (1) to indicate the trace reason.
    
     (4) Always make a call to an abort function at the point of the abort
         rather than stashing the values into variables and using goto to get
         to a place where it reported.  The C optimiser will collapse the calls
         together as appropriate.  The abort functions return a value that can
         be returned directly if appropriate.
    
    Note that this extends into afs also at the points where that generates an
    abort.  To aid with this, the afs sources need to #define
    RXRPC_TRACE_ONLY_DEFINE_ENUMS before including the rxrpc tracing header
    because they don't have access to the rxrpc internal structures that some
    of the tracepoints make use of.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    57af281e
rxrpc.h 59.5 KB