--- a/kernel/eka/memmodel/epoc/flexible/mmu/mptalloc.cpp Fri Apr 16 16:24:37 2010 +0300
+++ b/kernel/eka/memmodel/epoc/flexible/mmu/mptalloc.cpp Mon May 03 13:47:38 2010 +0300
@@ -177,6 +177,14 @@
else
{// Allocate fixed paged as page tables aren't movable.
r = TheMmu.AllocRam(&pagePhys, 1, aMemory->RamAllocFlags(), EPageFixed);
+
+#ifdef BTRACE_KERNEL_MEMORY
+ if (r == KErrNone)
+ {
+ BTrace4(BTrace::EKernelMemory, BTrace::EKernelMemoryMiscAlloc, KPageSize);
+ ++Epoc::KernelMiscPages;
+ }
+#endif
}
RamAllocLock::Unlock();
@@ -241,7 +249,14 @@
if(aDemandPaged)
ThePager.PageInFreePages(&pagePhys,1);
else
+ {
TheMmu.FreeRam(&pagePhys, 1, EPageFixed);
+
+#ifdef BTRACE_KERNEL_MEMORY
+ BTrace4(BTrace::EKernelMemory, BTrace::EKernelMemoryMiscFree, KPageSize);
+ --Epoc::KernelMiscPages;
+#endif
+ }
r = 1;
}
@@ -362,11 +377,8 @@
{
iReserveCount = aReserveCount;
iDemandPaged = aDemandPaged;
- while(iFreeCount<aReserveCount)
- if(!aAllocator->AllocReserve(*this))
- {
- __NK_ASSERT_ALWAYS(0);
- }
+ while(iFreeCount < aReserveCount)
+ __NK_ASSERT_ALWAYS(aAllocator->AllocReserve(*this));
}