From: Sage Weil Date: Thu, 22 Aug 2019 21:29:39 +0000 (-0500) Subject: ceph_test_rados: add --localize_reads option X-Git-Tag: v15.1.0~411^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7c3cd21c8b8dfeefd2181fffd9f72ec90d82093f;p=ceph.git ceph_test_rados: add --localize_reads option Same as balance_reads, but sets the LOCALIZE_READS op flag on read ops. Signed-off-by: Sage Weil --- diff --git a/src/test/osd/RadosModel.h b/src/test/osd/RadosModel.h index c6a6cd3633cd..0825ae93863f 100644 --- a/src/test/osd/RadosModel.h +++ b/src/test/osd/RadosModel.h @@ -1204,6 +1204,7 @@ public: ObjectDesc old_value; int snap; bool balance_reads; + bool localize_reads; std::shared_ptr in_use; @@ -1230,12 +1231,14 @@ public: RadosTestContext *context, const string &oid, bool balance_reads, + bool localize_reads, TestOpStat *stat = 0) : TestOp(n, context, stat), completions(3), oid(oid), snap(0), balance_reads(balance_reads), + localize_reads(localize_reads), results(3), retvals(3), extent_results(3), @@ -1339,6 +1342,8 @@ public: unsigned flags = 0; if (balance_reads) flags |= librados::OPERATION_BALANCE_READS; + if (localize_reads) + flags |= librados::OPERATION_LOCALIZE_READS; ceph_assert(!context->io_ctx.aio_operate(context->prefix+oid, completions[0], &op, flags, NULL)); @@ -1985,6 +1990,7 @@ public: ObjectDesc tgt_value; int snap; bool balance_reads; + bool localize_reads; std::shared_ptr in_use; @@ -2006,12 +2012,14 @@ public: const string &oid, const string &tgt_pool_name, bool balance_reads, + bool localize_reads, TestOpStat *stat = 0) : TestOp(n, context, stat), completions(2), oid(oid), snap(0), balance_reads(balance_reads), + localize_reads(localize_reads), results(2), retvals(2), waiting_on(0), @@ -2106,6 +2114,8 @@ public: unsigned flags = 0; if (balance_reads) flags |= librados::OPERATION_BALANCE_READS; + if (localize_reads) + flags |= librados::OPERATION_LOCALIZE_READS; ceph_assert(!context->io_ctx.aio_operate(context->prefix+oid, completions[0], &op, flags, NULL)); diff --git a/src/test/osd/TestRados.cc b/src/test/osd/TestRados.cc index dc6b42c80bad..6bee4e44391e 100644 --- a/src/test/osd/TestRados.cc +++ b/src/test/osd/TestRados.cc @@ -29,6 +29,7 @@ public: int max_seconds, bool ec_pool, bool balance_reads, + bool localize_reads, bool set_redirect, bool set_chunk, bool enable_dedup) : @@ -37,6 +38,7 @@ public: m_total_weight(0), m_ec_pool(ec_pool), m_balance_reads(balance_reads), + m_localize_reads(localize_reads), m_set_redirect(set_redirect), m_set_chunk(set_chunk), m_enable_dedup(enable_dedup) @@ -282,7 +284,8 @@ private: switch (type) { case TEST_OP_READ: oid = *(rand_choose(context.oid_not_in_use)); - return new ReadOp(m_op, &context, oid, m_balance_reads, m_stats); + return new ReadOp(m_op, &context, oid, m_balance_reads, m_localize_reads, + m_stats); case TEST_OP_WRITE: oid = *(rand_choose(context.oid_not_in_use)); @@ -455,6 +458,7 @@ private: unsigned int m_total_weight; bool m_ec_pool; bool m_balance_reads; + bool m_localize_reads; bool m_set_redirect; bool m_set_chunk; bool m_enable_dedup; @@ -511,6 +515,7 @@ int main(int argc, char **argv) bool no_omap = false; bool no_sparse = false; bool balance_reads = false; + bool localize_reads = false; bool set_redirect = false; bool set_chunk = false; bool enable_dedup = false; @@ -538,6 +543,8 @@ int main(int argc, char **argv) no_sparse = true; else if (strcmp(argv[i], "--balance_reads") == 0) balance_reads = true; + else if (strcmp(argv[i], "--localize_reads") == 0) + localize_reads = true; else if (strcmp(argv[i], "--pool-snaps") == 0) pool_snaps = true; else if (strcmp(argv[i], "--write-fadvise-dontneed") == 0) @@ -665,7 +672,8 @@ int main(int argc, char **argv) WeightedTestGenerator gen = WeightedTestGenerator( ops, objects, op_weights, &stats, max_seconds, - ec_pool, balance_reads, set_redirect, set_chunk, enable_dedup); + ec_pool, balance_reads, localize_reads, + set_redirect, set_chunk, enable_dedup); int r = context.init(); if (r < 0) { cerr << "Error initializing rados test context: "