From: Alex Rousskov Date: Tue, 1 Feb 2011 05:46:29 +0000 (-0700) Subject: Removed restriction on cache_dir max-size to be a multiple of pagesize. X-Git-Tag: take01~8^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fd23a2ca8e404419f3114678828ca87bc310f27d;p=thirdparty%2Fsquid.git Removed restriction on cache_dir max-size to be a multiple of pagesize. It was specific to Mmapped DiskIO module which we no longer use. --- diff --git a/src/fs/rock/RockIoState.cc b/src/fs/rock/RockIoState.cc index 0e184444f7..3f89ea63b8 100644 --- a/src/fs/rock/RockIoState.cc +++ b/src/fs/rock/RockIoState.cc @@ -100,17 +100,16 @@ Rock::IoState::startWriting() assert(theFile->canWrite()); assert(!theBuf.isNull()); - static const int ps = getpagesize(); - const size_t tail = (ps - (theBuf.contentSize() % ps)) % ps; - const int64_t writeSize = theBuf.contentSize() + tail; + // TODO: if DiskIO module is mmap-based, we should be writing whole pages + // to avoid triggering read-page;new_head+old_tail;write-page overheads + debugs(79, 5, HERE << swap_filen << " at " << offset_ << '+' << - theBuf.contentSize() << '+' << tail); + theBuf.contentSize()); assert(theBuf.contentSize() <= slotSize); - assert(writeSize <= slotSize); // theFile->write may call writeCompleted immediatelly theFile->write(new WriteRequest(::WriteRequest(theBuf.content(), offset_, - writeSize, theBuf.freeFunc()), this)); + theBuf.contentSize(), theBuf.freeFunc()), this)); } // diff --git a/src/fs/rock/RockSwapDir.cc b/src/fs/rock/RockSwapDir.cc index 32f4c4363d..bbe9842857 100644 --- a/src/fs/rock/RockSwapDir.cc +++ b/src/fs/rock/RockSwapDir.cc @@ -216,15 +216,6 @@ Rock::SwapDir::validateOptions() if (max_objsize <= 0) fatal("Rock store requires a positive max-size"); - // Rock::IoState::startWriting() inflates write size to the end of the page - // so that mmap does not have to read the tail and then write it back. - // This is a weak check that the padded area will be allocated by [growing] - // MemBuf and a sufficient check that inflated size will not exceed the - // slot size. - static const int ps = getpagesize(); - if (ps > 0 && (max_objsize % ps != 0)) - fatal("Rock store max-size should be a multiple of page size"); - /* const int64_t eLimitHi = 0xFFFFFF; // Core sfileno maximum const int64_t eLimitLo = map.entryLimit(); // dynamic shrinking unsupported