]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Check IPC I/O pages limits in Rock store only when using a disker.
authorDmitry Kurochkin <dmitry.kurochkin@measurement-factory.com>
Tue, 4 Oct 2011 17:28:27 +0000 (21:28 +0400)
committerDmitry Kurochkin <dmitry.kurochkin@measurement-factory.com>
Tue, 4 Oct 2011 17:28:27 +0000 (21:28 +0400)
Shared memory pages are used only when Rock is running with diskers.
Otherwise, Blocking IO is used and there is no need to check for IPC
I/O pages limits.

src/fs/rock/RockSwapDir.cc

index 7073cd8c5989ed45803a0d0571bbcd315cbf71db..16624fa36187f1bc2c205e1d6d7a76074cfec50f 100644 (file)
@@ -471,7 +471,8 @@ Rock::SwapDir::canStore(const StoreEntry &e, int64_t diskSpaceNeeded, int &load)
 
     // Do not start I/O transaction if there are less than 10% free pages left.
     // TODO: reserve page instead
-    if (Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) {
+    if (needsDiskStrand() &&
+        Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) {
         debugs(47, 5, HERE << "too few shared pages for IPC I/O left");
         return false;
     }
@@ -564,7 +565,8 @@ Rock::SwapDir::openStoreIO(StoreEntry &e, StoreIOState::STFNCB *cbFile, StoreIOS
 
     // Do not start I/O transaction if there are less than 10% free pages left.
     // TODO: reserve page instead
-    if (Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) {
+    if (needsDiskStrand() &&
+        Ipc::Mem::PageLevel(Ipc::Mem::PageId::ioPage) >= 0.9 * Ipc::Mem::PageLimit(Ipc::Mem::PageId::ioPage)) {
         debugs(47, 5, HERE << "too few shared pages for IPC I/O left");
         return NULL;
     }