From: Dmitry Kurochkin Date: Tue, 4 Oct 2011 17:28:27 +0000 (+0400) Subject: Check IPC I/O pages limits in Rock store only when using a disker. X-Git-Tag: BumpSslServerFirst.take01~122^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ef5aa64da01a023533e710275f2338a3e0e5291;p=thirdparty%2Fsquid.git Check IPC I/O pages limits in Rock store only when using a disker. 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. --- diff --git a/src/fs/rock/RockSwapDir.cc b/src/fs/rock/RockSwapDir.cc index 7073cd8c59..16624fa361 100644 --- a/src/fs/rock/RockSwapDir.cc +++ b/src/fs/rock/RockSwapDir.cc @@ -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; }