I'm trying to understand in more depth the handling of physical harddrive io in the linux kernel (from pdflush to the actual filesystem driver).
When reading about the matter, I found out I'm missing some information at a more basic level. How a regular hard drive behaves? How is it implemented in the Linux kernel. If I understand that correctly, one can abstract a hard drive as a physical device, which gets (how? By DMA?) A block aligned chunk of bytes (is block size different per device?), an in device coordinates (sector and block offset? Is that different power hard drive type?) And a request whether to read or to write. Then the hard drive will wake up and fulfills your request, and ping you when it's done (with IRQ?). I also assume that the typical hard drive will fullfil at most one request in parallel. Now comes a questions. 1. When does the dreaded 10ms seek occur? Will it definitely occur at every request (so to saturate the HD bus, one must use as large requests as possible)? 2. If (1) is correct, what is the largest the HD can spill without further seeking? 3. Which other things uses the bus the HD uses? What can cause IO contention? I warn you that I'm completely ignorant about this topics, so my questions might be totally idiotic, However I couldn't find a good introduction, and I think that Understanding the Linux Kernel haven't touched those more details. I hope I could get a pointer from the least. Thanks,
_______________________________________________ Linux-il mailing list Linux-il@cs.huji.ac.il http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il