CMA memory patch to fix aarch64 builder lockups

This commit is contained in:
Peter Robinson 2015-10-27 19:11:13 +00:00
parent 50776ace1e
commit 30434fcf4b
2 changed files with 67 additions and 0 deletions

View File

@ -576,6 +576,7 @@ Patch16000: amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch
Patch16001: amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch
Patch16002: arm64-avoid-needing-console-to-enable-serial-console.patch
Patch16003: usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch
Patch16004: showmem-cma-correct-reserved-memory-calculation.patch
# ARMv7
Patch16020: ARM-tegra-usb-no-reset.patch
@ -1231,6 +1232,8 @@ ApplyPatch amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch
ApplyPatch arm64-avoid-needing-console-to-enable-serial-console.patch
ApplyPatch usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch
ApplyPatch showmem-cma-correct-reserved-memory-calculation.patch
#
# ARM
#
@ -2287,6 +2290,9 @@ fi
# ||----w |
# || ||
%changelog
* Tue Oct 27 2015 Peter Robinson <pbrobinson@fedoraproject.org>
- CMA memory patch to fix aarch64 builder lockups
* Tue Oct 27 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.1.12
- Linux v4.1.12

View File

@ -0,0 +1,61 @@
From 3a83eda52f34b97168b70098ef0e34dbcaeaaf8f Mon Sep 17 00:00:00 2001
From: Vishnu Pratap Singh <vishnu.ps@samsung.com>
Date: Tue, 25 Aug 2015 00:04:44 +0000
Subject: lib/show_mem.c: correct reserved memory calculation
CMA reserved memory is not part of total reserved memory.
Currently when we print the total reserve memory it considers
cma as part of reserve memory and do minus of totalcma_pages
from reserved, which is wrong. In cases where total reserved
is less than cma reserved we will get negative values & while
printing we print as unsigned and we will get a very large value.
Below is the show mem output on X86 ubuntu based system where
CMA reserved is 100MB (25600 pages) & total reserved is ~40MB(10316 pages).
And reserve memory shows a large value because of this bug.
Before:
[ 127.066430] 898908 pages RAM
[ 127.066432] 671682 pages HighMem/MovableOnly
[ 127.066434] 4294952012 pages reserved
[ 127.066436] 25600 pages cma reserved
After:
[ 44.663129] 898908 pages RAM
[ 44.663130] 671682 pages HighMem/MovableOnly
[ 44.663130] 10316 pages reserved
[ 44.663131] 25600 pages cma reserved
Signed-off-by: Vishnu Pratap Singh <vishnu.ps@samsung.com>
Cc: Michal Nazarewicz <mina86@mina86.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Danesh Petigara <dpetigara@broadcom.com>
Cc: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
lib/show_mem.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/show_mem.c b/lib/show_mem.c
index adc98e18..1feed6a 100644
--- a/lib/show_mem.c
+++ b/lib/show_mem.c
@@ -38,11 +38,9 @@ void show_mem(unsigned int filter)
printk("%lu pages RAM\n", total);
printk("%lu pages HighMem/MovableOnly\n", highmem);
+ printk("%lu pages reserved\n", reserved);
#ifdef CONFIG_CMA
- printk("%lu pages reserved\n", (reserved - totalcma_pages));
printk("%lu pages cma reserved\n", totalcma_pages);
-#else
- printk("%lu pages reserved\n", reserved);
#endif
#ifdef CONFIG_QUICKLIST
printk("%lu pages in pagetable cache\n",
--
cgit v0.11.2