All of lore.kernel.org
 help / color / mirror / Atom feed
From: Haozhong Zhang <haozhong.zhang@intel.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: KVM list <kvm@vger.kernel.org>, X86 ML <x86@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	rkrcmar@redhat.com, Xiao Guangrong <xiaoguangrong.eric@gmail.com>,
	"Cuevas Escareno, Ivan D" <ivan.d.cuevas.escareno@intel.com>,
	"Kumar, Karthik" <karthik.kumar@intel.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Olif Chapman <olif.chapman@oracle.com>,
	Mikulas Patocka <mpatocka@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Borislav Petkov <bp@suse.de>,
	Tom Lendacky <thomas.lendacky@amd.com>
Subject: Re: [PATCH v5 1/2] x86/mm: add a function to check if a pfn is UC/UC-
Date: Thu, 16 Nov 2017 14:13:00 +0800	[thread overview]
Message-ID: <20171116061300.52vlwdoxmf6l4mqh@hz-desktop> (raw)
In-Reply-To: <CAPcyv4iB73a1FNSzUdes94SxoELJmEteDeewjxW86D0akeOjaA@mail.gmail.com>

On 11/15/17 07:17 -0800, Dan Williams wrote:
> On Tue, Nov 7, 2017 at 11:56 PM, Haozhong Zhang
> <haozhong.zhang@intel.com> wrote:
> > It will be used by KVM to check whether a pfn should be
> > mapped to guest as UC.
> >
> > Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
> > ---
> >  arch/x86/include/asm/pat.h |  2 ++
> >  arch/x86/mm/pat.c          | 16 ++++++++++++++++
> >  2 files changed, 18 insertions(+)
> >
> > diff --git a/arch/x86/include/asm/pat.h b/arch/x86/include/asm/pat.h
> > index fffb2794dd89..fabb0cf00e77 100644
> > --- a/arch/x86/include/asm/pat.h
> > +++ b/arch/x86/include/asm/pat.h
> > @@ -21,4 +21,6 @@ int io_reserve_memtype(resource_size_t start, resource_size_t end,
> >
> >  void io_free_memtype(resource_size_t start, resource_size_t end);
> >
> > +bool pat_pfn_is_uc_or_uc_minus(unsigned long pfn);
> > +
> >  #endif /* _ASM_X86_PAT_H */
> > diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
> > index fe7d57a8fb60..e1282dd4eeb8 100644
> > --- a/arch/x86/mm/pat.c
> > +++ b/arch/x86/mm/pat.c
> > @@ -677,6 +677,22 @@ static enum page_cache_mode lookup_memtype(u64 paddr)
> >         return rettype;
> >  }
> >
> > +/**
> > + * Check with PAT whether the memory type of a pfn is UC or UC-.
> > + *
> > + * Only to be called when PAT is enabled.
> > + *
> > + * Returns true, if the memory type of @pfn is UC or UC-.
> > + * Otherwise, returns false.
> > + */
> > +bool pat_pfn_is_uc_or_uc_minus(unsigned long pfn)
> > +{
> > +       enum page_cache_mode cm = lookup_memtype(PFN_PHYS(pfn));
> > +
> > +       return cm == _PAGE_CACHE_MODE_UC || cm == _PAGE_CACHE_MODE_UC_MINUS;
> > +}
> > +EXPORT_SYMBOL_GPL(pat_pfn_is_uc_or_uc_minus);
> 
> Why do we need this strangely named new accessor? It seems to be
> open-coding a new / more limited version of track_pfn_insert().

In the first version patchset, KVM did extract and check the cache
mode got from track_pfn_insert(), but Ingo thought it was better to
keep all the low-level details out of KVM, so I encapsulated them in a
function in mm in subsequent versions.

Haozhong

  reply	other threads:[~2017-11-16  6:12 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-08  7:56 [PATCH v5 0/2] KVM: MMU: fix kvm_is_mmio_pfn() Haozhong Zhang
2017-11-08  7:56 ` [PATCH v5 1/2] x86/mm: add a function to check if a pfn is UC/UC- Haozhong Zhang
2017-11-15 10:44   ` David Hildenbrand
2017-11-16  7:08     ` Haozhong Zhang
2017-11-15 15:17   ` Dan Williams
2017-11-16  6:13     ` Haozhong Zhang [this message]
2017-12-18 12:55   ` Paolo Bonzini
2017-12-19  2:40     ` Haozhong Zhang
2017-12-19 10:42       ` Paolo Bonzini
2017-11-08  7:56 ` [PATCH v5 2/2] KVM: MMU: consider host cache mode in MMIO page check Haozhong Zhang
2017-12-15  9:14   ` Paolo Bonzini
2017-11-08  9:19 ` [PATCH v5 0/2] KVM: MMU: fix kvm_is_mmio_pfn() Xiao Guangrong

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=20171116061300.52vlwdoxmf6l4mqh@hz-desktop \
    --to=haozhong.zhang@intel.com \
    --cc=bp@suse.de \
    --cc=dan.j.williams@intel.com \
    --cc=hpa@zytor.com \
    --cc=ivan.d.cuevas.escareno@intel.com \
    --cc=karthik.kumar@intel.com \
    --cc=konrad.wilk@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mpatocka@redhat.com \
    --cc=olif.chapman@oracle.com \
    --cc=pbonzini@redhat.com \
    --cc=rkrcmar@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=x86@kernel.org \
    --cc=xiaoguangrong.eric@gmail.com \
    /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.