Bug 14491
Summary: | Large I/O operations cause constant seeking on a drive unrelated to the I/O operation | ||
---|---|---|---|
Product: | IO/Storage | Reporter: | rocko (rockorequin) |
Component: | Block Layer | Assignee: | Jens Axboe (axboe) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | brian, come.desplats, daniel, nalimilan, pauphelle, thomas.pi |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.31 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | two scheduling-while-atomic traces |
Description
rocko
2009-10-26 23:46:08 UTC
Please try 2.6.32-rc5. Make sure you are using CFQ as your io scheduler. I tried 2.6.32-rc5 and couldn't make it happen. (I'm using cfq in both kernels.) I think the problem might be to do with the way buffering is being handled. After a reboot, 2.6.31 _doesn't_ exhibit the problem, but once I load up a bunch of applications so that my 4GB RAM is near full, 2.6.31 will start the disk thrashing. The behaviour of each kernel during copying two 800MB files differs like so: 2.6.31: nautilus' copy bar zooms away, showing that 400 MB, 600 MB, 800 MB, 1GB, etc has been copied. When the RAM is near full, disk thrashing occurs. 2.6.32: nautilus' copy bar slows down either (a) at the end of each file and (b) (presumably) when free RAM is exhausted. After a reboot, nautilus's copy bar goes up to 800 MB and then pauses until the first file is written before continuing. If I haven't got much RAM available, the copy bar goes up to (say) 300MB and then slows down while the write operation catches up. Just an observation on 2.6.32-rc5: I am getting the occasional 'scheduling while atomic: swapper/0/0x10000100' bug (X freezes for a while when this happens). Is that related to the cfq scheduler or another area? Please post the backtrace from that error message. Created attachment 23557 [details]
two scheduling-while-atomic traces
Here's a trace from kern.log of two separate incidents.
Does it trigger without the nvidia module? I'm having trouble triggering the oops now. It happened the first two times I booted and not since (either with or without the nvidia problem). I thought it might have been when I told a VirtualBox VM to save its state to disk, but I've done many cycles of it now without it re-occurring. An update on the original bug: I believe this has been fixed in the 2.6.32 kernel as I haven't been able to reproduce it at all in the five weeks or so that I've been using it. I also haven't seen the oops mentioned above since 2.6.32-rc5. Thanks, 2,6,32 (and later .31-rc's) should be much better in this regard. Closing. |