[ARM] Issue of memory compaction on kernel 2.6.35.9

From: naveen yadav
Date: Wed Apr 13 2011 - 07:35:38 EST


Dear all,

we want to varify compaction on ARM and we are using 2.6.25.9 kernel
on cortex a9.

Since ARM does not have HUGETLB_PAGE support and compaction is HUGE
PAGE independent so I removed from config file

******************************************************************************************************************************
# support for memory compaction
config COMPACTION
bool "Allow for memory compaction"
select MIGRATION
#depends on EXPERIMENTAL && HUGETLB_PAGE && MMU
depends on EXPERIMENTAL && MMU
help
Allows the compaction of memory for the allocation of huge pages.
******************************************************************************************************************************
after triggering Memory Compaction by writing any value to
/proc/sys/vm/compact_memory i am getting the SVC mode crash
******************************************************************************************************************************
#echo 1 > /proc/sys/vm/compact_memory
Unable to handle kernel paging request at virtual address ee420be4
pgd = d9c6c000
[ee420be4] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT
last sysfs file:
Modules linked in:
CPU: 0    Not tainted  (2.6.35.9 #16)
PC is at compact_zone+0x178/0x610
LR is at compact_zone+0x138/0x610
pc : [<c009f30c>]    lr : [<c009f2cc>]    psr: 40000093
sp : d9d75e40  ip : c0380978  fp : d9d75e94
r10: d9d74000  r9 : c03806c8  r8 : 00069704
r7 : 00069800  r6 : 00d2e080  r5 : c04ea080  r4 : d9d75e9c
r3 : 60000093  r2 : 00000002  r1 : ee420be4  r0 : ee430b82
Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment us
******************************************************************************************************************************


We tried to narrow down the prob... I found crash is form
“del_page_from_lru_list(zone, page, page_lru(page)); ” function
isolate_migratepages

{
-----------
/* Successfully isolated */
del_page_from_lru_list(zone, page, page_lru(page));

--------------------------------------------------
}

In my ARM board have only one zone (Node 0, zone   Normal)

******************************************************************************************************************************
VDLinux#> cat /proc/buddyinfo
Node 0, zone Normal 5 4 4 2 1 3 0
2      3      4      2      1      7
******************************************************************************************************************************

Can some one guide why I am geeting the crash and how to debugg this problem


Thanks
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/