From: Paolo Bonzini <pbonzini@redhat.com>
To: Boaz Harrosh <bharrosh@panasas.com>
Cc: Wang Sen <senwang@linux.vnet.ibm.com>,
linux-scsi@vger.kernel.org, JBottomley@parallels.com,
stefanha@linux.vnet.ibm.com, mc@linux.vnet.ibm.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list
Date: Wed, 25 Jul 2012 11:41:11 +0200 [thread overview]
Message-ID: <500FBF37.50603@redhat.com> (raw)
In-Reply-To: <500FBAE8.2050107@panasas.com>
Il 25/07/2012 11:22, Boaz Harrosh ha scritto:
>>> >> for_each_sg(table->sgl, sg_elem, table->nents, i)
>>> >> - sg_set_buf(&sg[idx++], sg_virt(sg_elem), sg_elem->length);
>>> >> + sg_set_page(&sg[idx++], sg_page(sg_elem), sg_elem->length,
>>> >> + sg_elem->offset);
>> >
>> > This can simply be
>> >
>> > sg[idx++] = *sg_elem;
>> >
>> > Can you repost it with this change, and also add stable@vger.kernel.org
>> > to the Cc? Thanks very much!
>> >
>
> No! Please use sg_set_page()! Look at sg_set_page(), which calls sg_assign_page().
> It has all these jump over chained arrays. When you'll start using long
> sg_lists (which you should) then jumping from chain to chain must go through
> sg_page(sg_elem) && sg_assign_page(), As in the original patch.
Hi Boaz,
actually it seems to me that using sg_set_page is wrong, because it will
not copy the end marker from table->sgl to sg[]. If something chained
the sg[] scatterlist onto something else, sg_next's test for sg_is_last
would go beyond the table->nents-th item and access invalid memory.
Using chained sglists is on my to-do list, I expect that it would make a
nice performance improvement. However, I was a bit confused as to
what's the plan there; there is hardly any user, and many arches still
do not define ARCH_HAS_SG_CHAIN. Do you have any pointer to discussions
or LWN articles?
I would need to add support for the long sglists to virtio; this is not
a problem, but in the past Rusty complained that long sg-lists are not
well suited to virtio (which would like to add elements not just at the
beginning of a given sglist, but also at the end). It seems to me that
virtio would prefer to work with a struct scatterlist ** rather than a
long sglist.
Paolo
next prev parent reply other threads:[~2012-07-25 9:41 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-25 8:29 [PATCH] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list Wang Sen
2012-07-25 8:44 ` Paolo Bonzini
2012-07-25 9:22 ` Boaz Harrosh
2012-07-25 9:22 ` Boaz Harrosh
2012-07-25 9:41 ` Paolo Bonzini [this message]
2012-07-25 12:34 ` Boaz Harrosh
2012-07-25 12:34 ` Boaz Harrosh
2012-07-25 12:49 ` Paolo Bonzini
2012-07-25 13:26 ` Boaz Harrosh
2012-07-25 13:26 ` Boaz Harrosh
2012-07-25 13:36 ` Paolo Bonzini
2012-07-25 14:36 ` Boaz Harrosh
2012-07-25 14:36 ` Boaz Harrosh
2012-07-25 15:09 ` performance improvements for the sglist API (Re: [PATCH] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list) Paolo Bonzini
2012-07-25 15:16 ` Paolo Bonzini
2012-07-25 14:17 ` virtio(-scsi) vs. chained sg_lists (was " Paolo Bonzini
2012-07-25 15:28 ` Boaz Harrosh
2012-07-25 15:28 ` Boaz Harrosh
2012-07-25 17:43 ` Paolo Bonzini
2012-07-25 19:16 ` Boaz Harrosh
2012-07-25 19:16 ` Boaz Harrosh
2012-07-25 20:06 ` Paolo Bonzini
2012-07-25 21:04 ` Boaz Harrosh
2012-07-25 21:04 ` Boaz Harrosh
2012-07-26 7:23 ` Paolo Bonzini
2012-07-26 7:56 ` Boaz Harrosh
2012-07-26 7:56 ` Boaz Harrosh
2012-07-26 7:58 ` Paolo Bonzini
2012-07-26 13:05 ` Paolo Bonzini
2012-07-27 6:27 ` Rusty Russell
2012-07-27 6:27 ` Rusty Russell
2012-07-27 8:11 ` Paolo Bonzini
2012-07-29 23:50 ` Rusty Russell
2012-07-29 23:50 ` Rusty Russell
2012-07-30 7:12 ` Paolo Bonzini
2012-07-30 8:56 ` Boaz Harrosh
2012-07-30 8:56 ` Boaz Harrosh
2012-07-25 10:41 ` [PATCH] scsi: virtio-scsi: Fix address translation failure of HighMem pages used by sg list Stefan Hajnoczi
2012-07-25 11:48 ` Sen Wang
2012-07-25 11:44 ` Sen Wang
2012-07-25 12:40 ` Boaz Harrosh
2012-07-25 12:40 ` Boaz Harrosh
2012-07-27 3:12 ` Wang Sen
2012-07-27 6:50 ` Paolo Bonzini
2012-07-25 10:04 ` Rolf Eike Beer
2012-07-25 10:04 ` Rolf Eike Beer
2012-07-25 11:46 ` Sen Wang
[not found] <1343203219-19190-1-git-send-email-senwang@linux.vnet.ibm.com>
2012-07-25 10:05 ` Stefan Hajnoczi
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=500FBF37.50603@redhat.com \
--to=pbonzini@redhat.com \
--cc=JBottomley@parallels.com \
--cc=bharrosh@panasas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mc@linux.vnet.ibm.com \
--cc=senwang@linux.vnet.ibm.com \
--cc=stefanha@linux.vnet.ibm.com \
/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.