All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, Keir Fraser <keir@xen.org>,
	Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v3] xen: prevent PVH Dom0 from having pages with more than one ref
Date: Wed, 18 Jun 2014 12:20:44 +0100	[thread overview]
Message-ID: <53A1760C.1060606@citrix.com> (raw)
In-Reply-To: <1403090283-8858-1-git-send-email-roger.pau@citrix.com>

On 18/06/14 12:18, Roger Pau Monne wrote:
> On PV guests a reference is taken when a page gets added to the page
> tables, which makes pages added to the page tables have two
> references, but this is not suitable for PVH that doesn't use the
> PVMMU. In the PVH case only one reference has to be taken or else the
> page would not be freed when the memory of the domain is decreased.
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> Cc: Keir Fraser <keir@xen.org>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Mukesh Rathor <mukesh.rathor@oracle.com>

Looks much better!

Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>

> ---
> Changes since v2:
>  - Reword commit message.
>  - Add paging_mode_translate as a condition check to the already
>    exiting gate in the second instance.
>
> Changes since v1:
>  - Fix coding style.
>  - Fix a second occurrence of the same issue.
>  - Use paging_mode_translate instead of is_pvh_domain.
> ---
>  xen/arch/x86/domain_build.c |   13 ++++++++-----
>  1 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c
> index ba42fc9..6666093 100644
> --- a/xen/arch/x86/domain_build.c
> +++ b/xen/arch/x86/domain_build.c
> @@ -1137,10 +1137,13 @@ int __init construct_dom0(
>                                      L1_PROT : COMPAT_L1_PROT));
>          l1tab++;
>  
> -        page = mfn_to_page(mfn);
> -        if ( (page->u.inuse.type_info == 0) &&
> -             !get_page_and_type(page, d, PGT_writable_page) )
> -            BUG();
> +        if ( !paging_mode_translate(d) )
> +        {
> +            page = mfn_to_page(mfn);
> +            if ( (page->u.inuse.type_info == 0) &&
> +                 !get_page_and_type(page, d, PGT_writable_page) )
> +                BUG();
> +        }
>      }
>  
>      if ( is_pv_32on64_domain(d) )
> @@ -1300,7 +1303,7 @@ int __init construct_dom0(
>          if ( get_gpfn_from_mfn(mfn) >= count )
>          {
>              BUG_ON(is_pv_32bit_domain(d));
> -            if ( !page->u.inuse.type_info &&
> +            if ( !paging_mode_translate(d) && !page->u.inuse.type_info &&
>                   !get_page_and_type(page, d, PGT_writable_page) )
>                  BUG();
>  


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

      reply	other threads:[~2014-06-18 11:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-18 11:18 [PATCH v3] xen: prevent PVH Dom0 from having pages with more than one ref Roger Pau Monne
2014-06-18 11:20 ` Andrew Cooper [this message]

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=53A1760C.1060606@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=keir@xen.org \
    --cc=roger.pau@citrix.com \
    --cc=xen-devel@lists.xenproject.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.