ceph_assert(cur_len > 0);
cur.substr_of(bl, off, cur_len);
int r = bdev[dev_target]->write(i.offset, cur, buffered);
- cur.reassign_to_mempool(mempool::mempool_bluefs_file_writer);
ceph_assert(r == 0);
off += cur_len;
}
logger->inc(l_bluefs_read_random_bytes, len);
std::shared_lock s_lock(h->lock);
+ buf->bl.reassign_to_mempool(mempool::mempool_bluefs_file_reader);
while (len > 0) {
if (off < buf->bl_off || off >= buf->get_buf_end()) {
s_lock.unlock();
buf->pos += r;
}
}
- buf->bl.reassign_to_mempool(mempool::mempool_bluefs_file_reader);
dout(20) << __func__ << " got " << ret << dendl;
--h->file->num_reading;
return ret;
if (off < buf->bl_off || off >= buf->get_buf_end()) {
s_lock.unlock();
std::unique_lock u_lock(h->lock);
+ buf->bl.reassign_to_mempool(mempool::mempool_bluefs_file_reader);
if (off < buf->bl_off || off >= buf->get_buf_end()) {
// if precondition hasn't changed during locking upgrade.
buf->bl.clear();
buf->pos += r;
}
- buf->bl.reassign_to_mempool(mempool::mempool_bluefs_file_reader);
dout(20) << __func__ << " got " << ret << dendl;
ceph_assert(!outbl || (int)outbl->length() == ret);
--h->file->num_reading;
}
}
- (*h)->buffer.reassign_to_mempool(mempool::mempool_bluefs_file_writer);
dout(10) << __func__ << " h " << *h << " on " << file->fnode << dendl;
return 0;
}
void BlueFS::_close_writer(FileWriter *h)
{
dout(10) << __func__ << " " << h << " type " << h->writer_type << dendl;
+ h->buffer.reassign_to_mempool(mempool::mempool_bluefs_file_writer);
for (unsigned i=0; i<MAX_BDEV; ++i) {
if (bdev[i]) {
if (h->iocv[i]) {
auto p = v.front().begin_deep();
on->onode.decode(p);
for (auto& i : on->onode.attrs) {
- i.second.reassign_to_mempool(mempool::mempool_bluestore_cache_onode);
+ i.second.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
}
// initialize extent_map
denc(on->extent_map.inline_bl, p);
on->extent_map.decode_some(on->extent_map.inline_bl);
on->extent_map.inline_bl.reassign_to_mempool(
- mempool::mempool_bluestore_cache_onode);
+ mempool::mempool_bluestore_cache_data);
}
else {
on->extent_map.init_shards(false, false);
if (val.is_partial()) {
auto& b = o->onode.attrs[name.c_str()] = bufferptr(val.c_str(),
val.length());
- b.reassign_to_mempool(mempool::mempool_bluestore_cache_onode);
+ b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
} else {
auto& b = o->onode.attrs[name.c_str()] = val;
- b.reassign_to_mempool(mempool::mempool_bluestore_cache_onode);
+ b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
}
txc->write_onode(o);
dout(10) << __func__ << " " << c->cid << " " << o->oid
if (p->second.is_partial()) {
auto& b = o->onode.attrs[p->first.c_str()] =
bufferptr(p->second.c_str(), p->second.length());
- b.reassign_to_mempool(mempool::mempool_bluestore_cache_onode);
+ b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
} else {
auto& b = o->onode.attrs[p->first.c_str()] = p->second;
- b.reassign_to_mempool(mempool::mempool_bluestore_cache_onode);
+ b.reassign_to_mempool(mempool::mempool_bluestore_cache_data);
}
}
txc->write_onode(o);
Cache *cache;
/// forward lookups
- mempool::bluestore_cache_onode::unordered_map<ghobject_t,OnodeRef> onode_map;
+ mempool::bluestore_cache_meta::unordered_map<ghobject_t,OnodeRef> onode_map;
friend class Collection; // for split_cache()
mempool::bluestore_Extent::allocated_bytes() +
mempool::bluestore_cache_meta::allocated_bytes() +
mempool::bluestore_cache_other::allocated_bytes() +
+ mempool::bluestore_cache_onode::allocated_bytes() +
mempool::bluestore_SharedBlob::allocated_bytes() +
mempool::bluestore_inline_bl::allocated_bytes();
}
uint64_t size = 0; ///< object size
// FIXME: bufferptr does not have a mempool
std::map<mempool::bluestore_cache_meta::string, ceph::buffer::ptr> attrs;
-// mempool::bluestore_cache_onode::map<string, bufferptr> attrs; ///< attrs
struct shard_info {
uint32_t offset = 0; ///< logical offset for start of shard