diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index 825233b6d98..9dd2742590b 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -501,7 +501,7 @@ MmInitializeMemoryConsumer(ULONG Consumer, NTSTATUS (*Trim)(ULONG Target, ULONG Priority, PULONG NrFreed)); VOID -MmInitializeBalancer(ULONG NrAvailablePages); +MmInitializeBalancer(ULONG NrAvailablePages, ULONG NrSystemPages); NTSTATUS MmReleasePageMemoryConsumer(ULONG Consumer, PHYSICAL_ADDRESS Page); NTSTATUS diff --git a/reactos/ntoskrnl/mm/balance.c b/reactos/ntoskrnl/mm/balance.c index c7c6c7f6d66..1543fd5cc43 100644 --- a/reactos/ntoskrnl/mm/balance.c +++ b/reactos/ntoskrnl/mm/balance.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: balance.c,v 1.21 2003/10/12 17:05:48 hbirr Exp $ +/* $Id: balance.c,v 1.22 2003/10/23 20:28:08 hbirr Exp $ * * PROJECT: ReactOS kernel * FILE: ntoskrnl/mm/balance.c @@ -73,7 +73,7 @@ VOID MmPrintMemoryStatistic(VOID) } VOID INIT_FUNCTION -MmInitializeBalancer(ULONG NrAvailablePages) +MmInitializeBalancer(ULONG NrAvailablePages, ULONG NrSystemPages) { memset(MiMemoryConsumers, 0, sizeof(MiMemoryConsumers)); InitializeListHead(&AllocationListHead); @@ -88,6 +88,7 @@ MmInitializeBalancer(ULONG NrAvailablePages) NrAvailablePages - MiMinimumAvailablePages; MiMemoryConsumers[MC_PPOOL].PagesTarget = NrAvailablePages / 2; MiMemoryConsumers[MC_NPPOOL].PagesTarget = 0xFFFFFFFF; + MiMemoryConsumers[MC_NPPOOL].PagesUsed = NrSystemPages; } VOID INIT_FUNCTION diff --git a/reactos/ntoskrnl/mm/freelist.c b/reactos/ntoskrnl/mm/freelist.c index 6c133267102..7313084b3c5 100644 --- a/reactos/ntoskrnl/mm/freelist.c +++ b/reactos/ntoskrnl/mm/freelist.c @@ -506,7 +506,7 @@ MmInitializePageList(PVOID FirstPhysKernelAddress, MmStats.NrTotalPages = MmStats.NrFreePages + MmStats.NrSystemPages + MmStats.NrReservedPages + MmStats.NrUserPages; - MmInitializeBalancer(MmStats.NrFreePages); + MmInitializeBalancer(MmStats.NrFreePages, MmStats.NrSystemPages + MmStats.NrReservedPages); return((PVOID)LastKernelAddress); }