<div dir="ltr"><p dir="ltr">I&#39;m trying to understand in more depth the handling of physical harddrive io in the linux kernel (from pdflush to the actual filesystem driver).</p>
<p dir="ltr">When reading about the matter, I found out I&#39;m missing some information at a more basic level.</p>
<p dir="ltr">How a regular hard drive behaves? How is it implemented in the Linux kernel.</p>
<p dir="ltr">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.</p>


<p dir="ltr">Then the hard drive will wake up and fulfills your request, and ping you when it&#39;s done (with IRQ?).</p><p style>I also assume that the typical hard drive will fullfil at most one request in parallel.</p>
<p style>Now comes a  questions.</p><p style>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)?<br></p><p style>2. If (1) is correct, what is the largest the HD can spill without further seeking?</p>
<p style>3. Which other things uses the bus the HD uses? What can cause IO contention?</p><p style>I warn you that I&#39;m completely ignorant about this topics, so my questions might be totally idiotic, However I couldn&#39;t find a good introduction, and I think that Understanding the Linux Kernel haven&#39;t touched those more details. I hope I could get a pointer from the least.</p>
<p style>Thanks,</p>
</div>