All of lore.kernel.org
 help / color / mirror / Atom feed
From: cyril@ti.com (Cyril Chemparathy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 16/22] ARM: mm: cleanup checks for membank overlap with vmalloc area
Date: Mon, 10 Sep 2012 13:43:23 -0400	[thread overview]
Message-ID: <504E26BB.4020205@ti.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1208120034220.5231@xanadu.home>

On 8/12/2012 12:36 AM, Nicolas Pitre wrote:
> On Fri, 10 Aug 2012, Cyril Chemparathy wrote:
>
>> On Keystone platforms, physical memory is entirely outside the 32-bit
>> addressible range.  Therefore, the (bank->start > ULONG_MAX) check below marks
>> the entire system memory as highmem, and this causes unpleasentness all over.
>>
>> This patch eliminates the extra bank start check (against ULONG_MAX) by
>> checking bank->start against the physical address corresponding to vmalloc_min
>> instead.
>>
>> In the process, this patch also cleans up parts of the highmem sanity check
>> code by removing what has now become a redundant check for banks that entirely
>> overlap with the vmalloc range.
>
> Are you sure of this?  The code that you removed not only checks for
> banks that fall into the vmalloc area, but it also skipp them.  This is
> now lost.
>

I almost missed out on this email...

The check is not quite lost, we still have the following in the 
!CONFIG_HIGHMEM block:

	if (highmem) {
		printk(...);
		continue;
	}

The change is that highmem is now set outside the #ifdef when 
(bank->start >= vmalloc_limit), and therefore the check is truly redundant.

>> Signed-off-by: Cyril Chemparathy <cyril@ti.com>
>> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
>> ---
>>   arch/arm/mm/mmu.c |   19 +------------------
>>   1 file changed, 1 insertion(+), 18 deletions(-)
>>
>> diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
>> index f764c03..3d685c6 100644
>> --- a/arch/arm/mm/mmu.c
>> +++ b/arch/arm/mm/mmu.c
>> @@ -901,15 +901,12 @@ void __init sanity_check_meminfo(void)
>>   		struct membank *bank = &meminfo.bank[j];
>>   		*bank = meminfo.bank[i];
>>
>> -		if (bank->start > ULONG_MAX)
>> -			highmem = 1;
>> -
>> -#ifdef CONFIG_HIGHMEM
>>   		if (bank->start >= vmalloc_limit)
>>   			highmem = 1;
>>
>>   		bank->highmem = highmem;
>>
>> +#ifdef CONFIG_HIGHMEM
>>   		/*
>>   		 * Split those memory banks which are partially overlapping
>>   		 * the vmalloc area greatly simplifying things later.
>> @@ -932,8 +929,6 @@ void __init sanity_check_meminfo(void)
>>   			bank->size = vmalloc_limit - bank->start;
>>   		}
>>   #else
>> -		bank->highmem = highmem;
>> -
>>   		/*
>>   		 * Highmem banks not allowed with !CONFIG_HIGHMEM.
>>   		 */
>> @@ -946,18 +941,6 @@ void __init sanity_check_meminfo(void)
>>   		}
>>
>>   		/*
>> -		 * Check whether this memory bank would entirely overlap
>> -		 * the vmalloc area.
>> -		 */
>> -		if (bank->start >= vmalloc_limit) {
>> -			printk(KERN_NOTICE "Ignoring RAM at %.8llx-%.8llx "
>> -			       "(vmalloc region overlap).\n",
>> -			       (unsigned long long)bank->start,
>> -			       (unsigned long long)bank->start + bank->size - 1);
>> -			continue;
>> -		}
>> -
>> -		/*
>>   		 * Check whether this memory bank would partially overlap
>>   		 * the vmalloc area.
>>   		 */
>> --
>> 1.7.9.5
>>

-- 
Thanks
- Cyril

WARNING: multiple messages have this Message-ID (diff)
From: Cyril Chemparathy <cyril@ti.com>
To: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <arnd@arndb.de>,
	<catalin.marinas@arm.com>, <grant.likely@secretlab.ca>,
	<linux@arm.linux.org.uk>, <will.deacon@arm.com>,
	Vitaly Andrianov <vitalya@ti.com>
Subject: Re: [PATCH v2 16/22] ARM: mm: cleanup checks for membank overlap with vmalloc area
Date: Mon, 10 Sep 2012 13:43:23 -0400	[thread overview]
Message-ID: <504E26BB.4020205@ti.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1208120034220.5231@xanadu.home>

