boost::statechart::result PeeringState::Initial::react(const MInfoRec& i)
{
- PG *pg = context< PeeringMachine >().pg;
- ceph_assert(!pg->is_primary());
+ PeeringState *ps = context< PeeringMachine >().state;
+ ceph_assert(!ps->is_primary());
post_event(i);
return transit< Stray >();
}
boost::statechart::result PeeringState::Initial::react(const MLogRec& i)
{
- PG *pg = context< PeeringMachine >().pg;
- ceph_assert(!pg->is_primary());
+ PeeringState *ps = context< PeeringMachine >().state;
+ ceph_assert(!ps->is_primary());
post_event(i);
return transit< Stray >();
}
void PeeringState::Initial::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_initial_latency, dur);
+ pl->get_peering_perf().tinc(rs_initial_latency, dur);
}
/*------Started-------*/
void PeeringState::Started::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_started_latency, dur);
+ pl->get_peering_perf().tinc(rs_started_latency, dur);
}
/*--------Reset---------*/
void PeeringState::Reset::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_reset_latency, dur);
+ pl->get_peering_perf().tinc(rs_reset_latency, dur);
}
/*-------Start---------*/
void PeeringState::Start::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_start_latency, dur);
+ pl->get_peering_perf().tinc(rs_start_latency, dur);
}
/*---------Primary--------*/
void PeeringState::Primary::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->want_acting.clear();
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_primary_latency, dur);
+ pl->get_peering_perf().tinc(rs_primary_latency, dur);
pg->clear_primary_state();
pg->state_clear(PG_STATE_CREATING);
}
void PeeringState::Peering::exit()
{
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
psdout(10) << "Leaving Peering" << dendl;
context< PeeringMachine >().log_exit(state_name, enter_time);
pg->clear_probe_targets();
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_peering_latency, dur);
+ pl->get_peering_perf().tinc(rs_peering_latency, dur);
}
void PeeringState::Backfilling::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->backfill_reserved = false;
pg->backfill_reserving = false;
pg->state_clear(PG_STATE_BACKFILLING);
pg->state_clear(PG_STATE_FORCED_BACKFILL | PG_STATE_FORCED_RECOVERY);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_backfilling_latency, dur);
+ pl->get_peering_perf().tinc(rs_backfilling_latency, dur);
}
/*--WaitRemoteBackfillReserved--*/
void PeeringState::WaitRemoteBackfillReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_waitremotebackfillreserved_latency, dur);
+ pl->get_peering_perf().tinc(rs_waitremotebackfillreserved_latency, dur);
}
void PeeringState::WaitRemoteBackfillReserved::retry()
void PeeringState::WaitLocalBackfillReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_waitlocalbackfillreserved_latency, dur);
+ pl->get_peering_perf().tinc(rs_waitlocalbackfillreserved_latency, dur);
}
/*----NotBackfilling------*/
void PeeringState::NotBackfilling::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->state_clear(PG_STATE_BACKFILL_UNFOUND);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_notbackfilling_latency, dur);
+ pl->get_peering_perf().tinc(rs_notbackfilling_latency, dur);
}
/*----NotRecovering------*/
void PeeringState::NotRecovering::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->state_clear(PG_STATE_RECOVERY_UNFOUND);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_notrecovering_latency, dur);
+ pl->get_peering_perf().tinc(rs_notrecovering_latency, dur);
}
/*---RepNotRecovering----*/
void PeeringState::RepNotRecovering::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_repnotrecovering_latency, dur);
+ pl->get_peering_perf().tinc(rs_repnotrecovering_latency, dur);
}
/*---RepWaitRecoveryReserved--*/
void PeeringState::RepWaitRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_repwaitrecoveryreserved_latency, dur);
+ pl->get_peering_perf().tinc(rs_repwaitrecoveryreserved_latency, dur);
}
/*-RepWaitBackfillReserved*/
void PeeringState::RepWaitBackfillReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_repwaitbackfillreserved_latency, dur);
+ pl->get_peering_perf().tinc(rs_repwaitbackfillreserved_latency, dur);
}
boost::statechart::result
void PeeringState::RepRecovering::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->clear_reserved_num_bytes();
pg->osd->remote_reserver.cancel_reservation(pg->info.pgid);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_reprecovering_latency, dur);
+ pl->get_peering_perf().tinc(rs_reprecovering_latency, dur);
}
/*------Activating--------*/
void PeeringState::Activating::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_activating_latency, dur);
+ pl->get_peering_perf().tinc(rs_activating_latency, dur);
}
PeeringState::WaitLocalRecoveryReserved::WaitLocalRecoveryReserved(my_context ctx)
void PeeringState::WaitLocalRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_waitlocalrecoveryreserved_latency, dur);
+ pl->get_peering_perf().tinc(rs_waitlocalrecoveryreserved_latency, dur);
}
PeeringState::WaitRemoteRecoveryReserved::WaitRemoteRecoveryReserved(my_context ctx)
void PeeringState::WaitRemoteRecoveryReserved::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_waitremoterecoveryreserved_latency, dur);
+ pl->get_peering_perf().tinc(rs_waitremoterecoveryreserved_latency, dur);
}
PeeringState::Recovering::Recovering(my_context ctx)
void PeeringState::Recovering::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
utime_t dur = ceph_clock_now() - enter_time;
pg->state_clear(PG_STATE_RECOVERING);
- pg->osd->recoverystate_perf->tinc(rs_recovering_latency, dur);
+ pl->get_peering_perf().tinc(rs_recovering_latency, dur);
}
PeeringState::Recovered::Recovered(my_context ctx)
void PeeringState::Recovered::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_recovered_latency, dur);
+ pl->get_peering_perf().tinc(rs_recovered_latency, dur);
}
PeeringState::Clean::Clean(my_context ctx)
void PeeringState::Clean::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->state_clear(PG_STATE_CLEAN);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_clean_latency, dur);
+ pl->get_peering_perf().tinc(rs_clean_latency, dur);
}
template <typename T>
void PeeringState::Active::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->osd->local_reserver.cancel_reservation(pg->info.pgid);
pg->state_clear(PG_STATE_RECOVERY_WAIT);
pg->state_clear(PG_STATE_RECOVERY_TOOFULL);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_active_latency, dur);
+ pl->get_peering_perf().tinc(rs_active_latency, dur);
pg->agent_stop();
}
void PeeringState::ReplicaActive::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->clear_reserved_num_bytes();
pg->osd->remote_reserver.cancel_reservation(pg->info.pgid);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_replicaactive_latency, dur);
+ pl->get_peering_perf().tinc(rs_replicaactive_latency, dur);
}
/*-------Stray---*/
void PeeringState::Stray::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_stray_latency, dur);
+ pl->get_peering_perf().tinc(rs_stray_latency, dur);
}
void PeeringState::GetInfo::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_getinfo_latency, dur);
+ pl->get_peering_perf().tinc(rs_getinfo_latency, dur);
pg->blocked_by.clear();
}
void PeeringState::GetLog::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_getlog_latency, dur);
+ pl->get_peering_perf().tinc(rs_getlog_latency, dur);
pg->blocked_by.clear();
}
void PeeringState::WaitActingChange::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_waitactingchange_latency, dur);
+ pl->get_peering_perf().tinc(rs_waitactingchange_latency, dur);
}
/*------Down--------*/
void PeeringState::Down::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->state_clear(PG_STATE_DOWN);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_down_latency, dur);
+ pl->get_peering_perf().tinc(rs_down_latency, dur);
pg->blocked_by.clear();
}
void PeeringState::Incomplete::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
pg->state_clear(PG_STATE_INCOMPLETE);
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_incomplete_latency, dur);
+ pl->get_peering_perf().tinc(rs_incomplete_latency, dur);
pg->blocked_by.clear();
}
void PeeringState::GetMissing::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
+ PeeringListener *pl = context< PeeringMachine >().pl;
PG *pg = context< PeeringMachine >().pg;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_getmissing_latency, dur);
+ pl->get_peering_perf().tinc(rs_getmissing_latency, dur);
pg->blocked_by.clear();
}
void PeeringState::WaitUpThru::exit()
{
context< PeeringMachine >().log_exit(state_name, enter_time);
- PG *pg = context< PeeringMachine >().pg;
+ PeeringListener *pl = context< PeeringMachine >().pl;
utime_t dur = ceph_clock_now() - enter_time;
- pg->osd->recoverystate_perf->tinc(rs_waitupthru_latency, dur);
+ pl->get_peering_perf().tinc(rs_waitupthru_latency, dur);
}
/*----PeeringState::PeeringMachine Methods-----*/