Thread (73 messages) 73 messages, 7 authors, 2009-10-03

Re: [PATCHv5 3/3] vhost_net: a kernel-level virtio server

From: Gregory Haskins <hidden>
Date: 2009-09-14 19:28:42
Also in: kvm, linux-mm, lkml

Possibly related (same subject, not in this thread)

Michael S. Tsirkin wrote:
On Mon, Sep 14, 2009 at 12:08:55PM -0400, Gregory Haskins wrote:
quoted
Michael S. Tsirkin wrote:
quoted
On Fri, Sep 11, 2009 at 12:00:21PM -0400, Gregory Haskins wrote:
quoted
FWIW: VBUS handles this situation via the "memctx" abstraction.  IOW,
the memory is not assumed to be a userspace address.  Rather, it is a
memctx-specific address, which can be userspace, or any other type
(including hardware, dma-engine, etc).  As long as the memctx knows how
to translate it, it will work.
How would permissions be handled?
Same as anything else, really.  Read on for details.
quoted
it's easy to allow an app to pass in virtual addresses in its own address space.
Agreed, and this is what I do.

The guest always passes its own physical addresses (using things like
__pa() in linux).  This address passed is memctx specific, but generally
would fall into the category of "virtual-addresses" from the hosts
perspective.

For a KVM/AlacrityVM guest example, the addresses are GPAs, accessed
internally to the context via a gfn_to_hva conversion (you can see this
occuring in the citation links I sent)

For Ira's example, the addresses would represent a physical address on
the PCI boards, and would follow any kind of relevant rules for
converting a "GPA" to a host accessible address (even if indirectly, via
a dma controller).
So vbus can let an application
"application" means KVM guest, or ppc board, right?
access either its own virtual memory or a physical memory on a PCI device.
To reiterate from the last reply: the model is the "guest" owns the
memory.  The host is granted access to that memory by means of a memctx
object, which must be admitted to the host kernel and accessed according
 to standard access-policy mechanisms.  Generally the "application" or
guest would never be accessing anything other than its own memory.
My question is, is any application
that's allowed to do the former also granted rights to do the later?
If I understand your question, no.  Can you elaborate?

Kind Regards,
-Greg

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help