From: Yin Congmin Date: Fri, 3 Dec 2021 03:07:52 +0000 (+0800) Subject: librbd/cache/pwl/: remove IO waited state X-Git-Tag: v17.1.0~124^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=6290446b819bc7ed644205ec5b345641d47baf81;p=ceph.git librbd/cache/pwl/: remove IO waited state IO waited state variables including waited_lanes, waited_entries, waited_buffers are only used to print logs and have no practical effect.no_space = true is enough to indicate state. Signed-off-by: Yin Congmin --- diff --git a/src/librbd/cache/pwl/AbstractWriteLog.cc b/src/librbd/cache/pwl/AbstractWriteLog.cc index d19a6f4a26b90..8ef0522546166 100644 --- a/src/librbd/cache/pwl/AbstractWriteLog.cc +++ b/src/librbd/cache/pwl/AbstractWriteLog.cc @@ -1476,7 +1476,6 @@ bool AbstractWriteLog::check_allocation( { std::lock_guard locker(m_lock); if (m_free_lanes < num_lanes) { - req->set_io_waited_for_lanes(true); ldout(m_image_ctx.cct, 20) << "not enough free lanes (need " << num_lanes << ", have " << m_free_lanes << ") " @@ -1485,7 +1484,6 @@ bool AbstractWriteLog::check_allocation( /* This isn't considered a "no space" alloc fail. Lanes are a throttling mechanism. */ } if (m_free_log_entries < num_log_entries) { - req->set_io_waited_for_entries(true); ldout(m_image_ctx.cct, 20) << "not enough free entries (need " << num_log_entries << ", have " << m_free_log_entries << ") " @@ -1495,13 +1493,10 @@ bool AbstractWriteLog::check_allocation( } /* Don't attempt buffer allocate if we've exceeded the "full" threshold */ if (m_bytes_allocated + bytes_allocated > m_bytes_allocated_cap) { - if (!req->has_io_waited_for_buffers()) { - req->set_io_waited_for_buffers(true); - ldout(m_image_ctx.cct, 5) << "Waiting for allocation cap (cap=" - << m_bytes_allocated_cap - << ", allocated=" << m_bytes_allocated - << ") in write [" << *req << "]" << dendl; - } + ldout(m_image_ctx.cct, 20) << "Waiting for allocation cap (cap=" + << m_bytes_allocated_cap + << ", allocated=" << m_bytes_allocated + << ") in write [" << *req << "]" << dendl; alloc_succeeds = false; no_space = true; /* Entries must be retired */ } @@ -1524,9 +1519,6 @@ bool AbstractWriteLog::check_allocation( m_bytes_allocated += bytes_allocated; m_bytes_cached += bytes_cached; m_bytes_dirty += bytes_dirtied; - if (req->has_io_waited_for_buffers()) { - req->set_io_waited_for_buffers(false); - } } else { alloc_succeeds = false; } diff --git a/src/librbd/cache/pwl/Request.cc b/src/librbd/cache/pwl/Request.cc index d69ea725379c7..da185d8e3b670 100644 --- a/src/librbd/cache/pwl/Request.cc +++ b/src/librbd/cache/pwl/Request.cc @@ -41,10 +41,7 @@ std::ostream &operator<<(std::ostream &os, << " user_req=" << req.user_req << "," << " m_user_req_completed=" << req.m_user_req_completed << "," << " m_deferred=" << req.m_deferred << "," - << " detained=" << req.detained << "," - << " waited_lanes=" << req.waited_lanes << "," - << " waited_entries=" << req.waited_entries << "," - << " waited_buffers=" << req.waited_buffers; + << " detained=" << req.detained; return os; } diff --git a/src/librbd/cache/pwl/Request.h b/src/librbd/cache/pwl/Request.h index 27c43ee009e36..96f7d3f5cfbab 100644 --- a/src/librbd/cache/pwl/Request.h +++ b/src/librbd/cache/pwl/Request.h @@ -40,9 +40,6 @@ public: ExtentsSummary image_extents_summary; bool detained = false; /* Detained in blockguard (overlapped with a prior IO) */ utime_t allocated_time; /* When allocation began */ - bool waited_lanes = false; /* This IO waited for free persist/replicate lanes */ - bool waited_entries = false; /* This IO waited for free log entries */ - bool waited_buffers = false; /* This IO waited for data buffers (pmemobj_reserve() failed) */ C_BlockIORequest(T &pwl, const utime_t arrived, io::Extents &&extents, bufferlist&& bl, const int fadvise_flags, Context *user_req); @@ -71,21 +68,11 @@ public: virtual const char *get_name() const { return "C_BlockIORequest"; } + uint64_t get_image_extents_size() { return image_extents.size(); } - void set_io_waited_for_lanes(bool waited) { - waited_lanes = waited; - } - void set_io_waited_for_entries(bool waited) { - waited_entries = waited; - } - void set_io_waited_for_buffers(bool waited) { - waited_buffers = waited; - } - bool has_io_waited_for_buffers() { - return waited_buffers; - } + std::vector& get_resources_buffers() { return m_resources.buffers; } diff --git a/src/librbd/cache/pwl/rwl/WriteLog.cc b/src/librbd/cache/pwl/rwl/WriteLog.cc index 44ca037f82e1b..fbf884e52547e 100644 --- a/src/librbd/cache/pwl/rwl/WriteLog.cc +++ b/src/librbd/cache/pwl/rwl/WriteLog.cc @@ -919,9 +919,6 @@ void WriteLog::reserve_cache(C_BlockIORequestT *req, 0 /* Object type */); buffer.allocation_lat = ceph_clock_now() - before_reserve; if (TOID_IS_NULL(buffer.buffer_oid)) { - if (!req->has_io_waited_for_buffers()) { - req->set_io_waited_for_buffers(true); - } ldout(m_image_ctx.cct, 5) << "can't allocate all data buffers: " << pmemobj_errormsg() << ". " << *req << dendl;