linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Michael Ellerman <mpe@ellerman.id.au>, linuxppc-dev@ozlabs.org
Cc: anton@samba.org
Subject: Re: [PATCH 1/3] powerpc/mm/book3s64: Make KERN_IO_START a variable
Date: Wed, 02 Aug 2017 13:50:40 +0530	[thread overview]
Message-ID: <871sou1iuf.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <1501583364-14909-1-git-send-email-mpe@ellerman.id.au>

Michael Ellerman <mpe@ellerman.id.au> writes:

> Currently KERN_IO_START is defined as:
>
>  #define KERN_IO_START  (KERN_VIRT_START + (KERN_VIRT_SIZE >> 1))
>
> Although it looks like a constant, both the components are actually
> variables, to allow us to have a different value between Radix and
> Hash with a single kernel.
>
> However that still requires both Radix and Hash to place the kernel IO
> region at the same location relative to the start and end of the
> kernel virtual region (namely 1/2 way through it), and we'd like to
> change that.
>
> So split KERN_IO_START out into its own variable, and initialise it
> for Radix and Hash. In the medium term we should be able to
> reconsolidate this, by doing a more involved rearrangement of the
> location of the regions.
>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> ---
>  arch/powerpc/include/asm/book3s/64/hash.h    | 2 ++
>  arch/powerpc/include/asm/book3s/64/pgtable.h | 3 ++-
>  arch/powerpc/include/asm/book3s/64/radix.h   | 2 ++
>  arch/powerpc/mm/hash_utils_64.c              | 1 +
>  arch/powerpc/mm/pgtable-radix.c              | 1 +
>  arch/powerpc/mm/pgtable_64.c                 | 2 ++
>  6 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/include/asm/book3s/64/hash.h b/arch/powerpc/include/asm/book3s/64/hash.h
> index 36fc7bfe9e11..d613653ed5b9 100644
> --- a/arch/powerpc/include/asm/book3s/64/hash.h
> +++ b/arch/powerpc/include/asm/book3s/64/hash.h
> @@ -51,6 +51,8 @@
>  #define H_VMALLOC_SIZE	(H_KERN_VIRT_SIZE >> 1)
>  #define H_VMALLOC_END	(H_VMALLOC_START + H_VMALLOC_SIZE)
>
> +#define H_KERN_IO_START	H_VMALLOC_END
> +
>  /*
>   * Region IDs
>   */
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index d1da415e283c..18a8580d3ddc 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -272,8 +272,10 @@ extern unsigned long __vmalloc_end;
>
>  extern unsigned long __kernel_virt_start;
>  extern unsigned long __kernel_virt_size;
> +extern unsigned long __kernel_io_start;
>  #define KERN_VIRT_START __kernel_virt_start
>  #define KERN_VIRT_SIZE  __kernel_virt_size
> +#define KERN_IO_START  __kernel_io_start
>  extern struct page *vmemmap;
>  extern unsigned long ioremap_bot;
>  extern unsigned long pci_io_base;
> @@ -298,7 +300,6 @@ extern unsigned long pci_io_base;
>   *  PHB_IO_BASE = ISA_IO_BASE + 64K to ISA_IO_BASE + 2G, PHB IO spaces
>   * IOREMAP_BASE = ISA_IO_BASE + 2G to VMALLOC_START + PGTABLE_RANGE
>   */
> -#define KERN_IO_START	(KERN_VIRT_START + (KERN_VIRT_SIZE >> 1))
>  #define FULL_IO_SIZE	0x80000000ul
>  #define  ISA_IO_BASE	(KERN_IO_START)
>  #define  ISA_IO_END	(KERN_IO_START + 0x10000ul)
> diff --git a/arch/powerpc/include/asm/book3s/64/radix.h b/arch/powerpc/include/asm/book3s/64/radix.h
> index 544440b5aff3..1e5ba94e62ef 100644
> --- a/arch/powerpc/include/asm/book3s/64/radix.h
> +++ b/arch/powerpc/include/asm/book3s/64/radix.h
> @@ -110,6 +110,8 @@
>   */
>  #define RADIX_VMEMMAP_BASE		(RADIX_VMALLOC_END)
>
> +#define RADIX_KERN_IO_START	(RADIX_KERN_VIRT_START + (RADIX_KERN_VIRT_SIZE >> 1))
> +
>  #ifndef __ASSEMBLY__
>  #define RADIX_PTE_TABLE_SIZE	(sizeof(pte_t) << RADIX_PTE_INDEX_SIZE)
>  #define RADIX_PMD_TABLE_SIZE	(sizeof(pmd_t) << RADIX_PMD_INDEX_SIZE)
> diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
> index 7419fc1854ad..a93137c358ea 100644
> --- a/arch/powerpc/mm/hash_utils_64.c
> +++ b/arch/powerpc/mm/hash_utils_64.c
> @@ -1019,6 +1019,7 @@ void __init hash__early_init_mmu(void)
>  	__kernel_virt_size = H_KERN_VIRT_SIZE;
>  	__vmalloc_start = H_VMALLOC_START;
>  	__vmalloc_end = H_VMALLOC_END;
> +	__kernel_io_start = H_KERN_IO_START;
>  	vmemmap = (struct page *)H_VMEMMAP_BASE;
>  	ioremap_bot = IOREMAP_BASE;
>
> diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
> index 5cc50d47ce3f..d37e68495acc 100644
> --- a/arch/powerpc/mm/pgtable-radix.c
> +++ b/arch/powerpc/mm/pgtable-radix.c
> @@ -494,6 +494,7 @@ void __init radix__early_init_mmu(void)
>  	__kernel_virt_size = RADIX_KERN_VIRT_SIZE;
>  	__vmalloc_start = RADIX_VMALLOC_START;
>  	__vmalloc_end = RADIX_VMALLOC_END;
> +	__kernel_io_start = RADIX_KERN_IO_START;
>  	vmemmap = (struct page *)RADIX_VMEMMAP_BASE;
>  	ioremap_bot = IOREMAP_BASE;
>
> diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
> index 0736e94c7615..ac0717a90ca6 100644
> --- a/arch/powerpc/mm/pgtable_64.c
> +++ b/arch/powerpc/mm/pgtable_64.c
> @@ -104,6 +104,8 @@ unsigned long __vmalloc_start;
>  EXPORT_SYMBOL(__vmalloc_start);
>  unsigned long __vmalloc_end;
>  EXPORT_SYMBOL(__vmalloc_end);
> +unsigned long __kernel_io_start;
> +EXPORT_SYMBOL(__kernel_io_start);
>  struct page *vmemmap;
>  EXPORT_SYMBOL(vmemmap);
>  unsigned long __pte_frag_nr;
> -- 
> 2.7.4

  parent reply	other threads:[~2017-08-02  8:22 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-01 10:29 [PATCH 1/3] powerpc/mm/book3s64: Make KERN_IO_START a variable Michael Ellerman
2017-08-01 10:29 ` [PATCH 2/3] powerpc/mm/slb: Move comment next to the code it's referring to Michael Ellerman
2017-08-02  8:21   ` Aneesh Kumar K.V
2017-08-01 10:29 ` [PATCH 3/3] powerpc/mm/hash64: Make vmalloc 56T on hash Michael Ellerman
2017-08-02  8:19   ` Aneesh Kumar K.V
2017-08-03  0:00     ` Michael Ellerman
2017-08-02  8:20 ` Aneesh Kumar K.V [this message]
2017-08-02 22:20 ` [PATCH 1/3] powerpc/mm/book3s64: Make KERN_IO_START a variable Balbir Singh
2017-08-08 10:55 ` [1/3] " Michael Ellerman

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=871sou1iuf.fsf@linux.vnet.ibm.com \
    --to=aneesh.kumar@linux.vnet.ibm.com \
    --cc=anton@samba.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=mpe@ellerman.id.au \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).