osd: OSDShard: sdata_lock -> sdata_wait_lock

This is only used for waiting.

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2018-04-02 09:19:51 -05:00
parent 0c2970f0aa
commit 20f6a86ac5
2 changed files with 20 additions and 20 deletions

View File

@ -9434,9 +9434,9 @@ void OSDShard::consume_map(
++p;
}
if (queued) {
sdata_lock.Lock();
sdata_wait_lock.Lock();
sdata_cond.SignalOne();
sdata_lock.Unlock();
sdata_wait_lock.Unlock();
}
}
@ -9559,9 +9559,9 @@ void OSDShard::register_and_wake_split_child(PG *pg)
_attach_pg(slot, pg);
_wake_pg_slot(pg->pg_id, slot);
}
sdata_lock.Lock();
sdata_wait_lock.Lock();
sdata_cond.SignalOne();
sdata_lock.Unlock();
sdata_wait_lock.Unlock();
}
void OSDShard::unprime_split_children(spg_t parent, unsigned old_pg_num)
@ -9619,13 +9619,13 @@ void OSD::ShardedOpWQ::_process(uint32_t thread_index, heartbeat_handle_d *hb)
// peek at spg_t
sdata->sdata_op_ordering_lock.Lock();
if (sdata->pqueue->empty()) {
sdata->sdata_lock.Lock();
sdata->sdata_wait_lock.Lock();
if (!sdata->stop_waiting) {
dout(20) << __func__ << " empty q, waiting" << dendl;
osd->cct->get_heartbeat_map()->clear_timeout(hb);
sdata->sdata_op_ordering_lock.Unlock();
sdata->sdata_cond.Wait(sdata->sdata_lock);
sdata->sdata_lock.Unlock();
sdata->sdata_cond.Wait(sdata->sdata_wait_lock);
sdata->sdata_wait_lock.Unlock();
sdata->sdata_op_ordering_lock.Lock();
if (sdata->pqueue->empty()) {
sdata->sdata_op_ordering_lock.Unlock();
@ -9635,7 +9635,7 @@ void OSD::ShardedOpWQ::_process(uint32_t thread_index, heartbeat_handle_d *hb)
osd->cct->_conf->threadpool_default_timeout, 0);
} else {
dout(0) << __func__ << " need return immediately" << dendl;
sdata->sdata_lock.Unlock();
sdata->sdata_wait_lock.Unlock();
sdata->sdata_op_ordering_lock.Unlock();
return;
}
@ -9882,9 +9882,9 @@ void OSD::ShardedOpWQ::_enqueue(OpQueueItem&& item) {
item.get_owner(), priority, cost, std::move(item));
sdata->sdata_op_ordering_lock.Unlock();
sdata->sdata_lock.Lock();
sdata->sdata_wait_lock.Lock();
sdata->sdata_cond.SignalOne();
sdata->sdata_lock.Unlock();
sdata->sdata_wait_lock.Unlock();
}
@ -9912,9 +9912,9 @@ void OSD::ShardedOpWQ::_enqueue_front(OpQueueItem&& item)
}
sdata->_enqueue_front(std::move(item), osd->op_prio_cutoff);
sdata->sdata_op_ordering_lock.Unlock();
sdata->sdata_lock.Lock();
sdata->sdata_wait_lock.Lock();
sdata->sdata_cond.SignalOne();
sdata->sdata_lock.Unlock();
sdata->sdata_wait_lock.Unlock();
}
namespace ceph {

View File

@ -1108,8 +1108,8 @@ struct OSDShard {
string shard_name;
string sdata_lock_name;
Mutex sdata_lock;
string sdata_wait_lock_name;
Mutex sdata_wait_lock;
Cond sdata_cond;
string osdmap_lock_name;
@ -1197,8 +1197,8 @@ struct OSDShard {
cct(cct),
osd(osd),
shard_name(string("OSDShard.") + stringify(id)),
sdata_lock_name(shard_name + "::sdata_lock"),
sdata_lock(sdata_lock_name.c_str(), false, true, false, cct),
sdata_wait_lock_name(shard_name + "::sdata_wait_lock"),
sdata_wait_lock(sdata_wait_lock_name.c_str(), false, true, false, cct),
osdmap_lock_name(shard_name + "::osdmap_lock"),
osdmap_lock(osdmap_lock_name.c_str(), false, false),
sdata_op_ordering_lock_name(shard_name + "::sdata_op_ordering_lock"),
@ -1705,10 +1705,10 @@ protected:
for(uint32_t i = 0; i < osd->num_shards; i++) {
OSDShard* sdata = osd->shards[i];
assert (NULL != sdata);
sdata->sdata_lock.Lock();
sdata->sdata_wait_lock.Lock();
sdata->stop_waiting = true;
sdata->sdata_cond.Signal();
sdata->sdata_lock.Unlock();
sdata->sdata_wait_lock.Unlock();
}
}
@ -1716,9 +1716,9 @@ protected:
for(uint32_t i = 0; i < osd->num_shards; i++) {
OSDShard* sdata = osd->shards[i];
assert (NULL != sdata);
sdata->sdata_lock.Lock();
sdata->sdata_wait_lock.Lock();
sdata->stop_waiting = false;
sdata->sdata_lock.Unlock();
sdata->sdata_wait_lock.Unlock();
}
}