PASR: mm: Integrate PASR in Buddy allocator
authorMaxime Coquelin <maxime.coquelin@stericsson.com>
Thu, 4 Apr 2013 05:45:05 +0000 (10:45 +0530)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 20:08:38 +0000 (13:08 -0700)
commitccc5d8f1fc45d4729e7fcb777d2644e3196f3511
tree1ef9c5cf712c7a69e9b6193c197e0bc01e5cd7cd
parent9b1fbdc0a4fe6347db6826431ffe721e86a68b3f
PASR: mm: Integrate PASR in Buddy allocator

Any allocators might call the PASR Framework for DDR power savings. Currently,
only Linux Buddy allocator is patched, but HWMEM and PMEM physically
contiguous memory allocators will follow.

Linux Buddy allocator porting uses Buddy specificities to reduce the overhead
induced by the PASR Framework counter updates. Indeed, the PASR Framework is
called only when MAX_ORDER (4MB page blocs by default) buddies are
inserted/removed from the free lists.

To port PASR FW into a new allocator:

* Call pasr_put(phys_addr, size) each time a memory chunk becomes unused.
* Call pasr_get(phys_addr, size) each time a memory chunk becomes used.

Bug 1201663
Bug 1033159

Change-Id: Ib90012d0707cf3c8b0cd9c979298f695cccc563e
Signed-off-by: Maxime Coquelin <maxime.coquelin@stericsson.com>
Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com>
Reviewed-on: http://git-master/r/216386
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
mm/page_alloc.c