On 8/12/2012 12:36 AM, Nicolas Pitre wrote:
> On Fri, 10 Aug 2012, Cyril Chemparathy wrote:
>
>> On Keystone platforms, physical memory is entirely outside the 32-bit
>> addressible range.  Therefore, the (bank->start > ULONG_MAX) check below marks
>> the entire system memory as highmem, and this causes unpleasentness all over.
>>
>> This patch eliminates the extra bank start check (against ULONG_MAX) by
>> checking bank->start against the physical address corresponding to vmalloc_min
>> instead.
>>
>> In the process, this patch also cleans up parts of the highmem sanity check
>> code by removing what has now become a redundant check for banks that entirely
>> overlap with the vmalloc range.
>
> Are you sure of this?  The code that you removed not only checks for
> banks that fall into the vmalloc area, but it also skipp them.  This is
> now lost.
>

I almost missed out on this email...

The check is not quite lost, we still have the following in the 
!CONFIG_HIGHMEM block:

	if (highmem) {
		printk(...);
		continue;
	}

The change is that highmem is now set outside the #ifdef when 
(bank->start >= vmalloc_limit), and therefore the check is truly redundant.

>> Signed-off-by: Cyril Chemparathy <cyril@ti.com>
>> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
>> ---
>>   arch/arm/mm/mmu.c |   19 +------------------
>>   1 file changed, 1 insertion(+), 18 deletions(-)
>>
>> diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
>> index f764c03..3d685c6 100644
>> --- a/arch/arm/mm/mmu.c
>> +++ b/arch/arm/mm/mmu.c
>> @@ -901,15 +901,12 @@ void __init sanity_check_meminfo(void)
>>   		struct membank *bank = &meminfo.bank[j];
>>   		*bank = meminfo.bank[i];
>>
>> -		if (bank->start > ULONG_MAX)
>> -			highmem = 1;
>> -
>> -#ifdef CONFIG_HIGHMEM
>>   		if (bank->start >= vmalloc_limit)
>>   			highmem = 1;
>>
>>   		bank->highmem = highmem;
>>
>> +#ifdef CONFIG_HIGHMEM
>>   		/*
>>   		 * Split those memory banks which are partially overlapping
>>   		 * the vmalloc area greatly simplifying things later.
>> @@ -932,8 +929,6 @@ void __init sanity_check_meminfo(void)
>>   			bank->size = vmalloc_limit - bank->start;
>>   		}
>>   #else
>> -		bank->highmem = highmem;
>> -
>>   		/*
>>   		 * Highmem banks not allowed with !CONFIG_HIGHMEM.
>>   		 */
>> @@ -946,18 +941,6 @@ void __init sanity_check_meminfo(void)
>>   		}
>>
>>   		/*
>> -		 * Check whether this memory bank would entirely overlap
>> -		 * the vmalloc area.
>> -		 */
>> -		if (bank->start >= vmalloc_limit) {
>> -			printk(KERN_NOTICE "Ignoring RAM at %.8llx-%.8llx "
>> -			       "(vmalloc region overlap).\n",
>> -			       (unsigned long long)bank->start,
>> -			       (unsigned long long)bank->start + bank->size - 1);
>> -			continue;
>> -		}
>> -
>> -		/*
>>   		 * Check whether this memory bank would partially overlap
>>   		 * the vmalloc area.
>>   		 */
>> --
>> 1.7.9.5
>>

