Hardware Reference
In-Depth Information
whereas a traditional hard disk drive could have up to 7 milliseconds of access time. That's a fairly big difference
between the access times. When you have pending operations queued based on a scheduler that is not designed for
your I/O subsystem you're going to have a performance issue.
There is a scheduler that better fits the needs of the Raspberry Pi, and that is the noop scheduler. The noop
scheduler is the most basic I/O scheduler in the Linux kernel. It works off a simple File In/File Out (FIFO) queue and
makes use of request merging to manage the queue. The noop scheduler is very simple; it has very little CPU overhead.
That makes it perfect for the Raspberry Pi. Also the noop scheduler expects that the underlying block device has very
little access time latency. Once again this suits our SD card perfectly.
Understanding the Noop Scheduler
Let's take a quick look at how the noop scheduler works. Unlike the CFQ scheduler the noop scheduler only has one queue.
Take a look at Figure 2-20 . Once again you can see our two processes with the same workload I explained for
the CFQ scheduler. Unlike the CFQ, there now is one queue only and all the I/O requests go into this single queue on
an FIFO basis. The only exception to this is a function called “merging.” This is where the noop scheduler detects that
it could group an I/O action together. As you would expect, FIFO to a normal hard disk would cause it to seek all over
the platters, but for us there is no seeking because we have no write heads! This is where the advantage of noop comes
in for the SD card.
Process 1
Process 2
I/O
1
I/O
2
I/O
3
I/O
3
I/O
1 & 2
FIFO
S
HDD
Figure 2-20. The noop scheduler
 
Search WWH ::




Custom Search