Max Kanushin <rextuz@xxxxxxxxx> writes:
Thank you very much for the reply. My general idea is take control of all
request queues to block and unblock them manually depending on their load.
One of my steps is to find a length of a queue to decide if to block it.
Actually I think I've found the way. If I got it right, I can move from one
request to another within the list:
struct list_head queue_head;
So that I can calculate how many requests are there in the queue.
Hi, Max,
The queue_head is the dispatch list for I/O, so it does not represent
all I/O queued for a request_queue. The number of requests in the
scheduler would be reflected by q->nr_sorted. The number of dispatched
requests is in an array, in_flight.
Cheers,
Jeff
Best regards,
Max Kanushin.
On Apr 29, 2016 6:32 PM, "Jeff Moyer" <jmoyer@xxxxxxxxxx> wrote:
Max Kanushin <rextuz@xxxxxxxxx> writes:
Hello,
I was searching for a way to find out the length of a request_queue
(that is defined as a structure in
linux/include/linux/blkdev.h). However I am new to the kernel
development and can't figure out where is the actual list of requests
to be processed by an elevator.
Is there a way to iterate requests in a queue or at least find a
number of them?
Hi, Max,
What exactly are you trying to accomplish?
Cheers,
Jeff