--------------------- PatchSet 257 Date: 2002/12/05 20:48:15 Author: rbcollins Branch: unify-io Tag: (none) Log: provide generic load estimate for IOStrategy Members: src/IOStrategy.h:1.1.2.4->1.1.2.5 src/fs/diskd/store_dir_diskd.cc:1.2.16.10->1.2.16.11 src/fs/diskd/store_diskd.h:1.1.20.13->1.1.20.14 src/fs/diskd/store_io_diskd.cc:1.1.20.14->1.1.20.15 Index: squid3/src/IOStrategy.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/Attic/IOStrategy.h,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -r1.1.2.4 -r1.1.2.5 --- squid3/src/IOStrategy.h 5 Dec 2002 12:57:32 -0000 1.1.2.4 +++ squid3/src/IOStrategy.h 5 Dec 2002 20:48:15 -0000 1.1.2.5 @@ -1,6 +1,6 @@ /* - * $Id: IOStrategy.h,v 1.1.2.4 2002/12/05 12:57:32 rbcollins Exp $ + * $Id: IOStrategy.h,v 1.1.2.5 2002/12/05 20:48:15 rbcollins Exp $ * * * SQUID Web Proxy Cache http://www.squid-cache.org/ @@ -42,6 +42,7 @@ virtual bool shedLoad() = 0; virtual void deleteSelf() const = 0; virtual void openFailed(){} + virtual int load(){return -1;} virtual StoreIOState::Pointer createState(SwapDir *, StoreEntry *, STIOCB *, void *)const = 0; /* virtual void strategyStats(StoreEntry *sentry) const = 0; */ /* virtual void dumpCacheDirParams(StoreEntry * e, const char *option) const = 0; */ Index: squid3/src/fs/diskd/store_dir_diskd.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/diskd/Attic/store_dir_diskd.cc,v retrieving revision 1.2.16.10 retrieving revision 1.2.16.11 diff -u -r1.2.16.10 -r1.2.16.11 --- squid3/src/fs/diskd/store_dir_diskd.cc 5 Dec 2002 20:38:15 -0000 1.2.16.10 +++ squid3/src/fs/diskd/store_dir_diskd.cc 5 Dec 2002 20:48:16 -0000 1.2.16.11 @@ -1,6 +1,6 @@ /* - * $Id: store_dir_diskd.cc,v 1.2.16.10 2002/12/05 20:38:15 rbcollins Exp $ + * $Id: store_dir_diskd.cc,v 1.2.16.11 2002/12/05 20:48:16 rbcollins Exp $ * * DEBUG: section 47 Store Directory Routines * AUTHOR: Duane Wessels @@ -221,13 +221,9 @@ int storeDiskdDirCheckObj(SwapDir * SD, const StoreEntry * e) { - /* Check the queue length */ - DiskdIO *IO = dynamic_cast(SD->IO); - if (IO->shedLoad()) + if (SD->IO->shedLoad()) return -1; - /* Calculate the storedir load relative to magic2 on a scale of 0 .. 1000 */ - /* the parse function guarantees magic2 is positivie */ - return IO->away * 1000 / IO->magic2; + return SD->IO->load(); } void Index: squid3/src/fs/diskd/store_diskd.h =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/diskd/Attic/store_diskd.h,v retrieving revision 1.1.20.13 retrieving revision 1.1.20.14 diff -u -r1.1.20.13 -r1.1.20.14 --- squid3/src/fs/diskd/store_diskd.h 5 Dec 2002 20:38:16 -0000 1.1.20.13 +++ squid3/src/fs/diskd/store_diskd.h 5 Dec 2002 20:48:16 -0000 1.1.20.14 @@ -151,6 +151,7 @@ virtual bool shedLoad(); virtual void deleteSelf() const; virtual void openFailed(); + virtual int load(); virtual StoreIOState::Pointer createState(SwapDir *SD, StoreEntry *e, STIOCB * callback, void *callback_data) const; int away; int magic1; Index: squid3/src/fs/diskd/store_io_diskd.cc =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/fs/diskd/Attic/store_io_diskd.cc,v retrieving revision 1.1.20.14 retrieving revision 1.1.20.15 diff -u -r1.1.20.14 -r1.1.20.15 --- squid3/src/fs/diskd/store_io_diskd.cc 5 Dec 2002 20:38:17 -0000 1.1.20.14 +++ squid3/src/fs/diskd/store_io_diskd.cc 5 Dec 2002 20:48:16 -0000 1.1.20.15 @@ -1,6 +1,6 @@ /* - * $Id: store_io_diskd.cc,v 1.1.20.14 2002/12/05 20:38:17 rbcollins Exp $ + * $Id: store_io_diskd.cc,v 1.1.20.15 2002/12/05 20:48:16 rbcollins Exp $ * * DEBUG: section 79 Squid-side DISKD I/O functions. * AUTHOR: Duane Wessels @@ -66,6 +66,15 @@ } return false; } + +int +DiskdIO::load() +{ + /* Calculate the storedir load relative to magic2 on a scale of 0 .. 1000 */ + /* the parse function guarantees magic2 is positivie */ + return away * 1000 / magic2; +} + void DiskdIO::deleteSelf() const {