From: Luben Tuikov <luben@splentec.com>
To: Bryan Henderson <hbryan@us.ibm.com>
Cc: Jens Axboe <axboe@suse.de>,
David Anderson <david-anderson2003@mail.com>,
linux-scsi@vger.kernel.org, Daniel Phillips <phillips@arcor.de>
Subject: Re: I/O Request [Elevator; Clustering; Scatter-Gather]
Date: Tue, 04 Mar 2003 13:04:36 -0500 [thread overview]
Message-ID: <3E64EAB4.5020502@splentec.com> (raw)
In-Reply-To: <OFDE36CE13.9373E086-ON87256CDF.0060BDDC-88256CDF.0061A289@us.ibm.com>
Bryan Henderson wrote:
>
>
>
>>>Scatter-gather may cluster sg entries that are
>>>
>>>>contiguous in memory.
>
> Please explain this function.
>
But, he did explain it.
Basically if you have two or more sg entries (vaguely
a buffer address and buffer length) *and* they are contiguous
in memory (tricky), i.e. (100,100), (200,100), (300,100),
then a smart choice would be to make just a single sg
entry (100,300). (This was just an example for illustratory
puposes.)
For the other concepts, the book
"Operating System Concepts", Silberschatz & Galvin,
Addison-Wesley, 1998, ISBN 0-201-59113-8, commonly
referred to as ``the dinosaur book'' (because of the
dinosaurs depicted on the cover) is a good start.
> The only "scatter gather" I've heard of is the concept of a single I/O
> having a discontiguous buffer. If it's a write, the system gathers bytes
> from multiple separate buffers into a single write. If it's a read, the
> system scatters the bytes from a single read into multiple separate
> buffers.
>
> The readv() and writev() system calls are examples of something that
> implements a scatter/gather function. (But not the scatter/gather function
> we're talking about here).
>
> When you cluster disk I/O by combining separate requests that happen to be
> to adjacent disk locations, you must have a scatter/gather function
> somewhere (e.g. the disk controller or DMA controller) to make it work,
> because those requests probably don't have contiguous buffers.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Luben
next prev parent reply other threads:[~2003-03-04 18:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-04 13:32 I/O Request [Elevator; Clustering; Scatter-Gather] David Anderson
2003-03-04 13:50 ` Jens Axboe
2003-03-04 21:10 ` Daniel Phillips
2003-03-04 14:20 ` Jens Axboe
2003-03-04 17:47 ` Bryan Henderson
2003-03-04 18:04 ` Luben Tuikov [this message]
2003-03-04 14:14 ` Scott Merritt
-- strict thread matches above, loose matches on Subject: below --
2003-03-04 14:11 David Anderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3E64EAB4.5020502@splentec.com \
--to=luben@splentec.com \
--cc=axboe@suse.de \
--cc=david-anderson2003@mail.com \
--cc=hbryan@us.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=phillips@arcor.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox