Skip to contentSkip to conversation

Servicing of requests

DISCUSSION Subodh S 2 participants 2 messages Mar 23, 2003 SCSI

lore
Share & tools
lore

Subodh S

author
#0 lore raw

Hi,

Whenever I read data of 'x'k size using one read() system call, I find batches of some 'y' no. of make_requests calls followed by the same no. of end_io's. Something like :
make_req
make_req
make_req
end_io
end_io
end_io
make_req
make_req
make_req
end_io
end_io
end_io

The output above gives me an idea that 3(hypothetical no.) buffer_heads above form a request.
(since 1 make_request corresponds to 1 buffer_head) and maybe since 1 request is serviced at a time I can see 3 make_req's together. Is my understanding right ??

But, I have read that sd uses some optimization algorithm to club requests so that the disk seek time is reduced. In which case since all requests are to adjecents sectors it should create a single request of all 'x'k assuming 1 buffer_head is of size 1k.

Does this make sense ??

-subodh

Signature · 3 lines
__________________________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup
#1 lore raw
Quoted 24 lines · Subodh S

Hi,

Whenever I read data of 'x'k size using one read() system call, I find batches of some 'y' no. of make_requests calls followed by the same no. of end_io's. Something like :

make_req
make_req
make_req
end_io
end_io
end_io
make_req
make_req
make_req
end_io
end_io
end_io

The output above gives me an idea that 3(hypothetical no.) buffer_heads above form a request. (since 1 make_request corresponds to 1 buffer_head) and maybe since 1 request is serviced at a time I can see 3 make_req's together. Is my understanding right ??

Quoted 6 lines

But, I have read that sd uses some optimization algorithm to club requests so that the disk seek time is reduced. In which case since all requests are to adjecents sectors it should create a single request of all 'x'k assuming 1 buffer_head is of size 1k.

Does this make sense ??

First of all, please line wrap your emails at 72 chars. Your mail reads horribly.

Second, what is your question? Yes typically buffer_heads can get clustered into a request so that contig regions on disk are handed to the driver as a single request that may contain X buffer_heads. sd doesn't do this on its own, the block layer does it for the driver. And it happens for all drivers.

Signature · 1 line
Jens Axboe