Maintain two queues which will be sorted in ascending order using Red
Black Trees. When a disk request arrives and if the block number it
refers to is greater than the block number of the current request
being served add (merge) it to the first sorted queue or else add
(merge) it to the second sorted queue. Keep on servicing the requests
from the first request queue until it is empty after which switch over
to the second queue and now reverse the roles of the two queues.
Simple and Sweet. Many thanks for the awesome block I/O layer in the
2.6 kernel.
- Vishal
PS: Please note that I have not subscribed to the LKML. For comments
please reply back to this email.
--
Every passing minute is another chance to turn it all around.
Any chance you can diff this against the latest 2.6 kernel ? 2.6.10 is abit
old.
Thanks
On Thursday 30 March 2006 10:58 pm, Vishal Patil wrote:
> Maintain two queues which will be sorted in ascending order using Red
> Black Trees. When a disk request arrives and if the block number it
> refers to is greater than the block number of the current request
> being served add (merge) it to the first sorted queue or else add
> (merge) it to the second sorted queue. Keep on servicing the requests
> from the first request queue until it is empty after which switch over
> to the second queue and now reverse the roles of the two queues.
> Simple and Sweet. Many thanks for the awesome block I/O layer in the
> 2.6 kernel.
>
> - Vishal
>
> PS: Please note that I have not subscribed to the LKML. For comments
> please reply back to this email.
>
> --
> Every passing minute is another chance to turn it all around.
I will post a patch for the 2.6.16 kernel over this weekend.
- Vishal
On 3/31/06, Matt Heler <[email protected]> wrote:
> Any chance you can diff this against the latest 2.6 kernel ? 2.6.10 is abit
> old.
>
> Thanks
>
> On Thursday 30 March 2006 10:58 pm, Vishal Patil wrote:
> > Maintain two queues which will be sorted in ascending order using Red
> > Black Trees. When a disk request arrives and if the block number it
> > refers to is greater than the block number of the current request
> > being served add (merge) it to the first sorted queue or else add
> > (merge) it to the second sorted queue. Keep on servicing the requests
> > from the first request queue until it is empty after which switch over
> > to the second queue and now reverse the roles of the two queues.
> > Simple and Sweet. Many thanks for the awesome block I/O layer in the
> > 2.6 kernel.
> >
> > - Vishal
> >
> > PS: Please note that I have not subscribed to the LKML. For comments
> > please reply back to this email.
> >
> > --
> > Every passing minute is another chance to turn it all around.
>
--
Every passing minute is another chance to turn it all around.