All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: "Sjur Brændeland" <sjurbren@gmail.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	virtualization@lists.linux-foundation.org
Subject: Re: [RFCv2 00/12] Introduce host-side virtio queue and CAIF Virtio.
Date: Wed, 09 Jan 2013 09:47:55 +1030	[thread overview]
Message-ID: <87pq1f2rj0.fsf@rustcorp.com.au> (raw)
In-Reply-To: <CAJK669bP41oBhJ=MB64NS21Ag7XO5WswuTiVKCFTb96nvmyBiw@mail.gmail.com>

Sjur Brændeland <sjurbren@gmail.com> writes:
> On Fri, Dec 21, 2012 at 7:11 AM, Rusty Russell <rusty@rustcorp.com.au> wrote:
>> "Michael S. Tsirkin" <mst@redhat.com> writes:
>>
>>> On Wed, Dec 05, 2012 at 03:36:58PM +0100, Sjur Brændeland wrote:
>>>> Feedback on this patch-set is appreciated, particularly on structure
>>>> and code-reuse between vhost.c and the host-side virtio-queue.
>>>> I'd also like some suggestions on how to handle the build configuration
>>>> better - currently there are some unnecessary build dependencies.
>>>
>>> Rusty seems to disagree but one of the concerns people have about vhost
>>> is security; so I value getting as much static checking as we can.  This
>>> discards __user annotations so this doesn't work for me.
>>
>> Sometimes, when we generalize code, we lose some type safety.  Callbacks
>> take void *, for example.  And it happens *all the time* with const.  We
>> don't create a set of parallel const-safe routines.
>>
>> Extracting common code where it can be shared provides better, not worse
>> security, because more people will read it.  I've never audited the
>> vhost code, for example.
>>
>> We already have a 'struct vring', we should just use that.
>>
>> I meant to do more work on this, but I've run out of time :( I was
>> thinking of a drivers/virtio/virtio_ring.c, and in that we'd put the
>> wrappers for vhost_net/blk, and for CAIF, etc.  We could at least have a
>> variant which did the __user etc thing, even if you have to pass in
>> getdesc().
>>
>> getu16: get_user or assignment.
>> getdesc: copy (and check, translate) the descriptor.
>> getmem/putmem: memcpy or copy_to/from_user.
>>
>> (Completely untested, of course...)
>>
>> Thoughts?
>
> Any thoughts on this Michael?

I'm actually testing code this time, and it's mutated a little.

It basically involves moving much of vring.c into a virtio_host.c: the
parts which actually touch the ring.  Then it provides accessors for
vring.c to use which are __user-safe (all casts are inside
virtio_host.c).

I should have something to post by end of today, my time...

Thanks,
Rusty.



