qio: raise critical queue bloat threshold from 2 to 10 times to queue limit

the limit for overqueueing was too small for stuff like fcp
on a fileserver connected with a standard 32K limit pipe like
ramfs.

fcp usesd 8K*16procs > 32K*2

the biggest queue limit used in the kernel is 256K making
the maximum queue bloat 2.5MB or 320K for standard pipes.
that should be big enougth to never happen in practice
unless there is a bug which we like to catch before we
exhaust all kernel memory.
This commit is contained in:
cinap_lenrek 2012-07-08 19:11:29 +02:00
parent 2d09d805f3
commit a360bddee7

View file

@ -1193,7 +1193,7 @@ qbwrite(Queue *q, Block *b)
poperror();
return n;
}
if(q->len >= q->limit*2){
if(q->len >= q->limit*10){
iunlock(q);
error(Egreg);
}
@ -1241,7 +1241,7 @@ qbwrite(Queue *q, Block *b)
*
* Note - this is moderately dangerous since a process
* that keeps getting interrupted and rewriting will
* queue infinite crud.
* queue up to 10 times the queue limit before failing.
*/
for(;;){
if(q->noblock || qnotfull(q))