put it in Facebook page!
i will give a vote! :P

On Thu, Sep 30, 2010 at 9:33 AM, Ged Murphy <gedmurphy@gmail.com> wrote:
This commit needs a 'like' button :)



-----Original Message-----
From: ros-diffs-bounces@reactos.org [mailto:ros-diffs-bounces@reactos.org] On Behalf Of sir_richard@svn.reactos.org
Sent: 30 September 2010 05:41
To: ros-diffs@reactos.org
Subject: [ros-diffs] [sir_richard] 48940: [NTOS]: He's climbing in yo PFN database, he snatching yo pages up, tryin to page em so y'all need to hide your pool hide your cache, and hide your working set cuz they grabbin...

Author: sir_richard
Date: Thu Sep 30 04:40:31 2010
New Revision: 48940

URL: http://svn.reactos.org/svn/reactos?rev=48940&view=rev
Log:
[NTOS]: He's climbing in yo PFN database, he snatching yo pages up, tryin to page em so y'all need to hide your pool hide your cache, and hide your working set cuz they grabbin' all the pages out there. We gonna page you, we gonna page you, so you can run and fault on that, run and fault on that, home boy, homeboy, home homeboy.
Enable ARM3 Paged Pool and remove all related deprecated code. Install tested on several VMs, it might cause new regressions. Let's fix them before 0.3.13 instead of reverting.

Modified:
   trunk/reactos/ntoskrnl/ex/init.c
   trunk/reactos/ntoskrnl/mm/ARM3/expool.c
   trunk/reactos/ntoskrnl/mm/mmfault.c
   trunk/reactos/ntoskrnl/mm/mminit.c
   trunk/reactos/ntoskrnl/mm/ppool.c

Modified: trunk/reactos/ntoskrnl/ex/init.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=48940&r1=48939&r2=48940&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ex/init.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/init.c [iso-8859-1] Thu Sep 30 04:40:31 2010
@@ -1270,8 +1270,6 @@
    SharedUserData->ImageNumberHigh = IMAGE_FILE_MACHINE_ARCHITECTURE;
 }

-extern BOOLEAN AllowPagedPool;
-
 VOID
 NTAPI
 Phase1InitializationDiscard(IN PVOID Context)
@@ -1891,9 +1889,6 @@
    /* Update progress bar */
    InbvUpdateProgressBar(90);

-    /* Enough fun for now */
-    AllowPagedPool = FALSE;
-
    /* Launch initial process */
    ProcessInfo = &InitBuffer->ProcessInfo;
    ExpLoadInitialProcess(InitBuffer, &ProcessParameters, &Environment);

Modified: trunk/reactos/ntoskrnl/mm/ARM3/expool.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/expool.c?rev=48940&r1=48939&r2=48940&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ARM3/expool.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ARM3/expool.c [iso-8859-1] Thu Sep 30 04:40:31 2010
@@ -19,8 +19,6 @@
 #undef ExAllocatePoolWithQuota
 #undef ExAllocatePoolWithQuotaTag

-BOOLEAN AllowPagedPool = TRUE;
-
 /* GLOBALS ********************************************************************/

 ULONG ExpNumberOfPagedPools;
@@ -454,11 +452,6 @@
    PPOOL_HEADER Entry, NextEntry, FragmentEntry;
    KIRQL OldIrql;
    ULONG BlockSize, i;
-
-    //
-    // Check for paged pool
-    //
-    if (!(AllowPagedPool) && (PoolType == PagedPool)) return ExAllocatePagedPoolWithTag(PagedPool, NumberOfBytes, Tag);

    //
    // Some sanity checks
@@ -761,19 +754,6 @@
    BOOLEAN Combined = FALSE;

    //
-    // Check for paged pool
-    //
-    if ((P >= MmPagedPoolBase) &&
-        (P <= (PVOID)((ULONG_PTR)MmPagedPoolBase + MmPagedPoolSize)))
-    {
-        //
-        // Use old allocator
-        //
-        ExFreePagedPool(P);
-        return;
-    }
-
-    //
    // Quickly deal with big page allocations
    //
    if (PAGE_ALIGN(P) == P)

