All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Alexander Graf <agraf@suse.de>, Marc Zyngier <marc.zyngier@arm.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Will Deacon <Will.Deacon@arm.com>,
	Pekka Enberg <penberg@kernel.org>,
	"kvmarm\@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
	"kvm\@vger.kernel.org" <kvm@vger.kernel.org>,
	Greg Kurz <gkurz@linux.vnet.ibm.com>,
	Michael Tsirkin <mst@redhat.com>
Subject: Re: [PATCH v3 9/9] kvmtool: virtio: enable arm/arm64 support for bi-endianness
Date: Thu, 08 May 2014 11:22:53 +0930	[thread overview]
Message-ID: <87eh05niiy.fsf@rustcorp.com.au> (raw)
In-Reply-To: <536A06C1.8010709@suse.de>

Alexander Graf <agraf@suse.de> writes:
> On 05/07/2014 11:57 AM, Marc Zyngier wrote:
>>>>> How virtio implementations should determine their endianness is
>>>>> a spec question, I think; at any rate QEMU and kvmtool ought to
>>>>> agree on how it's done. I think the most recent suggestion on the
>>>>> QEMU mailing list (for PPC) is that we should care about the
>>>>> guest kernel endianness, but I don't know if anybody thought of
>>>>> the pass-through-to-userspace usecase...
>>>> Current opinion on the qemu-devel thread seems to be that we
>>>> should just define that the endianness of the virtio device is
>>>> the endianness of the guest kernel at the point where the guest
>>>> triggers a reset of the virtio device by writing zero the QueuePFN
>>>> or Status registers.
>>> Virtio by design has full access to guest physical memory. It doesn't
>>> route DMA via PCI. So user space drivers simply don't make sense here.
>> Huh? What if my guest has usespace using an idmap, with Stage-1 MMU for
>> isolation only (much like an MPU)? R-class guests anyone?
>>
>> Agreed, this is not the general use case, but that doesn't seem to be
>> completely unrealistic either.
>
> Yes, and once that user tries the same without idmap virtio ends up 
> overwriting random memory. It's just not a good idea and I'd much rather 
> see us solve this properly with virtio 1.0 really.

Slightly orthogonal: virtio 1.0 is LE, so endianness is solved.

> Of course alternatively we can continue bikeshedding about this until 
> everything becomes moot because we switched to virtio 1.0 ;).

Transition will be long...

> Rusty / Michael, virtio 1.0 does go via normal DMA channels, right?

No.  We argued about this; it's more PCI-like to do, but there's a
performance cost and it's really unclear that passing through a virtio
PCI device to a (sub)guest is a scenario worth supporting.

Maybe someone will come up with a convincing reason, and we'll add
a feature bit in a future revision...

Cheers,
Rusty.

  parent reply	other threads:[~2014-05-09  2:34 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-24 18:17 [PATCH v3 0/9] kvmtool: handle guests of a different endianness Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 1/9] kvmtool: pass trapped vcpu to MMIO accessors Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 2/9] kvmtool: virt_queue configuration based on endianness Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 3/9] kvmtool: sample CPU endianness on virtio-mmio device reset Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 4/9] kvmtool: add queue endianness initializer Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 5/9] kvmtool: convert console backend to support bi-endianness Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 6/9] kvmtool: convert 9p " Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 7/9] kvmtool: convert blk " Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 8/9] kvmtool: convert net " Marc Zyngier
2014-04-24 18:17 ` [PATCH v3 9/9] kvmtool: virtio: enable arm/arm64 support for bi-endianness Marc Zyngier
2014-05-06 14:28   ` Will Deacon
2014-05-06 17:25     ` Marc Zyngier
2014-05-06 18:38       ` Peter Maydell
2014-05-07  9:34         ` Peter Maydell
2014-05-07  9:42           ` Alexander Graf
2014-05-07  9:57             ` Marc Zyngier
2014-05-07 10:11               ` Alexander Graf
2014-05-07 10:30                 ` Michael S. Tsirkin
2014-05-07 10:39                 ` Marc Zyngier
2014-05-08  1:52                 ` Rusty Russell [this message]
2014-05-07  9:52           ` Marc Zyngier
2014-05-07  9:55             ` Alexander Graf
2014-05-07 10:19               ` Marc Zyngier
2014-05-07 10:10             ` Peter Maydell
2014-05-07 10:46               ` Marc Zyngier
2014-05-07 11:49                 ` Alexander Graf
2014-05-07 12:16                   ` Marc Zyngier
2014-05-07 12:18                     ` Peter Maydell
2014-05-07 10:40             ` Greg Kurz
2014-05-07 11:04               ` Marc Zyngier
2014-05-07 12:17                 ` Peter Maydell
2014-05-07 12:25                   ` Marc Zyngier
2014-05-07 12:27                   ` Greg Kurz
2014-05-03  7:07 ` [PATCH v3 0/9] kvmtool: handle guests of a different endianness Pekka Enberg
2014-05-06 13:34   ` Will Deacon

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=87eh05niiy.fsf@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=Will.Deacon@arm.com \
    --cc=agraf@suse.de \
    --cc=gkurz@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=marc.zyngier@arm.com \
    --cc=mst@redhat.com \
    --cc=penberg@kernel.org \
    --cc=peter.maydell@linaro.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.