All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roger Pau Monne <roger.pau@citrix.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH] x86/hap: use the right cache attributes when MTRR is disabled
Date: Tue, 2 Aug 2016 13:25:53 +0200	[thread overview]
Message-ID: <20160802112553.jca42g57o4jsedrg@mac> (raw)
In-Reply-To: <579F8804020000780010167D@prv-mh.provo.novell.com>

On Mon, Aug 01, 2016 at 09:33:56AM -0600, Jan Beulich wrote:
> >>> On 26.07.16 at 18:15, <roger.pau@citrix.com> wrote:
> > --- a/xen/arch/x86/hvm/mtrr.c
> > +++ b/xen/arch/x86/hvm/mtrr.c
> > @@ -814,10 +814,17 @@ int epte_get_entry_emt(struct domain *d, unsigned long gfn, mfn_t mfn,
> >      if ( gmtrr_mtype == -EADDRNOTAVAIL )
> >          return -1;
> >  
> > -    gmtrr_mtype = is_hvm_domain(d) && v ?
> 
> Where did the is_hvm_domain() go? Let's not break PVHv1 just yet.

Hm, TBH I don't see why this is needed, AFAICT PVHv1 guests will never have 
MTRR enabled, so they will just go into the MTRR_TYPE_WRBACK case.

> > -                  get_mtrr_type(&v->arch.hvm_vcpu.mtrr,
> > -                                gfn << PAGE_SHIFT, order) :
> > -                  MTRR_TYPE_WRBACK;
> > +    if ( v && v->arch.hvm_vcpu.mtrr.enabled )
> > +        /* MTRR is enabled, use MTRR */
> > +        gmtrr_mtype = get_mtrr_type(&v->arch.hvm_vcpu.mtrr, gfn << PAGE_SHIFT,
> > +                                    order);
> > +    else if ( v && !hvm_paging_enabled(v) )
> > +        /* MTRR is not enabled and paging is disabled, force UC */
> > +        gmtrr_mtype = MTRR_TYPE_UNCACHABLE;
> > +    else
> > +        /* MTRR is not enabled and paging is enabled, use PAT */
> > +        gmtrr_mtype = MTRR_TYPE_WRBACK;
> 
> I think this would then better be
> 
>     if ( v )

Aren't all guests going to fall into this case, and thus MTRR_TYPE_WRBACK is 
going to be returned without even checking if the guest has MTRR enabled or 
not? Do you mean "if ( !v )" instead?

>         gmtrr_mtype = MTRR_TYPE_WRBACK;
>     else if ( v->arch.hvm_vcpu.mtrr.enabled )
>         /* MTRR is enabled, use MTRR */
>         gmtrr_mtype = get_mtrr_type(&v->arch.hvm_vcpu.mtrr, gfn << PAGE_SHIFT,
>                                     order);
>     else if ( !hvm_paging_enabled(v) )
>         /* MTRR is not enabled and paging is disabled, force UC */
>         gmtrr_mtype = MTRR_TYPE_UNCACHABLE;
>     else
>         /* MTRR is not enabled and paging is enabled, use PAT */
>         gmtrr_mtype = MTRR_TYPE_WRBACK;
> 
> albeit even then using vCPU 0 feels wrong when d != current->domain.
> Plus v->arch.hvm_vcpu.mtrr.enabled isn't really a boolean, so I think
> its use also needs refining.

Yes, I've realized that the check against v->arch.hvm_vcpu.mtrr.enabled is 
wrong, I will change it, but I'm not sure how to fix the d != 
current->domain comments that you mention.

> And finally please fix the comment style.

Right, thanks for the review.

Roger.

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

  reply	other threads:[~2016-08-02 11:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-26 16:15 [PATCH] x86/hap: use the right cache attributes when MTRR is disabled Roger Pau Monne
2016-08-01 15:33 ` Jan Beulich
2016-08-02 11:25   ` Roger Pau Monne [this message]
2016-08-02 11:54     ` Jan Beulich

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=20160802112553.jca42g57o4jsedrg@mac \
    --to=roger.pau@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=andrew.cooper3@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.