When does the kernel regard a queue as being congested and when does it give the ''all clear''? The answer is surprisingly easy — a simple check is made to ascertain whether certain minimum and maximum limit values (or thresholds) for requests have been exceeded in a specific queue.
The kernel does not use fixed constants to do this. Instead, it defines the limit values in relation to the system's main memory because the number of block requests is scaled accordingly.
Recall from Chapter 6 that each block device is equipped with a request queue defined by struct request. The fields that are interesting for our purposes are reproduced below:
Continue reading here: Info
Was this article helpful?