All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@qumranet.com>
To: benami@il.ibm.com
Cc: kvm-devel@lists.sourceforge.net, andrea@qumranet.com,
	allen.m.kay@intel.com
Subject: Re: [PATCH 1/1] Enble a guest to access a device's memory mapped I/O regions directly.
Date: Fri, 18 Apr 2008 18:50:03 +0300	[thread overview]
Message-ID: <4808C32B.2030307@qumranet.com> (raw)
In-Reply-To: <1208352331-27201-2-git-send-email-benami@il.ibm.com>

benami@il.ibm.com wrote:
> From: Ben-Ami Yassour <benami@il.ibm.com>
>
> Signed-off-by: Ben-Ami Yassour <benami@il.ibm.com>
> Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
> ---
>  arch/x86/kvm/mmu.c         |   59 +++++++++++++++++++++++++++++--------------
>  arch/x86/kvm/paging_tmpl.h |   19 +++++++++----
>  include/linux/kvm_host.h   |    2 +-
>  virt/kvm/kvm_main.c        |   17 +++++++++++-
>  4 files changed, 69 insertions(+), 28 deletions(-)
>
> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> index 078a7f1..c89029d 100644
> --- a/arch/x86/kvm/mmu.c
> +++ b/arch/x86/kvm/mmu.c
> @@ -112,6 +112,8 @@ static int dbg = 1;
>  #define PT_FIRST_AVAIL_BITS_SHIFT 9
>  #define PT64_SECOND_AVAIL_BITS_SHIFT 52
>  
> +#define PT_SHADOW_IO_MARK (1ULL << PT_FIRST_AVAIL_BITS_SHIFT)
> +
>   

Please rename this PT_SHADOW_MMIO_MASK.


>  #define VALID_PAGE(x) ((x) != INVALID_PAGE)
>  
>  #define PT64_LEVEL_BITS 9
> @@ -237,6 +239,9 @@ static int is_dirty_pte(unsigned long pte)
>  
>  static int is_rmap_pte(u64 pte)
>  {
> +	if (pte & PT_SHADOW_IO_MARK)
> +		return false;
> +
>  	return is_shadow_present_pte(pte);
>  }
>   

Why avoid rmap on mmio pages?  Sure it's unnecessary work, but having 
less cases improves overall reliability.

You can use pfn_valid() in gfn_to_pfn() and kvm_release_pfn_*() to 
conditionally update the page refcounts.

-- 
Any sufficiently difficult bug is indistinguishable from a feature.


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone

  parent reply	other threads:[~2008-04-18 15:50 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-16 13:25 direct mmio for passthrough - kernel part benami
2008-04-16 13:25 ` [PATCH 1/1] Enble a guest to access a device's memory mapped I/O regions directly benami
2008-04-16 13:25   ` benami
2008-04-18 15:50   ` Avi Kivity [this message]
2008-04-19 14:35     ` Muli Ben-Yehuda
2008-04-20 10:29       ` Avi Kivity
2008-04-18 16:02 ` direct mmio for passthrough - kernel part Avi Kivity
  -- strict thread matches above, loose matches on Subject: below --
2008-04-16 13:26 [PATCH 1/1] Enble a guest to access a device's memory mapped I/O regions directly benami
2008-04-16 13:26 ` benami
2008-04-18 15:56 ` Avi Kivity
2008-04-19 14:56   ` Muli Ben-Yehuda

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=4808C32B.2030307@qumranet.com \
    --to=avi@qumranet.com \
    --cc=allen.m.kay@intel.com \
    --cc=andrea@qumranet.com \
    --cc=benami@il.ibm.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 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.