All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@google.com>
To: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Cc: linux-s390@vger.kernel.org, mahesh@linux.vnet.ibm.com,
	heiko.carstens@de.ibm.com, linux-kernel@vger.kernel.org,
	ebiederm@xmission.com, schwidefsky@de.ibm.com,
	Andrew Morton <akpm@linux-foundation.org>,
	kexec@lists.infradead.org, vgoyal@redhat.com
Subject: Re: [patch v2 2/2] s390: Add architecture code for unmapping crashkernel memory
Date: Tue, 13 Sep 2011 14:52:18 -0700	[thread overview]
Message-ID: <20110913145218.659f9e21.akpm@google.com> (raw)
In-Reply-To: <20110913132654.157278466@linux.vnet.ibm.com>

On Tue, 13 Sep 2011 15:26:37 +0200
Michael Holzheu <holzheu@linux.vnet.ibm.com> wrote:

> From: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> 
> This patch implements the crash_map_pages() function for s390.
> KEXEC_CRASH_MEM_ALIGN is set to HPAGE_SIZE, in order to support
> kernel mappings that use large pages.
> 
> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> ---
>  arch/s390/include/asm/kexec.h    |    3 +++
>  arch/s390/kernel/machine_kexec.c |   31 +++++++++++++++++++++++++++++++
>  arch/s390/kernel/setup.c         |   10 ++++++----
>  3 files changed, 40 insertions(+), 4 deletions(-)
> 
> --- a/arch/s390/include/asm/kexec.h
> +++ b/arch/s390/include/asm/kexec.h
> @@ -36,6 +36,9 @@
>  /* Allocate one page for the pdp and the second for the code */
>  #define KEXEC_CONTROL_PAGE_SIZE 4096
>  
> +/* Alignment of crashkernel memory */
> +#define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE

Why not make this unconditional, for all architectures which support
hugepages?  ie:

#ifdef HPAGE_SIZE
#define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE
#else
#define KEXEC_CRASH_MEM_ALIGN PAGE_SIZE
#endif

in include/linux/kexec.h?

IOW, what are the compromises here?

Also, does s390 support CONFIG_HUGETLB_PAGE=n?  If so, does the use of
HPAGE_SIZE still make sense?  Does it compile?


>  /* The native architecture */
>  #define KEXEC_ARCH KEXEC_ARCH_S390
>  
> --- a/arch/s390/kernel/machine_kexec.c
> +++ b/arch/s390/kernel/machine_kexec.c
> @@ -243,6 +243,37 @@ static void __machine_kdump(void *image)
>  #endif
>  
>  /*
> + * Map or unmap crashkernel memory
> + */
> +static void crash_map_pages(int enable)
> +{
> +	unsigned long size = crashk_res.end - crashk_res.start + 1;

resource_size().

> +	BUG_ON(crashk_res.start % KEXEC_CRASH_MEM_ALIGN ||
> +	       size % KEXEC_CRASH_MEM_ALIGN);
> +	if (enable)
> +		vmem_add_mapping(crashk_res.start, size);
> +	else
> +		vmem_remove_mapping(crashk_res.start, size);
> +}
>
> ...
>

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@google.com>
To: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Cc: vgoyal@redhat.com, ebiederm@xmission.com,
	mahesh@linux.vnet.ibm.com, schwidefsky@de.ibm.com,
	heiko.carstens@de.ibm.com, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [patch v2 2/2] s390: Add architecture code for unmapping crashkernel memory
Date: Tue, 13 Sep 2011 14:52:18 -0700	[thread overview]
Message-ID: <20110913145218.659f9e21.akpm@google.com> (raw)
In-Reply-To: <20110913132654.157278466@linux.vnet.ibm.com>

On Tue, 13 Sep 2011 15:26:37 +0200
Michael Holzheu <holzheu@linux.vnet.ibm.com> wrote:

> From: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> 
> This patch implements the crash_map_pages() function for s390.
> KEXEC_CRASH_MEM_ALIGN is set to HPAGE_SIZE, in order to support
> kernel mappings that use large pages.
> 
> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
> ---
>  arch/s390/include/asm/kexec.h    |    3 +++
>  arch/s390/kernel/machine_kexec.c |   31 +++++++++++++++++++++++++++++++
>  arch/s390/kernel/setup.c         |   10 ++++++----
>  3 files changed, 40 insertions(+), 4 deletions(-)
> 
> --- a/arch/s390/include/asm/kexec.h
> +++ b/arch/s390/include/asm/kexec.h
> @@ -36,6 +36,9 @@
>  /* Allocate one page for the pdp and the second for the code */
>  #define KEXEC_CONTROL_PAGE_SIZE 4096
>  
> +/* Alignment of crashkernel memory */
> +#define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE

Why not make this unconditional, for all architectures which support
hugepages?  ie:

#ifdef HPAGE_SIZE
#define KEXEC_CRASH_MEM_ALIGN HPAGE_SIZE
#else
#define KEXEC_CRASH_MEM_ALIGN PAGE_SIZE
#endif

in include/linux/kexec.h?

IOW, what are the compromises here?

Also, does s390 support CONFIG_HUGETLB_PAGE=n?  If so, does the use of
HPAGE_SIZE still make sense?  Does it compile?


>  /* The native architecture */
>  #define KEXEC_ARCH KEXEC_ARCH_S390
>  
> --- a/arch/s390/kernel/machine_kexec.c
> +++ b/arch/s390/kernel/machine_kexec.c
> @@ -243,6 +243,37 @@ static void __machine_kdump(void *image)
>  #endif
>  
>  /*
> + * Map or unmap crashkernel memory
> + */
> +static void crash_map_pages(int enable)
> +{
> +	unsigned long size = crashk_res.end - crashk_res.start + 1;

resource_size().

> +	BUG_ON(crashk_res.start % KEXEC_CRASH_MEM_ALIGN ||
> +	       size % KEXEC_CRASH_MEM_ALIGN);
> +	if (enable)
> +		vmem_add_mapping(crashk_res.start, size);
> +	else
> +		vmem_remove_mapping(crashk_res.start, size);
> +}
>
> ...
>

  reply	other threads:[~2011-09-13 21:52 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-13 13:26 [patch v2 0/2] kdump: Allow removal of page tables for crashkernel memory Michael Holzheu
2011-09-13 13:26 ` Michael Holzheu
2011-09-13 13:26 ` [patch v2 1/2] kdump: Add infrastructure for unmapping " Michael Holzheu
2011-09-13 13:26   ` Michael Holzheu
2011-09-13 13:40   ` Vivek Goyal
2011-09-13 13:40     ` Vivek Goyal
2011-09-13 13:26 ` [patch v2 2/2] s390: Add architecture code " Michael Holzheu
2011-09-13 13:26   ` Michael Holzheu
2011-09-13 21:52   ` Andrew Morton [this message]
2011-09-13 21:52     ` Andrew Morton
2011-09-14  8:58     ` Michael Holzheu
2011-09-14  8:58       ` Michael Holzheu
2011-09-14 18:29       ` Vivek Goyal
2011-09-14 18:29         ` Vivek Goyal
2011-09-15  8:48         ` Michael Holzheu
2011-09-15  8:48           ` Michael Holzheu

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=20110913145218.659f9e21.akpm@google.com \
    --to=akpm@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=ebiederm@xmission.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=holzheu@linux.vnet.ibm.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mahesh@linux.vnet.ibm.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=vgoyal@redhat.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.