From: Boaz Harrosh <bharrosh@panasas.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>,
linux-scsi <linux-scsi@vger.kernel.org>,
open-osd <osd-dev@open-osd.org>
Subject: Re: [PATCH] libosd: osd_req_read_sg, optimize the single entry case
Date: Sun, 23 Jan 2011 17:54:49 +0200 [thread overview]
Message-ID: <4D3C4F49.3090804@panasas.com> (raw)
In-Reply-To: <4D3C4EF4.2090301@panasas.com>
On 01/23/2011 05:53 PM, Boaz Harrosh wrote:
>
> Since sg-read is a bidi operation, it is a gain to convert
> a single sg entry into a regular read. Better do this in the
> generic layer then force each caller to do so.
>
> Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
> ---
> drivers/scsi/osd/osd_initiator.c | 20 ++++++++++++++++----
> 1 files changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c
> index 0433ea6..19ddf65 100644
> --- a/drivers/scsi/osd/osd_initiator.c
> +++ b/drivers/scsi/osd/osd_initiator.c
> @@ -1005,11 +1005,23 @@ int osd_req_read_sg(struct osd_request *or,
> const struct osd_sg_entry *sglist, unsigned numentries)
> {
> u64 len;
> - int ret = _add_sg_continuation_descriptor(or, sglist, numentries, &len);
> + u64 off;
> + int ret;
>
> - if (ret)
> - return ret;
> - osd_req_read(or, obj, 0, bio, len);
> + if (numentries > 1) {
> + off = 0;
> + ret = _add_sg_continuation_descriptor(or, sglist, numentries,
> + &len);
> + if (ret)
> + return ret;
> + } else {
> + /* Optimize the case of single segment, read_sg is a
> + * bidi operation.
> + */
> + len = sglist->len;
> + off = sglist->offset;
> + }
> + osd_req_read(or, obj, off, bio, len);
>
> return 0;
> }
James please include this patch into scsi-misc for the next merge window.
Thanks
Boaz
prev parent reply other threads:[~2011-01-23 15:54 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-23 15:53 [PATCH] libosd: osd_req_read_sg, optimize the single entry case Boaz Harrosh
2011-01-23 15:54 ` Boaz Harrosh [this message]
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=4D3C4F49.3090804@panasas.com \
--to=bharrosh@panasas.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-scsi@vger.kernel.org \
--cc=osd-dev@open-osd.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.