]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Introduce separate mempool for FileReaderBuffer and FileWriter
authorDeepika Upadhyay <dupadhya@redhat.com>
Wed, 15 Apr 2020 12:10:15 +0000 (17:40 +0530)
committerDeepika Upadhyay <dupadhya@redhat.com>
Mon, 13 Jul 2020 18:10:47 +0000 (23:40 +0530)
FileReaderBuffer and FileWriter uses Bufferlists which needs to be
tracked by mempool to get the proper memory usage.

Signed-off-by: Deepika Upadhyay <dupadhya@redhat.com>
src/os/bluestore/BlueFS.cc

index 2f61997696094babde1bd3258cb19a56c26d5ccb..6badbc786bb4dbc6d7b837e843b6035346e2509f 100644 (file)
@@ -37,10 +37,10 @@ using ceph::Formatter;
 
 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) {
@@ -1694,6 +1694,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;
       }
@@ -2008,6 +2009,7 @@ int64_t 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;
@@ -2115,6 +2117,8 @@ int64_t BlueFS::_read(
     ret += r;
     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;
@@ -3359,6 +3363,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;
 }