diff options
author | Guodong Xu <guodong.xu@linaro.org> | 2013-11-21 11:33:21 +0800 |
---|---|---|
committer | Guodong Xu <guodong.xu@linaro.org> | 2013-11-21 11:33:21 +0800 |
commit | 44a82162a688f392f3c75d0b3bb4f10683c3d90b (patch) | |
tree | aa6023b7e46d6bd5334df6018f036d0821970999 | |
parent | 0fe17231c47d28579bf3b9eccb22a3cff1e69643 (diff) |
mm: memory subsystem and CMA debugging messagestopic-pasr-20130718-v2
Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
-rw-r--r-- | arch/arm/mm/init.c | 2 | ||||
-rw-r--r-- | arch/arm/mm/mmu.c | 17 | ||||
-rw-r--r-- | drivers/base/dma-contiguous.c | 7 |
3 files changed, 22 insertions, 4 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 0ecc43fd6229..6ec84f8d8128 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -380,6 +380,8 @@ void __init arm_memblock_init(struct meminfo *mi, struct machine_desc *mdesc) * reserve memory for DMA contigouos allocations, * must come from DMA area inside low memory */ + pr_crit("%s(arm_dma_limit %08lx)\n", __func__, (unsigned long)arm_dma_limit); + pr_crit("%s(arm_lowmem_limit %08lx)\n", __func__, (unsigned long)arm_lowmem_limit); dma_contiguous_reserve(min(arm_dma_limit, arm_lowmem_limit)); arm_memblock_steal_permitted = false; diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index b832135ec433..0f30bd97b397 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -1017,6 +1017,9 @@ void __init sanity_check_meminfo(void) struct membank *bank = &meminfo.bank[j]; *bank = meminfo.bank[i]; + pr_crit("%s: meminfo.bank[%d]: start=%08x, size=%08x, highmem=%d\n", + __func__, i, bank->start, bank->size, bank->highmem); + #ifdef CONFIG_SPARSEMEM if (pfn_to_section_nr(bank_pfn_start(bank)) != pfn_to_section_nr(bank_pfn_end(bank) - 1)) { @@ -1113,8 +1116,13 @@ void __init sanity_check_meminfo(void) } #endif if (!bank->highmem && bank->start + bank->size > arm_lowmem_limit) + { + pr_crit("%s: start=%08x, size=%08x, highmem=%d, arm_lowmem_limit=%08x\n", + __func__, bank->start, bank->size, bank->highmem, arm_lowmem_limit); arm_lowmem_limit = bank->start + bank->size; - + pr_crit("%s: start=%08x, size=%08x, highmem=%d, arm_lowmem_limit=%08x\n", + __func__, bank->start, bank->size, bank->highmem, arm_lowmem_limit); + } j++; } #ifdef CONFIG_HIGHMEM @@ -1140,6 +1148,13 @@ void __init sanity_check_meminfo(void) meminfo.nr_banks = j; high_memory = __va(arm_lowmem_limit - 1) + 1; memblock_set_current_limit(arm_lowmem_limit); + + for (i = 0; i < meminfo.nr_banks; i++) { + struct membank *bank = &meminfo.bank[i]; + + pr_crit("%s: meminfo.bank[%d]: start=%08x, size=%08x, highmem=%d\n", + __func__, i, bank->start, bank->size, bank->highmem); + } } static inline void prepare_page_table(void) diff --git a/drivers/base/dma-contiguous.c b/drivers/base/dma-contiguous.c index 0ca54421ce97..5e37ada211ff 100644 --- a/drivers/base/dma-contiguous.c +++ b/drivers/base/dma-contiguous.c @@ -108,7 +108,7 @@ void __init dma_contiguous_reserve(phys_addr_t limit) { phys_addr_t selected_size = 0; - pr_debug("%s(limit %08lx)\n", __func__, (unsigned long)limit); + pr_crit("%s(limit %08lx)\n", __func__, (unsigned long)limit); if (size_cmdline != -1) { selected_size = size_cmdline; @@ -125,7 +125,7 @@ void __init dma_contiguous_reserve(phys_addr_t limit) } if (selected_size) { - pr_debug("%s: reserving %ld MiB for global area\n", __func__, + pr_crit("%s: reserving %ld MiB for global area\n", __func__, (unsigned long)selected_size / SZ_1M); dma_declare_contiguous(NULL, selected_size, 0, limit); @@ -233,7 +233,7 @@ int __init dma_declare_contiguous(struct device *dev, phys_addr_t size, struct cma_reserved *r = &cma_reserved[cma_reserved_count]; phys_addr_t alignment; - pr_debug("%s(size %lx, base %08lx, limit %08lx)\n", __func__, + pr_crit("%s(size %lx, base %08lx, limit %08lx)\n", __func__, (unsigned long)size, (unsigned long)base, (unsigned long)limit); @@ -266,6 +266,7 @@ int __init dma_declare_contiguous(struct device *dev, phys_addr_t size, */ phys_addr_t addr = __memblock_alloc_base(size, alignment, limit); if (!addr) { + pr_crit("%s, failure from __memblock_alloc_base().\n", __func__); base = -ENOMEM; goto err; } else { |