lkml.org 
[lkml]   [2017]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 60/78] xfs: add log recovery tracepoint for head/tail
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Brian Foster <bfoster@redhat.com>

    commit e67d3d4246e5fbb0c7c700426d11241ca9c6f473 upstream.

    Torn write detection and tail overwrite detection can shift the log
    head and tail respectively in the event of CRC mismatch or
    corruption errors. Add a high-level log recovery tracepoint to dump
    the final log head/tail and make those values easily attainable in
    debug/diagnostic situations.

    Signed-off-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    fs/xfs/xfs_log_recover.c | 2 ++
    fs/xfs/xfs_trace.h | 18 ++++++++++++++++++
    2 files changed, 20 insertions(+)

    --- a/fs/xfs/xfs_log_recover.c
    +++ b/fs/xfs/xfs_log_recover.c
    @@ -5596,6 +5596,8 @@ xlog_do_recover(
    xfs_buf_t *bp;
    xfs_sb_t *sbp;

    + trace_xfs_log_recover(log, head_blk, tail_blk);
    +
    /*
    * First replay the images in the log.
    */
    --- a/fs/xfs/xfs_trace.h
    +++ b/fs/xfs/xfs_trace.h
    @@ -1991,6 +1991,24 @@ DEFINE_EVENT(xfs_swap_extent_class, name
    DEFINE_SWAPEXT_EVENT(xfs_swap_extent_before);
    DEFINE_SWAPEXT_EVENT(xfs_swap_extent_after);

    +TRACE_EVENT(xfs_log_recover,
    + TP_PROTO(struct xlog *log, xfs_daddr_t headblk, xfs_daddr_t tailblk),
    + TP_ARGS(log, headblk, tailblk),
    + TP_STRUCT__entry(
    + __field(dev_t, dev)
    + __field(xfs_daddr_t, headblk)
    + __field(xfs_daddr_t, tailblk)
    + ),
    + TP_fast_assign(
    + __entry->dev = log->l_mp->m_super->s_dev;
    + __entry->headblk = headblk;
    + __entry->tailblk = tailblk;
    + ),
    + TP_printk("dev %d:%d headblk 0x%llx tailblk 0x%llx",
    + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->headblk,
    + __entry->tailblk)
    +)
    +
    TRACE_EVENT(xfs_log_recover_record,
    TP_PROTO(struct xlog *log, struct xlog_rec_header *rhead, int pass),
    TP_ARGS(log, rhead, pass),

    \
     
     \ /
      Last update: 2017-09-18 11:22    [W:5.823 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site