From: Rusty Russell <rusty@rustcorp.com.au> To: Paolo Bonzini <pbonzini@redhat.com> Cc: kvm@vger.kernel.org, linux-scsi@vger.kernel.org, mst@redhat.com, hutao@cn.fujitsu.com, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, stefanha@redhat.com, "Jens Axboe" <axboe@kernel.dk> Subject: Re: [PATCH v2 1/5] virtio: add functions for piecewise addition of buffers Date: Tue, 08 Jan 2013 10:42:13 +1030 [thread overview] Message-ID: <87wqvo3542.fsf@rustcorp.com.au> (raw) In-Reply-To: <50EADB62.1010704@redhat.com> Paolo Bonzini <pbonzini@redhat.com> writes: > Il 07/01/2013 01:02, Rusty Russell ha scritto: >> Paolo Bonzini <pbonzini@redhat.com> writes: >>> Il 02/01/2013 06:03, Rusty Russell ha scritto: >>>> Paolo Bonzini <pbonzini@redhat.com> writes: >>>>> The virtqueue_add_buf function has two limitations: >>>>> >>>>> 1) it requires the caller to provide all the buffers in a single call; >>>>> >>>>> 2) it does not support chained scatterlists: the buffers must be >>>>> provided as an array of struct scatterlist; >>>> >>>> Chained scatterlists are a horrible interface, but that doesn't mean we >>>> shouldn't support them if there's a need. >>>> >>>> I think I once even had a patch which passed two chained sgs, rather >>>> than a combo sg and two length numbers. It's very old, but I've pasted >>>> it below. >>>> >>>> Duplicating the implementation by having another interface is pretty >>>> nasty; I think I'd prefer the chained scatterlists, if that's optimal >>>> for you. >>> >>> Unfortunately, that cannot work because not all architectures support >>> chained scatterlists. >> >> WHAT? I can't figure out what an arch needs to do to support this? > > It needs to use the iterator functions in its DMA driver. But we don't care for virtio. >> All archs we care about support them, though, so I think we can ignore >> this issue for now. > > Kind of... In principle all QEMU-supported arches can use virtio, and > the speedup can be quite useful. And there is no Kconfig symbol for SG > chains that I can use to disable virtio-scsi on unsupported arches. :/ Well, we #error if it's not supported. Then the lazy architectures can fix it. Cheers, Rusty.
WARNING: multiple messages have this Message-ID (diff)
From: Rusty Russell <rusty@rustcorp.com.au> To: Paolo Bonzini <pbonzini@redhat.com> Cc: Jens Axboe <axboe@kernel.dk>, kvm@vger.kernel.org, linux-scsi@vger.kernel.org, mst@redhat.com, hutao@cn.fujitsu.com, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, stefanha@redhat.com Subject: Re: [PATCH v2 1/5] virtio: add functions for piecewise addition of buffers Date: Tue, 08 Jan 2013 10:42:13 +1030 [thread overview] Message-ID: <87wqvo3542.fsf@rustcorp.com.au> (raw) In-Reply-To: <50EADB62.1010704@redhat.com> Paolo Bonzini <pbonzini@redhat.com> writes: > Il 07/01/2013 01:02, Rusty Russell ha scritto: >> Paolo Bonzini <pbonzini@redhat.com> writes: >>> Il 02/01/2013 06:03, Rusty Russell ha scritto: >>>> Paolo Bonzini <pbonzini@redhat.com> writes: >>>>> The virtqueue_add_buf function has two limitations: >>>>> >>>>> 1) it requires the caller to provide all the buffers in a single call; >>>>> >>>>> 2) it does not support chained scatterlists: the buffers must be >>>>> provided as an array of struct scatterlist; >>>> >>>> Chained scatterlists are a horrible interface, but that doesn't mean we >>>> shouldn't support them if there's a need. >>>> >>>> I think I once even had a patch which passed two chained sgs, rather >>>> than a combo sg and two length numbers. It's very old, but I've pasted >>>> it below. >>>> >>>> Duplicating the implementation by having another interface is pretty >>>> nasty; I think I'd prefer the chained scatterlists, if that's optimal >>>> for you. >>> >>> Unfortunately, that cannot work because not all architectures support >>> chained scatterlists. >> >> WHAT? I can't figure out what an arch needs to do to support this? > > It needs to use the iterator functions in its DMA driver. But we don't care for virtio. >> All archs we care about support them, though, so I think we can ignore >> this issue for now. > > Kind of... In principle all QEMU-supported arches can use virtio, and > the speedup can be quite useful. And there is no Kconfig symbol for SG > chains that I can use to disable virtio-scsi on unsupported arches. :/ Well, we #error if it's not supported. Then the lazy architectures can fix it. Cheers, Rusty.
next prev parent reply other threads:[~2013-01-08 3:04 UTC|newest] Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-12-18 12:32 [PATCH v2 0/5] Multiqueue virtio-scsi, and API for piecewise buffer submission Paolo Bonzini 2012-12-18 12:32 ` Paolo Bonzini 2012-12-18 12:32 ` [PATCH v2 1/5] virtio: add functions for piecewise addition of buffers Paolo Bonzini 2012-12-18 12:32 ` Paolo Bonzini 2012-12-18 13:36 ` Michael S. Tsirkin 2012-12-18 13:36 ` Michael S. Tsirkin 2012-12-18 13:43 ` Paolo Bonzini 2012-12-18 13:43 ` Paolo Bonzini 2012-12-18 13:59 ` Michael S. Tsirkin 2012-12-18 13:59 ` Michael S. Tsirkin 2012-12-18 14:32 ` Paolo Bonzini 2012-12-18 14:32 ` Paolo Bonzini 2012-12-18 15:06 ` Michael S. Tsirkin 2012-12-18 15:06 ` Michael S. Tsirkin 2012-12-19 10:47 ` Stefan Hajnoczi 2012-12-19 10:47 ` Stefan Hajnoczi 2012-12-19 12:04 ` Paolo Bonzini 2012-12-19 12:04 ` Paolo Bonzini 2012-12-19 12:40 ` Stefan Hajnoczi 2012-12-19 12:40 ` Stefan Hajnoczi 2012-12-19 16:51 ` Michael S. Tsirkin 2012-12-19 16:51 ` Michael S. Tsirkin 2012-12-19 16:52 ` Michael S. Tsirkin 2012-12-19 16:52 ` Michael S. Tsirkin 2013-01-02 5:03 ` Rusty Russell 2013-01-02 5:03 ` Rusty Russell 2013-01-03 8:58 ` Wanlong Gao 2013-01-03 8:58 ` Wanlong Gao 2013-01-03 8:58 ` Wanlong Gao 2013-01-06 23:32 ` Rusty Russell 2013-01-06 23:32 ` Rusty Russell 2013-01-06 23:32 ` Rusty Russell 2013-01-03 9:22 ` Paolo Bonzini 2013-01-03 9:22 ` Paolo Bonzini 2013-01-07 0:02 ` Rusty Russell 2013-01-07 0:02 ` Rusty Russell 2013-01-07 14:27 ` Paolo Bonzini 2013-01-08 0:12 ` Rusty Russell [this message] 2013-01-08 0:12 ` Rusty Russell 2013-01-10 8:44 ` Paolo Bonzini 2012-12-18 12:32 ` [PATCH v2 2/5] virtio-scsi: use functions for piecewise composition " Paolo Bonzini 2012-12-18 12:32 ` Paolo Bonzini 2012-12-18 13:37 ` Michael S. Tsirkin 2012-12-18 13:37 ` Michael S. Tsirkin 2012-12-18 13:35 ` Paolo Bonzini 2012-12-18 13:35 ` Paolo Bonzini 2012-12-18 12:32 ` [PATCH v2 3/5] virtio-scsi: redo allocation of target data Paolo Bonzini 2012-12-18 12:32 ` Paolo Bonzini 2012-12-18 12:32 ` [PATCH v2 4/5] virtio-scsi: pass struct virtio_scsi to virtqueue completion function Paolo Bonzini 2012-12-18 12:32 ` Paolo Bonzini 2012-12-18 12:32 ` [PATCH v2 5/5] virtio-scsi: introduce multiqueue support Paolo Bonzini 2012-12-18 13:57 ` Michael S. Tsirkin 2012-12-18 13:57 ` Michael S. Tsirkin 2012-12-18 14:08 ` Paolo Bonzini 2012-12-18 14:08 ` Paolo Bonzini 2012-12-18 15:03 ` Michael S. Tsirkin 2012-12-18 15:03 ` Michael S. Tsirkin 2012-12-18 15:51 ` Paolo Bonzini 2012-12-18 15:51 ` Paolo Bonzini 2012-12-18 16:02 ` Michael S. Tsirkin 2012-12-18 16:02 ` Michael S. Tsirkin 2012-12-25 12:41 ` Wanlong Gao 2012-12-25 12:41 ` Wanlong Gao 2012-12-19 11:27 ` Stefan Hajnoczi 2012-12-19 11:27 ` Stefan Hajnoczi 2012-12-18 12:32 ` Paolo Bonzini 2012-12-18 13:42 ` [PATCH v2 0/5] Multiqueue virtio-scsi, and API for piecewise buffer submission Michael S. Tsirkin 2012-12-18 13:42 ` Michael S. Tsirkin 2012-12-24 6:44 ` Wanlong Gao 2012-12-24 6:44 ` Wanlong Gao 2012-12-18 22:18 ` Rolf Eike Beer 2012-12-19 8:52 ` Paolo Bonzini 2012-12-19 8:52 ` Paolo Bonzini 2012-12-19 11:32 ` Michael S. Tsirkin 2012-12-19 11:32 ` Michael S. Tsirkin 2012-12-18 22:18 ` Rolf Eike Beer 2013-01-15 9:48 ` [PATCH 1/2] virtio-scsi: split out request queue set affinity function Wanlong Gao 2013-01-15 9:48 ` Wanlong Gao 2013-01-15 9:50 ` [PATCH 2/2] virtio-scsi: reset virtqueue affinity when doing cpu hotplug Wanlong Gao 2013-01-15 9:50 ` Wanlong Gao 2013-01-16 3:31 ` Rusty Russell 2013-01-16 3:31 ` Rusty Russell 2013-01-16 3:55 ` Wanlong Gao 2013-01-16 3:55 ` Wanlong Gao 2013-02-06 17:27 ` Paolo Bonzini 2013-02-06 17:27 ` Paolo Bonzini
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=87wqvo3542.fsf@rustcorp.com.au \ --to=rusty@rustcorp.com.au \ --cc=axboe@kernel.dk \ --cc=hutao@cn.fujitsu.com \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=mst@redhat.com \ --cc=pbonzini@redhat.com \ --cc=stefanha@redhat.com \ --cc=virtualization@lists.linux-foundation.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: linkBe 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.