2021-05-07

2021-05-07  本文已影响0人  帆子_8c3a
server_start_targets
    lustre_start_simple
        do_lcfg //for LCFG_ATTACH
            class_attach
        do_lcfg //for LCFG_SETUP
            class_setup


class_attach
    class_newdev


class_setup
    obd_setup
        lov_setup
            obd_llog_init
                lov_llog_init
                    llog_setup //LLOG_MDS_OST_ORIG_CTXT, lov_mds_ost_orig_logops
                        lov_llog_origin_connect
                            llog_connect
                                llog_origin_connect //send LLOG_ORIGIN_CONNECT RPC
                                    => llog_handle_connect
                    llog_setup //LLOG_SIZE_REPL_CTXT, lov_size_repl_logops
                    //循环调用
                        obd_llog_init
                            osc_llog_init
                                llog_setup //LLOG_MDS_OST_ORIG_CTXT, osc_mds_ost_orig_logops
                                    llog_obd_origin_setup
                                        llog_create
                                        llog_process  
                                llog_setup //LLOG_SIZE_REPL_CTXT, osc_size_repl_logops




mds_finish_transno
    lustre_msg_get_transno
    fsfilt_add_journal_cb
    fsfilt_write_record
    mds_lov_write_objids
    fsfilt_commit

mdc_unlink
    mdc_reint

## XID
oti->oti_xid = req->rq_xid;
    
ptlrpc_prep_req_pool
    request->rq_xid = ptlrpc_next_xid();


## transaction
oti_init

target_send_reply

## replay
struct obd_import
    struct list_head          imp_replay_list;
    struct list_head          imp_sending_list;
    struct list_head          imp_delayed_list;    


ptlrpc_queue_wait
    after_reply
        lustre_msg_set_transno
        ptlrpc_retain_replayable_request
        lustre_msg_get_last_committed

ptlrpc_import_recovery_state_machine
    ptlrpc_replay_next
        ptlrpc_replay_req


## import req 状态机
enum lustre_imp_state {
        LUSTRE_IMP_CLOSED     = 1,
        LUSTRE_IMP_NEW        = 2,
        LUSTRE_IMP_DISCON     = 3,
        LUSTRE_IMP_CONNECTING = 4,
        LUSTRE_IMP_REPLAY     = 5,
        LUSTRE_IMP_REPLAY_LOCKS = 6,
        LUSTRE_IMP_REPLAY_WAIT  = 7,
        LUSTRE_IMP_RECOVER    = 8,
        LUSTRE_IMP_FULL       = 9,
        LUSTRE_IMP_EVICTED    = 10,
};
上一篇 下一篇

猜你喜欢

热点阅读