summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormyoungwon oh <ohmyoungwon@gmail.com>2021-11-24 19:19:45 +0900
committermyoungwon oh <ohmyoungwon@gmail.com>2022-01-19 01:32:35 +0900
commitfa365d84d1d3fc85095ee5052142ffcd5e593fdd (patch)
tree178d143ee1e4d0234441319241914e8e3a3cf0c9
parentd6f3a29da9024641c225c51fb414031b1477d897 (diff)
downloadceph-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>
-rw-r--r--src/crimson/os/seastore/random_block_manager.h4
-rw-r--r--src/crimson/os/seastore/random_block_manager/nvme_manager.cc6
-rw-r--r--src/crimson/os/seastore/random_block_manager/nvme_manager.h4
-rw-r--r--src/test/crimson/seastore/test_randomblock_manager.cc26
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);