On Monday 06 August 2007 13:27, Andrew Morton wrote:
There is nothing wrong with having huge rx and tx queues, except when
they lie in the vm writeout path. In that case, we do indeed throttle
them to reasonable numbers.
See:
http://zumastor.googlecode.com/svn/trunk/ddsnap/kernel/dm-ddsnap.c
down(&info->throttle_sem);
The only way we have ever gotten ddsnap to run reliably under heavy load
without deadlocking is with Peter's patch set (a distant descendant of
mine from two years or so ago) and we did put a lot of effort into
trying to make congestion_wait and friends do the job instead.
To be sure, it is a small subset of Peter's full patch set that actually
does the job that congestion_wait cannot be made to do, which is to
guarantee that socket->write() is always able to get enough memory to
send out the vm traffic without recursing. What Peter's patches do is
make it _nice_ to fix these problems.
Regards,
Daniel
-