From: Anthony Liguori <anthony@codemonkey.ws>
To: Avi Kivity <avi@qumranet.com>
Cc: kvm-devel@lists.sourceforge.net, allen.m.kay@intel.com,
andrea@qumranet.com, Ben-Ami Yassour1 <BENAMI@il.ibm.com>
Subject: Re: [PATCH 1/1] direct mmio for passthrough - kernel part
Date: Tue, 01 Apr 2008 15:04:43 -0500 [thread overview]
Message-ID: <47F2955B.6060200@codemonkey.ws> (raw)
In-Reply-To: <47F29057.7050004@qumranet.com>
Avi Kivity wrote:
> Ben-Ami Yassour1 wrote:
>
>>
>>
>
> Not enough. How do you know if this calling process has permissions to
> access that pci device (I retract my previous "pci passthrough is as
> rootish as you get" remark).
>
>
>> What do you think? Given that the shadow page table code has to be
>> modified anyway (due to the struct page issue), is it worthwhile to
>> experiment with mmap(...region) or is the current approach sufficient?
>>
>>
>
> As Anthony points out, the advantage to mmap() is that whatever security
> is needed can be applied at that level. Passing host physical addresses
> from userspace requires a whole new security model.
>
> The issue with gfn_to_page() is real. We can either try to work around
> it somehow, or we can try to back mmio regions with struct pages. Now
> that it looks like mem_map is becoming virtually mapped, the cost is
> minimal, but I expect this approach will meet some resistance.
>
What about switching the KVM MMU code to use hfn_t instead of struct
page? The initial conversion is pretty straight forward as the places
where you actually need a struct page you can always get it from
pfn_to_page() (like in kvm_release_page_dirty).
We can then teach the MMU to deal with hfn_t's that don't have a
corresponding page. IIUC, the implementation of something like
kvm_release_page_dirty is a nop for pfn's that don't have a
corresponding page. We just have to be able to detect a pfn_to_page()
failure and then assume we're dealing with IO memory.
Regards,
Anthony Liguori
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
next prev parent reply other threads:[~2008-04-01 20:04 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-01 11:52 [RFC] direct mmio for passthrough benami
2008-04-01 11:52 ` [PATCH 1/1] direct mmio for passthrough - kernel part benami
2008-04-01 13:30 ` Avi Kivity
2008-04-01 14:42 ` Anthony Liguori
2008-04-01 15:20 ` Anthony Liguori
2008-04-01 17:05 ` Avi Kivity
2008-04-01 18:18 ` Andrea Arcangeli
2008-04-01 18:28 ` Anthony Liguori
2008-04-01 17:03 ` Avi Kivity
2008-04-01 17:18 ` Daniel P. Berrange
2008-04-01 18:10 ` Andrea Arcangeli
2008-04-01 18:18 ` Daniel P. Berrange
2008-04-01 18:23 ` Anthony Liguori
2008-04-01 18:21 ` Anthony Liguori
2008-04-01 19:22 ` Avi Kivity
2008-04-01 22:38 ` Andrea Arcangeli
2008-04-01 22:22 ` Andrea Arcangeli
2008-04-01 22:29 ` Anthony Liguori
2008-04-02 4:00 ` Avi Kivity
2008-04-01 19:28 ` Ben-Ami Yassour1
2008-04-01 19:43 ` Avi Kivity
2008-04-01 20:04 ` Anthony Liguori [this message]
2008-04-02 4:32 ` Avi Kivity
2008-04-02 7:03 ` Andrea Arcangeli
2008-04-02 9:50 ` Avi Kivity
2008-04-02 10:28 ` Andrea Arcangeli
2008-04-02 10:59 ` Avi Kivity
2008-04-02 11:16 ` Avi Kivity
2008-04-02 11:50 ` Andrea Arcangeli
2008-04-02 11:53 ` Andrea Arcangeli
2008-04-03 8:51 ` Avi Kivity
2008-04-02 14:59 ` Anthony Liguori
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=47F2955B.6060200@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=BENAMI@il.ibm.com \
--cc=allen.m.kay@intel.com \
--cc=andrea@qumranet.com \
--cc=avi@qumranet.com \
--cc=kvm-devel@lists.sourceforge.net \
/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