All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Juergen Gross <jgross@suse.com>
Cc: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com,
	david.vrabel@citrix.com, boris.ostrovsky@oracle.com,
	x86@kernel.org, tglx@linutronix.de, mingo@redhat.com,
	hpa@zytor.com
Subject: Re: [PATCH V3 5/8] x86: Introduce function to get pmd entry pointer
Date: Wed, 12 Nov 2014 17:12:04 -0500	[thread overview]
Message-ID: <20141112221204.GD7549@laptop.dumpdata.com> (raw)
In-Reply-To: <1415684626-18590-6-git-send-email-jgross@suse.com>

On Tue, Nov 11, 2014 at 06:43:43AM +0100, Juergen Gross wrote:
> Introduces lookup_pmd_address() to get the address of the pmd entry
> related to a virtual address in the current address space. This
> function is needed for support of a virtual mapped sparse p2m list
> in xen pv domains.
>
What is wrong with using 'lookup_address' ?
 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  arch/x86/include/asm/pgtable_types.h |  1 +
>  arch/x86/mm/pageattr.c               | 20 ++++++++++++++++++++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
> index 0778964..d83f5e7 100644
> --- a/arch/x86/include/asm/pgtable_types.h
> +++ b/arch/x86/include/asm/pgtable_types.h
> @@ -396,6 +396,7 @@ static inline void update_page_count(int level, unsigned long pages) { }
>  extern pte_t *lookup_address(unsigned long address, unsigned int *level);
>  extern pte_t *lookup_address_in_pgd(pgd_t *pgd, unsigned long address,
>  				    unsigned int *level);
> +extern pmd_t *lookup_pmd_address(unsigned long address);
>  extern phys_addr_t slow_virt_to_phys(void *__address);
>  extern int kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address,
>  				   unsigned numpages, unsigned long page_flags);
> diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
> index 36de293..1298108 100644
> --- a/arch/x86/mm/pageattr.c
> +++ b/arch/x86/mm/pageattr.c
> @@ -384,6 +384,26 @@ static pte_t *_lookup_address_cpa(struct cpa_data *cpa, unsigned long address,
>  }
>  
>  /*
> + * Lookup the PMD entry for a virtual address. Return a pointer to the entry
> + * or NULL if not present.
> + */
> +pmd_t *lookup_pmd_address(unsigned long address)
> +{
> +	pgd_t *pgd;
> +	pud_t *pud;
> +
> +	pgd = pgd_offset_k(address);
> +	if (pgd_none(*pgd))
> +		return NULL;
> +
> +	pud = pud_offset(pgd, address);
> +	if (pud_none(*pud) || pud_large(*pud) || !pud_present(*pud))
> +		return NULL;
> +
> +	return pmd_offset(pud, address);
> +}
> +
> +/*
>   * This is necessary because __pa() does not work on some
>   * kinds of memory, like vmalloc() or the alloc_remap()
>   * areas on 32-bit NUMA systems.  The percpu areas can
> -- 
> 2.1.2
> 

  reply	other threads:[~2014-11-12 22:12 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-11  5:43 [PATCH V3 0/8] xen: Switch to virtual mapped linear p2m list Juergen Gross
2014-11-11  5:43 ` [PATCH V3 1/8] xen: Make functions static Juergen Gross
2014-11-11 10:21   ` [Xen-devel] " David Vrabel
2014-11-11 10:21     ` David Vrabel
2014-11-11 10:36     ` Juergen Gross
2014-11-11 10:50       ` David Vrabel
2014-11-11 10:50         ` David Vrabel
2014-11-11 10:55         ` Jürgen Groß
2014-11-11  5:43 ` [PATCH V3 2/8] xen: Delay remapping memory of pv-domain Juergen Gross
2014-11-11 11:45   ` [Xen-devel] " Andrew Cooper
2014-11-11 11:45     ` Andrew Cooper
2014-11-11 12:03     ` Juergen Gross
2014-11-12 21:45   ` Konrad Rzeszutek Wilk
2014-11-13  6:23     ` Juergen Gross
2014-11-13 19:56       ` Konrad Rzeszutek Wilk
2014-11-14  4:53         ` Juergen Gross
2014-11-14 11:16           ` [Xen-devel] " David Vrabel
2014-11-14 11:16             ` David Vrabel
2014-11-14 16:47           ` Konrad Rzeszutek Wilk
2014-11-14 17:14             ` Juergen Gross
2014-11-19 19:43               ` Konrad Rzeszutek Wilk
2014-11-20  4:59                 ` Juergen Gross
2014-11-11  5:43 ` [PATCH V3 3/8] xen: Delay m2p_override initialization Juergen Gross
2014-11-11 10:29   ` [Xen-devel] " David Vrabel
2014-11-11 10:29     ` David Vrabel
2014-11-12 18:35     ` Konrad Rzeszutek Wilk
2014-11-11  5:43 ` [PATCH V3 4/8] xen: Delay invalidating extra memory Juergen Gross
2014-11-12 22:10   ` Konrad Rzeszutek Wilk
2014-11-13  6:49     ` Juergen Gross
2014-11-13 19:56       ` Konrad Rzeszutek Wilk
2014-11-11  5:43 ` [PATCH V3 5/8] x86: Introduce function to get pmd entry pointer Juergen Gross
2014-11-12 22:12   ` Konrad Rzeszutek Wilk [this message]
2014-11-13  6:54     ` Juergen Gross
2014-11-13 20:01       ` Konrad Rzeszutek Wilk
2014-11-13 20:01         ` Konrad Rzeszutek Wilk
2014-11-11  5:43 ` [PATCH V3 6/8] xen: Hide get_phys_to_machine() to be able to tune common path Juergen Gross
2014-11-11 17:38   ` [Xen-devel] " David Vrabel
2014-11-11 17:38     ` David Vrabel
2014-11-12 22:18   ` Konrad Rzeszutek Wilk
2014-11-13  9:15     ` Juergen Gross
2014-11-13 13:51       ` Konrad Rzeszutek Wilk
2014-11-11  5:43 ` [PATCH V3 7/8] xen: switch to linear virtual mapped sparse p2m list Juergen Gross
2014-11-11 17:47   ` [Xen-devel] " David Vrabel
2014-11-11 17:47     ` David Vrabel
2014-11-13  9:21     ` Juergen Gross
2014-11-14 11:58       ` David Vrabel
2014-11-14 11:58         ` David Vrabel
2014-11-14 12:42         ` Juergen Gross
2014-11-19 20:38       ` Konrad Rzeszutek Wilk
2014-11-19 20:37   ` Konrad Rzeszutek Wilk
2014-11-11  5:43 ` [PATCH V3 8/8] xen: Speed up set_phys_to_machine() by using read-only mappings Juergen Gross
2014-11-11 17:48   ` [Xen-devel] " David Vrabel
2014-11-11 17:48     ` David Vrabel
2014-11-19 20:39   ` Konrad Rzeszutek Wilk
2014-11-19 20:41 ` [PATCH V3 0/8] xen: Switch to virtual mapped linear p2m list Konrad Rzeszutek Wilk
2014-11-20  5:08   ` Juergen Gross
2014-11-20  5:08     ` Juergen Gross

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=20141112221204.GD7549@laptop.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=hpa@zytor.com \
    --cc=jgross@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xensource.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.