2003-03-04 13:21:42

by David Anderson

[permalink] [raw]
Subject: I/O Request [Elevator; Clustering; Scatter-Gather]


Hi,
I have been going through some documentation that talks of clustering, scatter-gather and elevator being used to improve performance. I am confused between these :

This is what I have understood :
Elevator
The job of the elevator is to sort I/O requests to disk drives in such a way that the disk head moving in the same direction for maximum performance. Have been able to locate the code for the same.

Clustering
Combines multiple requests to adjecent blocks into a single request. Have not been able to find the code which carries this out. Any clue on where this is done in the linux source code ??

Do Clustering of request and scatter-gather mean the same ?? Confused to the core... Kindly help me ...

Thanks and Regards,
David Anderson
--
__________________________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup


2003-03-04 13:45:03

by Jens Axboe

[permalink] [raw]
Subject: Re: I/O Request [Elevator; Clustering; Scatter-Gather]

On Tue, Mar 04 2003, David Anderson wrote:
>
> Hi, I have been going through some documentation that talks of
> clustering, scatter-gather and elevator being used to improve
> performance. I am confused between these :
>
> This is what I have understood : Elevator The job of the elevator is
> to sort I/O requests to disk drives in such a way that the disk head
> moving in the same direction for maximum performance. Have been able
> to locate the code for the same.
>
> Clustering Combines multiple requests to adjecent blocks into a single
> request. Have not been able to find the code which carries this out.
> Any clue on where this is done in the linux source code ??

Both actions are performed by the elevator in Linux. You did not mention
which kernel you are looking at, for 2.4 you need to read
drivers/block/ll_rw_blk.c and drivers/block/elevator.c. For 2.5, read
the same files and drivers/block/deadline-iosched.c in addition.

> Do Clustering of request and scatter-gather mean the same ?? Confused
> to the core... Kindly help me ...

No, the elevator clustering refers to clustering request that are
contigious on disk. Scatter-gather may cluster sg entries that are
contigious in memory.

--
Jens Axboe

2003-03-04 14:01:02

by David Anderson

[permalink] [raw]
Subject: Re: I/O Request [Elevator; Clustering; Scatter-Gather]

Hi,

Thanks a lot for the reply...
I am using linux 2.4.

Got mislead with the statement in "Linux Device Drivers"

"Most high-performance disk controllers can do ?scatter/gather? I/O as well, leading to
large performance gains."

Thanks and Regards,
David Anderson

----- Original Message -----
From: Jens Axboe <[email protected]>
Date: Tue, 4 Mar 2003 14:50:00 +0100
To: David Anderson <[email protected]>
Subject: Re: I/O Request [Elevator; Clustering; Scatter-Gather]

> On Tue, Mar 04 2003, David Anderson wrote:
> >
> > Hi, I have been going through some documentation that talks of
> > clustering, scatter-gather and elevator being used to improve
> > performance. I am confused between these :
> >
> > This is what I have understood : Elevator The job of the elevator is
> > to sort I/O requests to disk drives in such a way that the disk head
> > moving in the same direction for maximum performance. Have been able
> > to locate the code for the same.
> >
> > Clustering Combines multiple requests to adjecent blocks into a single
> > request. Have not been able to find the code which carries this out.
> > Any clue on where this is done in the linux source code ??
>
> Both actions are performed by the elevator in Linux. You did not mention
> which kernel you are looking at, for 2.4 you need to read
> drivers/block/ll_rw_blk.c and drivers/block/elevator.c. For 2.5, read
> the same files and drivers/block/deadline-iosched.c in addition.
>
> > Do Clustering of request and scatter-gather mean the same ?? Confused
> > to the core... Kindly help me ...
>
> No, the elevator clustering refers to clustering request that are
> contigious on disk. Scatter-gather may cluster sg entries that are
> contigious in memory.
>
> --
> Jens Axboe
>

--
__________________________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup

2003-03-04 14:09:21

by Daniel Phillips

[permalink] [raw]
Subject: Re: I/O Request [Elevator; Clustering; Scatter-Gather]

On Tuesday 04 March 2003 14:50, Jens Axboe wrote:
> > Do Clustering of request and scatter-gather mean the same ?? Confused
> > to the core... Kindly help me ...
>
> No, the elevator clustering refers to clustering request that are
> contigious on disk. Scatter-gather may cluster sg entries that are
> contigious in memory.

Hi Jens,

I think you meant to write *non*contiguous in memory (but contiguous on the
device).

Regards,

Daniel

2003-03-04 14:12:23

by Jens Axboe

[permalink] [raw]
Subject: Re: I/O Request [Elevator; Clustering; Scatter-Gather]

On Tue, Mar 04 2003, Daniel Phillips wrote:
> On Tuesday 04 March 2003 14:50, Jens Axboe wrote:
> > > Do Clustering of request and scatter-gather mean the same ?? Confused
> > > to the core... Kindly help me ...
> >
> > No, the elevator clustering refers to clustering request that are
> > contigious on disk. Scatter-gather may cluster sg entries that are
> > contigious in memory.
>
> Hi Jens,
>
> I think you meant to write *non*contiguous in memory (but contiguous on the
> device).

No I didn't. Well actually both may happen, depending on your hardware.
What I wrote covers basic x86 hardware.

--
Jens Axboe