Modified: trunk/reactos/ntoskrnl/mm/mmfault.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mmfault.c?rev=48940&r1=48939&r2=48940&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/mmfault.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/mmfault.c [iso-8859-1] Thu Sep 30 04:40:31 2010
@@ -105,10 +105,6 @@

      switch (MemoryArea->Type)
      {
-         case MEMORY_AREA_PAGED_POOL:
-            Status = STATUS_SUCCESS;
-            break;
-
         case MEMORY_AREA_SECTION_VIEW:
            Status = MmAccessFaultSectionView(AddressSpace,
                                              MemoryArea,
@@ -196,12 +192,6 @@

      switch (MemoryArea->Type)
      {
-         case MEMORY_AREA_PAGED_POOL:
-            {
-               Status = MmCommitPagedPoolAddress((PVOID)Address, Locked);
-               break;
-            }
-
         case MEMORY_AREA_SECTION_VIEW:
            Status = MmNotPresentFaultSectionView(AddressSpace,
                                                  MemoryArea,
@@ -293,25 +283,3 @@
    }
 }

-NTSTATUS
-NTAPI
-MmCommitPagedPoolAddress(PVOID Address, BOOLEAN Locked)
-{
-   NTSTATUS Status;
-   PFN_NUMBER AllocatedPage;
-
-   Status = MmRequestPageMemoryConsumer(MC_PPOOL, FALSE, &AllocatedPage);
-   if (!NT_SUCCESS(Status))
-   {
-      MmUnlockAddressSpace(MmGetKernelAddressSpace());
-      Status = MmRequestPageMemoryConsumer(MC_PPOOL, TRUE, &AllocatedPage);
-      MmLockAddressSpace(MmGetKernelAddressSpace());
-   }
-   Status =
-      MmCreateVirtualMapping(NULL,
-                             (PVOID)PAGE_ROUND_DOWN(Address),
-                             PAGE_READWRITE,
-                             &AllocatedPage,
-                             1);
-   return(Status);
-}

Modified: trunk/reactos/ntoskrnl/mm/mminit.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/mminit.c?rev=48940&r1=48939&r2=48940&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/mminit.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/mminit.c [iso-8859-1] Thu Sep 30 04:40:31 2010
@@ -199,21 +199,6 @@
    ASSERT(Status == STATUS_SUCCESS);

    //
-    // And now, ReactOS paged pool
-    //
-    BaseAddress = MmPagedPoolBase;
-    Status = MmCreateMemoryArea(MmGetKernelAddressSpace(),
-                                MEMORY_AREA_PAGED_POOL | MEMORY_AREA_STATIC,
-                                &BaseAddress,
-                                MmPagedPoolSize,
-                                PAGE_READWRITE,
-                                &MArea,
-                                TRUE,
-                                0,
-                                BoundaryAddressMultiple);
-    ASSERT(Status == STATUS_SUCCESS);
-
-    //
    // Next, the KPCR
    //
    BaseAddress = (PVOID)PCR;
@@ -287,10 +272,6 @@
            MmSystemRangeStart,
            (ULONG_PTR)MmSystemRangeStart + MmBootImageSize,
            "Boot Loaded Image");
-    DPRINT1("          0x%p - 0x%p\t%s\n",
-            MmPagedPoolBase,
-            (ULONG_PTR)MmPagedPoolBase + MmPagedPoolSize,
-            "Paged Pool");
    DPRINT1("          0x%p - 0x%p\t%s\n",
            MmPfnDatabase,
            (ULONG_PTR)MmPfnDatabase + (MxPfnAllocation << PAGE_SHIFT),
@@ -373,12 +354,7 @@

        /* Initialize ARM³ in phase 0 */
        MmArmInitSystem(0, KeLoaderBlock);
-
-        /* Put the paged pool after the loaded modules */
-        MmPagedPoolBase = (PVOID)PAGE_ROUND_UP((ULONG_PTR)MmSystemRangeStart +
-                                               MmBootImageSize);
-        MmPagedPoolSize = MM_PAGED_POOL_SIZE;
-
+
        /* Intialize system memory areas */
        MiInitSystemMemoryAreas();

@@ -387,7 +363,6 @@
    }
    else if (Phase == 1)
    {
-        MmInitializePagedPool();
        MiInitializeUserPfnBitmap();
        MmInitializeMemoryConsumer(MC_USER, MmTrimUserMemory);
        MmInitializeRmapList();

Modified: trunk/reactos/ntoskrnl/mm/ppool.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ppool.c?rev=48940&r1=48939&r2=48940&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/ppool.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/mm/ppool.c [iso-8859-1] Thu Sep 30 04:40:31 2010
@@ -13,10 +13,6 @@
 #include <ntoskrnl.h>
 #define NDEBUG
 #include <debug.h>
-
-#if defined (ALLOC_PRAGMA)
-#pragma alloc_text(INIT, MmInitializePagedPool)
-#endif

 #undef ASSERT
 #define ASSERT(x) if (!(x)) {DbgPrint("Assertion "#x" failed at %s:%d\n", __FILE__,__LINE__); DbgBreakPoint(); }
@@ -967,26 +963,6 @@
       R_RELEASE_MUTEX(pool);
 }

-VOID
-INIT_FUNCTION
-NTAPI
-MmInitializePagedPool(VOID)
-{
-       /*
-        * We are still at a high IRQL level at this point so explicitly commit
-        * the first page of the paged pool before writing the first block header.
-        */
-       MmCommitPagedPoolAddress ( (PVOID)MmPagedPoolBase, FALSE );
-
-       MmPagedPool = RPoolInit ( MmPagedPoolBase,
-               MmPagedPoolSize,
-               MM_POOL_ALIGNMENT,
-               MM_CACHE_LINE_SIZE,
-               PAGE_SIZE );
-
-       ExInitializeFastMutex(&MmPagedPool->Mutex);
-}
-
 PVOID NTAPI
 ExAllocatePagedPoolWithTag (IN POOL_TYPE PoolType,
                            IN ULONG  NumberOfBytes,



_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev