lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181218181358.3bc2615a.cohuck@redhat.com>
Date:   Tue, 18 Dec 2018 18:13:58 +0100
From:   Cornelia Huck <cohuck@...hat.com>
To:     Stefan Hajnoczi <stefanha@...hat.com>
Cc:     David Hildenbrand <david@...hat.com>,
        "Dr. David Alan Gilbert" <dgilbert@...hat.com>,
        Vivek Goyal <vgoyal@...hat.com>, linux-fsdevel@...r.kernel.org,
        linux-kernel@...r.kernel.org, kvm@...r.kernel.org,
        miklos@...redi.hu, sweil@...hat.com, swhiteho@...hat.com
Subject: Re: [PATCH 18/52] virtio-fs: Map cache using the values from the
 capabilities

On Mon, 17 Dec 2018 14:56:38 +0000
Stefan Hajnoczi <stefanha@...hat.com> wrote:

> On Mon, Dec 17, 2018 at 11:53:46AM +0100, David Hildenbrand wrote:
> > On 14.12.18 14:44, Stefan Hajnoczi wrote:  
> > > On Thu, Dec 13, 2018 at 01:38:23PM +0100, Cornelia Huck wrote:  
> > >> On Thu, 13 Dec 2018 13:24:31 +0100
> > >> David Hildenbrand <david@...hat.com> wrote:

> > >>> As s390x does not have the concept of memory mapped io (RAM is RAM,
> > >>> nothing else), this is not architectured. vitio-ccw can therefore not
> > >>> define anything similar like that. However, in virtual environments we
> > >>> can do whatever we want on top of the pure transport (e.g. on the virtio
> > >>> layer).
> > >>>
> > >>> Conny can correct me if I am wrong.  
> > >>
> > >> I don't think you're wrong, but I haven't read the code yet and I'm
> > >> therefore not aware of the purpose of this BAR.
> > >>
> > >> Generally, if there is a memory location shared between host and guest,
> > >> we need a way to communicate its location, which will likely differ
> > >> between transports. For ccw, I could imagine a new channel command
> > >> dedicated to exchanging configuration information (similar to what
> > >> exists today to communicate the locations of virtqueues), but I'd
> > >> rather not go down this path.
> > >>
> > >> Without reading the code/design further, can we use one of the
> > >> following instead of a BAR:
> > >> - a virtqueue;
> > >> - something in config space?
> > >> That would be implementable by any virtio transport.  
> > > 
> > > The way I think about this is that we wish to extend the VIRTIO device
> > > model with the concept of shared memory.  virtio-fs, virtio-gpu, and
> > > virtio-vhost-user all have requirements for shared memory.
> > > 
> > > This seems like a transport-level issue to me.  PCI supports
> > > memory-mapped I/O and that's the right place to do it.  If you try to
> > > put it into config space or the virtqueue, you'll end up with something
> > > that cannot be realized as a PCI device because it bypasses PCI bus
> > > address translation.
> > > 
> > > If CCW needs a side-channel, that's fine.  But that side-channel is a
> > > CCW-specific mechanism and probably doesn't apply to all other
> > > transports.
> > > 
> > > Stefan
> > >   
> > 
> > I think the problem is more fundamental. There is no iommu. Whatever
> > shared region you want to indicate, you want it to be assigned a memory
> > region in guest physical memory. Like a DIMM/NVDIMM. And this should be
> > different to the concept of a BAR. Or am I missing something?  
> 
> If you implement a physical virtio PCI adapter then there is bus
> addressing and an IOMMU and VIRTIO has support for that.  I'm not sure I
> understand what you mean by "there is no iommu"?

For ccw, there is no iommu; channel-program translation is doing
similar things. (I hope that is what David meant :)

> 
> > I am ok with using whatever other channel to transport such information.
> > But I believe this is different to a typical BAR. (I wish I knew more
> > about PCI internals ;) ).
> > 
> > I would also like to know how shared memory works as of now for e.g.
> > virtio-gpu.  
> 
> virtio-gpu currently does not use shared memory, it needs it for future
> features.

OK, that all sounds like we need to define a generic, per transport,
device agnostic way to specify shared memory.

Where is that memory situated? Is it something in guest memory (like
virtqueues)? If it is something provided by the device, things will get
tricky for ccw (remember that there's no mmio on s390; pci on s390 uses
special instructions for that.)

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