qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: kwolf@redhat.com, peter.maydell@linaro.org,
	thuth@linux.vnet.ibm.com, marc.zyngier@arm.com,
	rusty@rustcorp.com.au, qemu-devel@nongnu.org,
	stefanha@redhat.com, anthony@codemonkey.ws, pbonzini@redhat.com,
	afaerber@suse.de, Greg Kurz <gkurz@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio.
Date: Tue, 18 Feb 2014 16:02:18 +0100	[thread overview]
Message-ID: <530375FA.4070109@suse.de> (raw)
In-Reply-To: <20140218150327.GA9457@redhat.com>

On 02/18/2014 04:03 PM, Michael S. Tsirkin wrote:
> On Tue, Feb 18, 2014 at 03:48:38PM +0100, Alexander Graf wrote:
>> On 02/18/2014 01:38 PM, Greg Kurz wrote:
>>> From: Rusty Russell <rusty@rustcorp.com.au>
>>>
>>> virtio data structures are defined as "target endian", which assumes
>>> that's a fixed value.  In fact, that actually means it's
>>> platform-specific.
>>>
>>> The OASIS virtio 1.0 spec will fix this.  Meanwhile, create a hook for
>>> little endian ppc (and potentially ARM).  This is called at device
>>> reset time (which is done before any driver is loaded) since it
>>> may involve a system call to get the status when running under kvm.
>>>
>>> [ fixed checkpatch.pl error with the virtio_byteswap initialisation,
>>>    ldq_phys() API change, Greg Kurz <gkurz@linux.vnet.ibm.com> ]
>>> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
>>> Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
>>> ---
>>>   hw/virtio/virtio.c                |    6 ++
>>>   include/hw/virtio/virtio-access.h |  132 +++++++++++++++++++++++++++++++++++++
>>>   include/hw/virtio/virtio.h        |    2 +
>>>   stubs/Makefile.objs               |    1
>>>   stubs/virtio_get_byteswap.c       |    6 ++
>>>   5 files changed, 147 insertions(+)
>>>   create mode 100644 include/hw/virtio/virtio-access.h
>>>   create mode 100644 stubs/virtio_get_byteswap.c
>>>
>>> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
>>> index aeabf3a..4fd6ac2 100644
>>> --- a/hw/virtio/virtio.c
>>> +++ b/hw/virtio/virtio.c
>>> @@ -19,6 +19,9 @@
>>>   #include "hw/virtio/virtio.h"
>>>   #include "qemu/atomic.h"
>>>   #include "hw/virtio/virtio-bus.h"
>>> +#include "hw/virtio/virtio-access.h"
>>> +
>>> +bool virtio_byteswap;
>> Could this be a virtio object property rather than a global? Imagine
>> an AMP guest system with a BE and an LE system running in parallel
>> accessing two separate virtio devices. With a single global that
>> would break.
>>
>>
>> Alex
> Well, how does a device know which CPU uses it?
> I suspect we are better off waiting for 1.0 with this one.

Good point. It just feels like a heavy layering violation to have a 
global variable for all virtio devices. What if we start mixing legacy 
and 1.0 devices? We could reuse the same flag, but it would be 
initialized differently per device.


