On Thu, May 11, 2000, Duane Wessels wrote:
> > [Adrian]
> > If anyone has any problems or comments, please email to squid-dev.
>
> I have a problem.
>
> The old DISKD code had a function called storeDiskdReadQueue(). One of
> the ways that Squid got a performance boost is by loooping over all
> swap dirs in that function. If any one of the swap dirs was over the
> MAGIC2 limit, then it called msgrcv() on all of them sequentially.
>
> This helps because it can happen that one swap dir is over the limit,
> but some of the other dirs have completed I/O's that can be read from
> their queues. Or if two swap dirs are over the limit, it polls both
> of them, rather than blocking on a single one.
>
> The new storeDiskdDirCallback, however, doesn't loop over all dirs. It
> blocks one just one dir at a time. In fact, the way its written now,
> it would just chew up CPU needlessly. You might as well change
> ICP_NOWAIT to "0" if away > magic2. The old storeDiskdReadQueue
> also chewed up CPU, but I would not say that it was needless.
>
> Am I missing something?
Nope, in the current code structure the storedirs are thought of as
seperate entities. I agree with your observation completely. How about
I throw in a routine which acted as the old storeDiskdReadQueue() did
if there are too many requests away, and have storeDiskdCallback() and
storeDiskdSend() call this if away > magic2 for any swapdir?
I'll throw together something soon and submit it for commit, but I can't
commit anything until next week due to connectivity problems.
Adrian
Received on Fri May 12 2000 - 01:34:34 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:12:25 MST