aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuodong Xu <guodong.xu@linaro.org>2013-11-21 11:33:21 +0800
committerGuodong Xu <guodong.xu@linaro.org>2013-11-21 11:33:21 +0800
commit44a82162a688f392f3c75d0b3bb4f10683c3d90b (patch)
treeaa6023b7e46d6bd5334df6018f036d0821970999
parent0fe17231c47d28579bf3b9eccb22a3cff1e69643 (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.c2
-rw-r--r--arch/arm/mm/mmu.c17
-rw-r--r--drivers/base/dma-contiguous.c7
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 {