]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd/cache/pwl/: remove IO waited state
authorYin Congmin <congmin.yin@intel.com>
Fri, 3 Dec 2021 03:07:52 +0000 (11:07 +0800)
committerYin Congmin <congmin.yin@intel.com>
Fri, 31 Dec 2021 08:04:19 +0000 (16:04 +0800)
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 <congmin.yin@intel.com>
src/librbd/cache/pwl/AbstractWriteLog.cc
src/librbd/cache/pwl/Request.cc
src/librbd/cache/pwl/Request.h
src/librbd/cache/pwl/rwl/WriteLog.cc

index d19a6f4a26b90cc9ef84c197eb0a1819804debad..8ef0522546166876c64077fbd21917c933c22b30 100644 (file)
@@ -1476,7 +1476,6 @@ bool AbstractWriteLog<I>::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<I>::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<I>::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<I>::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;
     }
index d69ea725379c72273c6ce7082e9c3906c942c2c2..da185d8e3b6703a5118f8f5cd58f66dcba679784 100644 (file)
@@ -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;
 }
 
index 27c43ee009e36c03f2dc187f0ca61cd882ff38e5..96f7d3f5cfbab16be9105cbd259b5f76f3b576c4 100644 (file)
@@ -40,9 +40,6 @@ public:
   ExtentsSummary<io::Extents> 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<WriteBufferAllocation>& get_resources_buffers() {
     return m_resources.buffers;
   }
index 44ca037f82e1b9a1ac183a1d1c2ef49a469fda00..fbf884e52547e69de3398b95184affee193c1f63 100644 (file)
@@ -919,9 +919,6 @@ void WriteLog<I>::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;