From 64a1f6196f20c2027aa0ba83454c4d1dd2227ebe Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 30 May 2018 13:48:14 -0500 Subject: [PATCH] mon/OSDMonitor: avoid many/most OSDMap::get_inst() calls Signed-off-by: Sage Weil --- src/mon/OSDMonitor.cc | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index f2988bae60194..c9cdc5e0617d0 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2669,11 +2669,12 @@ bool OSDMonitor::preprocess_boot(MonOpRequestRef op) // already booted? if (osdmap.is_up(from) && - osdmap.get_inst(from) == m->get_orig_source_inst() && + osdmap.get_addrs(from) == m->get_orig_source_addrs() && osdmap.get_cluster_addr(from) == m->cluster_addr) { // yup. - dout(7) << "preprocess_boot dup from " << m->get_orig_source_inst() - << " == " << osdmap.get_inst(from) << dendl; + dout(7) << "preprocess_boot dup from " << m->get_orig_source() + << " " << m->get_orig_source_addrs() + << " == " << osdmap.get_addrs(from) << dendl; _booted(op, false); return true; } @@ -2736,10 +2737,10 @@ bool OSDMonitor::prepare_boot(MonOpRequestRef op) // already up? mark down first? if (osdmap.is_up(from)) { - dout(7) << __func__ << " was up, first marking down " - << osdmap.get_inst(from) << dendl; + dout(7) << __func__ << " was up, first marking down osd." << from << " " + << osdmap.get_addrs(from) << dendl; // preprocess should have caught these; if not, assert. - assert(osdmap.get_inst(from) != m->get_orig_source_inst() || + assert(osdmap.get_addrs(from) != m->get_orig_source_addrs() || osdmap.get_cluster_addr(from) != m->cluster_addr); assert(osdmap.get_uuid(from) == m->sb.osd_fsid); @@ -2909,7 +2910,7 @@ bool OSDMonitor::preprocess_full(MonOpRequestRef op) if ((!osdmap.is_up(from) && osdmap.get_most_recent_addrs(from) == m->get_orig_source_addrs()) || (osdmap.is_up(from) && - osdmap.get_inst(from) != m->get_orig_source_inst())) { + osdmap.get_addrs(from) != m->get_orig_source_addrs())) { dout(7) << __func__ << " ignoring full message from down " << m->get_orig_source_inst() << dendl; goto ignore; @@ -2990,8 +2991,10 @@ bool OSDMonitor::preprocess_alive(MonOpRequestRef op) } if (!osdmap.is_up(from) || - osdmap.get_inst(from) != m->get_orig_source_inst()) { - dout(7) << "preprocess_alive ignoring alive message from down " << m->get_orig_source_inst() << dendl; + osdmap.get_addrs(from) != m->get_orig_source_addrs()) { + dout(7) << "preprocess_alive ignoring alive message from down " + << m->get_orig_source() << " " << m->get_orig_source_addrs() + << dendl; goto ignore; } @@ -3067,7 +3070,7 @@ bool OSDMonitor::prepare_pg_created(MonOpRequestRef op) auto from = src.num(); if (!src.is_osd() || !mon->osdmon()->osdmap.is_up(from) || - m->get_orig_source_inst() != mon->osdmon()->osdmap.get_inst(from)) { + m->get_orig_source_addrs() != mon->osdmon()->osdmap.get_addrs(from)) { dout(1) << __func__ << " ignoring stats from non-active osd." << dendl; return false; } @@ -3097,8 +3100,10 @@ bool OSDMonitor::preprocess_pgtemp(MonOpRequestRef op) } if (!osdmap.is_up(from) || - osdmap.get_inst(from) != m->get_orig_source_inst()) { - dout(7) << "ignoring pgtemp message from down " << m->get_orig_source_inst() << dendl; + osdmap.get_addrs(from) != m->get_orig_source_addrs()) { + dout(7) << "ignoring pgtemp message from down " + << m->get_orig_source() << " " << m->get_orig_source_addrs() + << dendl; goto ignore; } @@ -3336,7 +3341,7 @@ bool OSDMonitor::prepare_beacon(MonOpRequestRef op) if (!src.is_osd() || !osdmap.is_up(from) || - beacon->get_orig_source_inst() != osdmap.get_inst(from)) { + beacon->get_orig_source_addrs() != osdmap.get_addrs(from)) { dout(1) << " ignoring beacon from non-active osd." << from << dendl; return false; } -- 2.39.5