-- 
Thanks
- Cyril

  reply	other threads:[~2012-09-10 17:43 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-11  1:24 [PATCH v2 00/22] Introducing the TI Keystone platform Cyril Chemparathy
2012-08-11  1:24 ` Cyril Chemparathy
2012-08-11  1:24 ` [PATCH v2 01/22] ARM: add mechanism for late code patching Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  2:22   ` Nicolas Pitre
2012-08-12  2:22     ` Nicolas Pitre
2012-08-12 18:13     ` Cyril Chemparathy
2012-08-12 18:13       ` Cyril Chemparathy
2012-08-11  1:24 ` [PATCH v2 02/22] ARM: add self test for runtime patch mechanism Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  2:35   ` Nicolas Pitre
2012-08-12  2:35     ` Nicolas Pitre
2012-08-12 16:32     ` Cyril Chemparathy
2012-08-12 16:32       ` Cyril Chemparathy
2012-08-13  3:19       ` Nicolas Pitre
2012-08-13  3:19         ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 03/22] ARM: use late patch framework for phys-virt patching Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  3:03   ` Nicolas Pitre
2012-08-12  3:03     ` Nicolas Pitre
2012-08-12 17:34     ` Cyril Chemparathy
2012-08-12 17:34       ` Cyril Chemparathy
2012-08-13  3:32       ` Nicolas Pitre
2012-08-13  3:32         ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 04/22] ARM: LPAE: use phys_addr_t on virt <--> phys conversion Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  3:04   ` Nicolas Pitre
2012-08-12  3:04     ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 05/22] ARM: LPAE: support 64-bit virt_to_phys patching Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  3:39   ` Nicolas Pitre
2012-08-12  3:39     ` Nicolas Pitre
2012-08-12 23:27     ` Cyril Chemparathy
2012-08-12 23:27       ` Cyril Chemparathy
2012-08-13  4:03       ` Nicolas Pitre
2012-08-13  4:03         ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 06/22] ARM: LPAE: use signed arithmetic for mask definitions Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  3:57   ` Nicolas Pitre
2012-08-12  3:57     ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 07/22] ARM: LPAE: use phys_addr_t in alloc_init_pud() Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-11  1:24 ` [PATCH v2 08/22] ARM: LPAE: use phys_addr_t in free_memmap() Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-11  1:24 ` [PATCH v2 09/22] ARM: LPAE: use phys_addr_t for initrd location and size Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  3:58   ` Nicolas Pitre
2012-08-12  3:58     ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 10/22] ARM: LPAE: use phys_addr_t in switch_mm() Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  4:04   ` Nicolas Pitre
2012-08-12  4:04     ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 11/22] ARM: LPAE: use 64-bit accessors for TTBR registers Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  4:11   ` Nicolas Pitre
2012-08-12  4:11     ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 12/22] ARM: LPAE: define ARCH_LOW_ADDRESS_LIMIT for bootmem Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-11  1:24 ` [PATCH v2 13/22] ARM: LPAE: factor out T1SZ and TTBR1 computations Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  4:19   ` Nicolas Pitre
2012-08-12  4:19     ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 14/22] ARM: LPAE: accomodate >32-bit addresses for page table base Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-11  1:24 ` [PATCH v2 15/22] ARM: mm: use physical addresses in highmem sanity checks Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  4:29   ` Nicolas Pitre
2012-08-12  4:29     ` Nicolas Pitre
2012-08-11  1:24 ` [PATCH v2 16/22] ARM: mm: cleanup checks for membank overlap with vmalloc area Cyril Chemparathy
2012-08-11  1:24   ` Cyril Chemparathy
2012-08-12  4:36   ` Nicolas Pitre
2012-08-12  4:36     ` Nicolas Pitre
2012-09-10 17:43     ` Cyril Chemparathy [this message]
2012-09-10 17:43       ` Cyril Chemparathy
2012-09-10 18:07       ` Nicolas Pitre
2012-09-10 18:07         ` Nicolas Pitre
2012-08-11  1:25 ` [PATCH v2 17/22] ARM: mm: clean up membank size limit checks Cyril Chemparathy
2012-08-11  1:25   ` Cyril Chemparathy
2012-08-11  1:25 ` [PATCH v2 18/22] ARM: add virt_to_idmap for interconnect aliasing Cyril Chemparathy
2012-08-11  1:25   ` Cyril Chemparathy
2012-08-11  1:25 ` [PATCH v2 19/22] ARM: recreate kernel mappings in early_paging_init() Cyril Chemparathy
2012-08-11  1:25   ` Cyril Chemparathy
2012-08-11  1:25 ` [RFC v2 20/22] ARM: keystone: introducing TI Keystone platform Cyril Chemparathy
2012-08-11  1:26   ` Cyril Chemparathy
2012-08-11  1:25 ` [RFC v2 21/22] ARM: keystone: enable SMP on Keystone machines Cyril Chemparathy
2012-08-11  1:25   ` Cyril Chemparathy
2012-08-11  1:25 ` [RFC v2 22/22] ARM: keystone: add switch over to high physical address range Cyril Chemparathy
2012-08-11  1:25   ` Cyril Chemparathy

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=504E26BB.4020205@ti.com \
    --to=cyril@ti.com \
    --cc=linux-arm-kernel@lists.infradead.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.