_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

  reply	other threads:[~2013-01-08 23:17 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-31 22:46 [RFC virtio-next 0/4] Introduce CAIF Virtio and reversed Vrings Sjur Brændeland
2012-10-31 22:46 ` Sjur Brændeland
2012-10-31 22:46 ` [RFC virtio-next 1/4] virtio: Move definitions to header file vring.h Sjur Brændeland
2012-10-31 22:46   ` Sjur Brændeland
2012-10-31 22:46 ` [RFC virtio-next 2/4] include/vring.h: Add support for reversed vritio rings Sjur Brændeland
2012-10-31 22:46   ` Sjur Brændeland
2012-10-31 22:46 ` [RFC virtio-next 3/4] virtio_ring: Call callback function even when used ring is empty Sjur Brændeland
2012-10-31 22:46   ` Sjur Brændeland
2012-10-31 22:46 ` [RFC virtio-next 4/4] caif_virtio: Add CAIF over virtio Sjur Brændeland
2012-10-31 22:46   ` Sjur Brændeland
2012-11-01  7:41 ` [RFC virtio-next 0/4] Introduce CAIF Virtio and reversed Vrings Rusty Russell
2012-11-01  7:41   ` Rusty Russell
2012-11-01  7:41   ` Rusty Russell
2012-11-05 12:12   ` Sjur Brændeland
2012-11-06  2:09     ` Rusty Russell
2012-11-06  2:09       ` Rusty Russell
2012-12-05 14:36       ` [RFCv2 00/12] Introduce host-side virtio queue and CAIF Virtio Sjur Brændeland
2012-12-05 14:36         ` [RFCv2 01/12] vhost: Use struct vring in vhost_virtqueue Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 02/12] vhost: Isolate reusable vring related functions Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 03/12] virtio-ring: Introduce file virtio_ring_host Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 04/12] virtio-ring: Refactor out the functions accessing user memory Sjur Brændeland
2012-12-06  9:52           ` Michael S. Tsirkin
2012-12-06 11:03             ` Sjur BRENDELAND
2012-12-06 11:15               ` Michael S. Tsirkin
2012-12-07 11:05                 ` Sjur BRENDELAND
2012-12-07 12:40                   ` Michael S. Tsirkin
2012-12-07 13:02                     ` Sjur BRENDELAND
2012-12-07 14:05                       ` Michael S. Tsirkin
2012-12-05 14:37         ` [RFCv2 05/12] virtio-ring: Refactor move attributes to struct virtqueue Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 06/12] virtio_ring: Move SMP macros to virtio_ring.h Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 07/12] virtio-ring: Add Host side virtio-ring implementation Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 08/12] virtio: Update vring_interrupt for host-side virtio queues Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 09/12] virtio-ring: Add BUG_ON checking on host/guest ring type Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 10/12] virtio: Add argument reversed to function find_vqs() Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 11/12] remoteproc: Add support for host-virtqueues Sjur Brændeland
2012-12-05 14:37         ` [RFCv2 12/12] caif_virtio: Introduce caif over virtio Sjur Brændeland
2012-12-06 10:27         ` [RFCv2 00/12] Introduce host-side virtio queue and CAIF Virtio Michael S. Tsirkin
2012-12-21  6:11           ` Rusty Russell
2013-01-08  8:04             ` Sjur Brændeland
2013-01-08 23:17               ` Rusty Russell [this message]
2013-01-10 10:30                 ` Rusty Russell
2013-01-10 10:30                   ` Rusty Russell
2013-01-10 11:11                   ` Michael S. Tsirkin
2013-01-10 11:11                     ` Michael S. Tsirkin
2013-01-10 22:48                     ` Rusty Russell
2013-01-11  7:31                       ` Michael S. Tsirkin
2013-01-11  7:31                       ` Michael S. Tsirkin
2013-01-12  0:20                         ` Rusty Russell
2013-01-14 16:54                           ` Michael S. Tsirkin
2013-01-10 18:39                   ` Sjur Brændeland
2013-01-10 18:39                     ` Sjur Brændeland
2013-01-10 23:35                     ` Rusty Russell
2013-01-10 23:35                       ` Rusty Russell
2013-01-11  6:37                       ` Rusty Russell
2013-01-11  6:37                         ` Rusty Russell
2013-01-11 15:02                         ` Sjur Brændeland
2013-01-11 15:02                           ` Sjur Brændeland
2013-01-12  0:26                           ` Rusty Russell
2013-01-12  0:26                             ` Rusty Russell
2013-01-14 17:39                         ` Michael S. Tsirkin
2013-01-14 17:39                           ` Michael S. Tsirkin
2013-01-16  3:13                           ` Rusty Russell
2013-01-16  3:13                             ` Rusty Russell
2013-01-16  8:16                             ` Michael S. Tsirkin
2013-01-16  8:16                               ` Michael S. Tsirkin
2013-01-17  2:10                               ` Rusty Russell
2013-01-17  9:58                                 ` Michael S. Tsirkin
2013-01-17  9:58                                   ` Michael S. Tsirkin
2013-01-21 11:55                                   ` Rusty Russell
2013-01-21 11:55                                     ` Rusty Russell
2013-01-17 10:35                                 ` Rusty Russell
2013-01-17 10:35                                   ` Rusty Russell
2013-01-17  2:10                               ` Rusty Russell
2013-01-11 14:52                       ` Sjur Brændeland
2013-01-11 14:52                         ` Sjur Brændeland
2012-11-05 12:12   ` [RFC virtio-next 0/4] Introduce CAIF Virtio and reversed Vrings Sjur Brændeland

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=87pq1f2rj0.fsf@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=linus.walleij@linaro.org \
    --cc=mst@redhat.com \
    --cc=sjurbren@gmail.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: 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.