Alex

  reply	other threads:[~2014-02-18 15:02 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-17  3:53 [Qemu-devel] [PATCH 0/7] virtio endian-ambivalent target fixes Rusty Russell
2013-10-17  3:53 ` [Qemu-devel] [PATCH 1/7] virtio_get_byteswap: function for endian-ambivalent targets using virtio Rusty Russell
2013-10-17  3:53 ` [Qemu-devel] [PATCH 2/7] virtio: allow byte swapping for vring and config access Rusty Russell
2013-10-17  3:53 ` [Qemu-devel] [PATCH 3/7] hw/net/virtio-net: use virtio wrappers to access headers Rusty Russell
2013-10-17  3:53 ` [Qemu-devel] [PATCH 4/7] hw/net/virtio-balloon: use virtio wrappers to access page frame numbers Rusty Russell
2013-10-17  3:53 ` [Qemu-devel] [PATCH 5/7] hw/block/virtio-blk: use virtio wrappers to access headers Rusty Russell
2013-10-17  3:53 ` [Qemu-devel] [PATCH 6/7] hw/scsi/virtio-scsi: " Rusty Russell
2013-10-17  3:53 ` [Qemu-devel] [PATCH 7/7] hw/char/virtio-serial-bus: " Rusty Russell
2013-11-12 11:47 ` [Qemu-devel] [PATCH 0/7] virtio endian-ambivalent target fixes Thomas Huth
2013-11-19 23:59   ` Rusty Russell
2014-02-14  9:38 ` Greg Kurz
2014-02-14 11:59   ` Andreas Färber
2014-02-18 12:38     ` [Qemu-devel] [PATCH 0/8] virtio endian-ambivalent target fixes (rebased) Greg Kurz
2014-02-18 12:38       ` [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio Greg Kurz
2014-02-18 14:48         ` Alexander Graf
2014-02-18 15:03           ` Michael S. Tsirkin
2014-02-18 15:02             ` Alexander Graf [this message]
2014-02-18 15:11               ` Michael S. Tsirkin
2014-02-18 15:07                 ` Alexander Graf
2014-02-18 15:04             ` Michael S. Tsirkin
2014-02-18 15:12             ` Cornelia Huck
2014-02-18 15:45               ` Cornelia Huck
2014-02-18 16:02                 ` Alexander Graf
2014-02-18 16:17                   ` Cornelia Huck
2014-02-18 16:21                     ` Alexander Graf
2014-02-20 23:26                       ` Rusty Russell
2014-02-18 23:02           ` Andreas Färber
2014-02-18 19:25         ` Andreas Färber
2014-02-19 10:06           ` Greg Kurz
2014-02-20 23:19             ` Rusty Russell
2014-02-18 12:38       ` [Qemu-devel] [PATCH 2/8] virtio: allow byte swapping for vring and config access Greg Kurz
2014-02-18 13:08         ` Cornelia Huck
2014-02-18 13:11           ` Greg Kurz
2014-02-18 12:39       ` [Qemu-devel] [PATCH 3/8] hw/net/virtio-net: use virtio wrappers to access headers Greg Kurz
2014-02-18 12:39       ` [Qemu-devel] [PATCH 4/8] hw/net/virtio-balloon: use virtio wrappers to access page frame numbers Greg Kurz
2014-02-18 12:39       ` [Qemu-devel] [PATCH 5/8] hw/block/virtio-blk: use virtio wrappers to access headers Greg Kurz
2014-02-18 12:39       ` [Qemu-devel] [PATCH 6/8] hw/scsi/virtio-scsi: " Greg Kurz
2014-02-18 12:39       ` [Qemu-devel] [PATCH 7/8] hw/char/virtio-serial-bus: " Greg Kurz
2014-02-18 12:39       ` [Qemu-devel] [PATCH 8/8] hw/9pfs/virtio_9p_device: " Greg Kurz
2014-02-18 19:13       ` [Qemu-devel] [PATCH 0/8] virtio endian-ambivalent target fixes (rebased) Andreas Färber
2014-02-14 15:57   ` [Qemu-devel] [PATCH 0/7] virtio endian-ambivalent target fixes Thomas Huth
  -- strict thread matches above, loose matches on Subject: below --
2013-08-12  7:59 [Qemu-devel] [PATCH 0/8] virtio for endian curious guests Take #2 Rusty Russell
2013-08-12  7:59 ` [Qemu-devel] [PATCH 1/8] virtio_get_byteswap: function for endian-ambivalent targets using virtio Rusty Russell
2013-08-12  9:28   ` Benjamin Herrenschmidt
2013-08-12  9:39     ` Peter Maydell
2013-08-12  9:43       ` Benjamin Herrenschmidt
2013-08-12  9:45         ` Peter Maydell
2013-08-12  9:50           ` Benjamin Herrenschmidt
2013-08-12  9:52             ` Peter Maydell
2013-08-12  9:56               ` Benjamin Herrenschmidt
2013-08-12 10:36                 ` Peter Maydell
2013-08-12 12:56     ` Anthony Liguori
2013-08-13  4:20       ` Rusty Russell
2013-08-13  5:30         ` Benjamin Herrenschmidt
2013-08-14  0:03           ` Rusty Russell
2013-09-06  2:27     ` Rusty Russell

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=530375FA.4070109@suse.de \
    --to=agraf@suse.de \
    --cc=afaerber@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=gkurz@linux.vnet.ibm.com \
    --cc=kwolf@redhat.com \
    --cc=marc.zyngier@arm.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rusty@rustcorp.com.au \
    --cc=stefanha@redhat.com \
    --cc=thuth@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).