diff options
author | myoungwon oh <ohmyoungwon@gmail.com> | 2021-11-24 19:19:45 +0900 |
---|---|---|
committer | myoungwon oh <ohmyoungwon@gmail.com> | 2022-01-19 01:32:35 +0900 |
commit | fa365d84d1d3fc85095ee5052142ffcd5e593fdd (patch) | |
tree | 178d143ee1e4d0234441319241914e8e3a3cf0c9 | |
parent | d6f3a29da9024641c225c51fb414031b1477d897 (diff) | |
download | ceph-fa365d84d1d3fc85095ee5052142ffcd5e593fdd.tar.gz |
seastore/random_block_manager: use paddr_t instead of uint64
Reagarding read() and write(), use paddr_t as input parameter
instead of uint64
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
4 files changed, 23 insertions, 17 deletions
diff --git a/src/crimson/os/seastore/random_block_manager.h b/src/crimson/os/seastore/random_block_manager.h index d7ac73d0ec9..14d6f569601 100644 --- a/src/crimson/os/seastore/random_block_manager.h +++ b/src/crimson/os/seastore/random_block_manager.h @@ -46,7 +46,7 @@ public: crimson::ct_error::invarg, crimson::ct_error::enoent, crimson::ct_error::erange>; - virtual read_ertr::future<> read(uint64_t addr, bufferptr &buffer) = 0; + virtual read_ertr::future<> read(paddr_t addr, bufferptr &buffer) = 0; using write_ertr = crimson::errorator< crimson::ct_error::input_output_error, @@ -55,7 +55,7 @@ public: crimson::ct_error::enospc, crimson::ct_error::erange >; - virtual write_ertr::future<> write(uint64_t addr, bufferptr &buf) = 0; + virtual write_ertr::future<> write(paddr_t addr, bufferptr &buf) = 0; using open_ertr = crimson::errorator< crimson::ct_error::input_output_error, diff --git a/src/crimson/os/seastore/random_block_manager/nvme_manager.cc b/src/crimson/os/seastore/random_block_manager/nvme_manager.cc index 577dc0394de..1d53f10d216 100644 --- a/src/crimson/os/seastore/random_block_manager/nvme_manager.cc +++ b/src/crimson/os/seastore/random_block_manager/nvme_manager.cc @@ -506,10 +506,11 @@ NVMeManager::open_ertr::future<> NVMeManager::open( } NVMeManager::write_ertr::future<> NVMeManager::write( - rbm_abs_addr addr, + paddr_t paddr, bufferptr &bptr) { ceph_assert(device); + rbm_abs_addr addr = convert_paddr_to_abs_addr(paddr); if (addr > super.end || addr < super.start || bptr.length() > super.end - super.start) { return crimson::ct_error::erange::make(); @@ -520,10 +521,11 @@ NVMeManager::write_ertr::future<> NVMeManager::write( } NVMeManager::read_ertr::future<> NVMeManager::read( - rbm_abs_addr addr, + paddr_t paddr, bufferptr &bptr) { ceph_assert(device); + rbm_abs_addr addr = convert_paddr_to_abs_addr(paddr); if (addr > super.end || addr < super.start || bptr.length() > super.end - super.start) { return crimson::ct_error::erange::make(); diff --git a/src/crimson/os/seastore/random_block_manager/nvme_manager.h b/src/crimson/os/seastore/random_block_manager/nvme_manager.h index 07313b2bacc..cf865513df6 100644 --- a/src/crimson/os/seastore/random_block_manager/nvme_manager.h +++ b/src/crimson/os/seastore/random_block_manager/nvme_manager.h @@ -184,8 +184,8 @@ public: */ mkfs_ertr::future<> mkfs(mkfs_config_t) final; - read_ertr::future<> read(uint64_t addr, bufferptr &buffer) final; - write_ertr::future<> write(uint64_t addr, bufferptr &buf) final; + read_ertr::future<> read(paddr_t addr, bufferptr &buffer) final; + write_ertr::future<> write(paddr_t addr, bufferptr &buf) final; open_ertr::future<> open(const std::string &path, paddr_t start) final; close_ertr::future<> close() final; diff --git a/src/test/crimson/seastore/test_randomblock_manager.cc b/src/test/crimson/seastore/test_randomblock_manager.cc index 39c37f63297..f5a598cd389 100644 --- a/src/test/crimson/seastore/test_randomblock_manager.cc +++ b/src/test/crimson/seastore/test_randomblock_manager.cc @@ -75,9 +75,7 @@ struct rbm_test_t : } auto read_rbm_header() { - rbm_abs_addr addr = convert_paddr_to_abs_addr( - config.start, - config.block_size); + rbm_abs_addr addr = convert_paddr_to_abs_addr(config.start); return rbm_manager->read_rbm_header(addr).unsafe_get0(); } @@ -86,11 +84,17 @@ struct rbm_test_t : } auto write(uint64_t addr, bufferptr &ptr) { - return rbm_manager->write(addr, ptr).unsafe_get0(); + paddr_t paddr = convert_abs_addr_to_paddr( + addr, + rbm_manager->get_device_id()); + return rbm_manager->write(paddr, ptr).unsafe_get0(); } auto read(uint64_t addr, bufferptr &ptr) { - return rbm_manager->read(addr, ptr).unsafe_get0(); + paddr_t paddr = convert_abs_addr_to_paddr( + addr, + rbm_manager->get_device_id()); + return rbm_manager->read(paddr, ptr).unsafe_get0(); } auto create_rbm_transaction() { @@ -105,8 +109,7 @@ struct rbm_test_t : for (auto p : extent) { paddr_t paddr = convert_abs_addr_to_paddr( p.first * block_size, - block_size, - 0); + rbm_manager->get_device_id()); size_t len = p.second * block_size; alloc_info.alloc_blk_ranges.push_back(std::make_pair(paddr, len)); alloc_info.op = rbm_alloc_delta_t::op_types_t::SET; @@ -130,9 +133,7 @@ struct rbm_test_t : for (auto p : allocated_blocks) { for (auto b : p.alloc_blk_ranges) { rbm_abs_addr addr = - convert_paddr_to_abs_addr( - b.first, - block_size); + convert_paddr_to_abs_addr(b.first); alloc_ids.insert(addr / block_size, b.second / block_size); } } @@ -149,7 +150,10 @@ struct rbm_test_t : * DEFAULT_BLOCK_SIZE; logger().debug(" addr {} id {} ", addr, id); auto bp = bufferptr(ceph::buffer::create_page_aligned(DEFAULT_BLOCK_SIZE)); - rbm_manager->read(addr, bp).unsafe_get0(); + paddr_t paddr = convert_abs_addr_to_paddr( + addr, + rbm_manager->get_device_id()); + rbm_manager->read(paddr, bp).unsafe_get0(); rbm_bitmap_block_t b_block(DEFAULT_BLOCK_SIZE); bufferlist bl; bl.append(bp); |