Messages in this thread | | | From | Roger Larsson <> | Subject | Re: Errors in the VM - detailed | Date | Thu, 31 Jan 2002 21:21:24 +0100 |
| |
On Thursday den 31 January 2002 16.05, Roy Sigurd Karlsbakk wrote: > hi all > - - - > Versions tested: > > Linux-2.4.1([3-7]|8-pre.) tested. All buggy. Bug #1 was fixed in -rmap11c > > TEST SETUP > > Reading 100 500MB files with dd, tux, apache, cat, something, and > redirecting the output to /dev/null. With tux/apache, I used another > computer using wget to retrieve the same amount of data. > > The test scripts look something like this > > #!/bin/bash > dd if=file0000 of=/dev/null & > dd if=file0001 of=/dev/null & > dd if=file0002 of=/dev/null & > dd if=file0003 of=/dev/null & > ... > dd if=file0099 of=/dev/null & > > or similar - just with wget -O /dev/null ... & > > BUGS > > Bug #1: > > When (RAMx2) bytes has been read from disk, I/O as reported from vmstat > drops to a mere 1MB/s > > When reading starts, the speed is initially high. Then, slowly, the speed > decreases until it goes to something close to a complete halt (see output > from vmstat below). >
Wait a minute - it might be readahead that gets killed. If I remember correctly READA requests are dropped when failing to allocate space for it - yes I did...
/usr/src/develop/linux/drivers/block/ll_rw_block.c:746 (earlier kernel)
/* * Grab a free request from the freelist - if that is empty, check * if we are doing read ahead and abort instead of blocking for * a free slot. */ get_rq: if (freereq) { req = freereq; freereq = NULL; } else if ((req = get_request(q, rw)) == NULL) { spin_unlock_irq(&io_request_lock); if (rw_ahead) goto end_io;
freereq = __get_request_wait(q, rw); goto again; }
Suppose we fail with get_request, the request is a rw_ahead, it quits... => no read ahead.
Try to add a prink there... if (rw_ahead) { printk("Skipping readahead...\n"); goto end_io; }
Can it be the problem???
/RogerL
-- Roger Larsson Skellefteå Sweden
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |