From: Deepika Upadhyay Date: Wed, 15 Apr 2020 12:10:15 +0000 (+0530) Subject: Introduce separate mempool for FileReaderBuffer and FileWriter X-Git-Tag: v15.2.9~122^2~66^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e09bd8c1efeb50275048b91c830a397c0a35b4c4;p=ceph.git Introduce separate mempool for FileReaderBuffer and FileWriter FileReaderBuffer and FileWriter uses Bufferlists which needs to be tracked by mempool to get the proper memory usage. Signed-off-by: Deepika Upadhyay (cherry picked from commit 9bb741c12cf1ffe3e9fec8e0d2fbaae107947215) Conflicts: src/os/bluestore/BlueFS.cc trivial --- diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 417c1e0f687..00ea0d8fb65 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -20,10 +20,10 @@ using TOPNSPC::common::cmd_getval; MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::File, bluefs_file, bluefs); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::Dir, bluefs_dir, bluefs); -MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileWriter, bluefs_file_writer, bluefs); +MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileWriter, bluefs_file_writer, bluefs_file_writer); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileReaderBuffer, - bluefs_file_reader_buffer, bluefs); -MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileReader, bluefs_file_reader, bluefs); + bluefs_file_reader_buffer, bluefs_file_reader); +MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileReader, bluefs_file_reader, bluefs_file_reader); MEMPOOL_DEFINE_OBJECT_FACTORY(BlueFS::FileLock, bluefs_file_lock, bluefs); static void wal_discard_cb(void *priv, void* priv2) { @@ -1647,6 +1647,7 @@ int BlueFS::device_migrate_to_existing( 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; } @@ -1961,6 +1962,7 @@ int BlueFS::_read_random( 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; @@ -2071,6 +2073,7 @@ int BlueFS::_read( 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; @@ -3338,6 +3341,7 @@ int BlueFS::open_for_write( } } + (*h)->buffer.reassign_to_mempool(mempool::mempool_bluefs_file_writer); dout(10) << __func__ << " h " << *h << " on " << file->fnode << dendl; return 0; }