[ros-diffs] [arty] 35701: Convert to using a fast mutex.

arty at svn.reactos.org arty at svn.reactos.org
Wed Aug 27 17:21:40 CEST 2008


Author: arty
Date: Wed Aug 27 10:21:39 2008
New Revision: 35701

URL: http://svn.reactos.org/svn/reactos?rev=35701&view=rev
Log:
Convert to using a fast mutex.

Modified:
    branches/arty-newcc/ntoskrnl/cache/cachesub.c
    branches/arty-newcc/ntoskrnl/cache/fssup.c
    branches/arty-newcc/ntoskrnl/cache/pinsup.c
    branches/arty-newcc/ntoskrnl/include/internal/cc.h

Modified: branches/arty-newcc/ntoskrnl/cache/cachesub.c
URL: http://svn.reactos.org/svn/reactos/branches/arty-newcc/ntoskrnl/cache/cachesub.c?rev=35701&r1=35700&r2=35701&view=diff
==============================================================================
--- branches/arty-newcc/ntoskrnl/cache/cachesub.c [iso-8859-1] (original)
+++ branches/arty-newcc/ntoskrnl/cache/cachesub.c [iso-8859-1] Wed Aug 27 10:21:39 2008
@@ -21,10 +21,6 @@
 NTAPI
 MmGetDeviceObjectForFile(IN PFILE_OBJECT FileObject);
 
-BOOLEAN
-NTAPI
-MmIsCOWAddress(PEPROCESS Process, PVOID Address);
-
 NTSTATUS
 NTAPI
 CcpSimpleWrite
@@ -43,8 +39,7 @@
 
     KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
 
-    if (MmIsDirtyPage(PsInitialSystemProcess, Buffer) && 
-	!MmIsCOWAddress(PsInitialSystemProcess, Buffer))
+    if (MmIsDirtyPage(PsInitialSystemProcess, Buffer))
     {
 	DPRINT1
 	    ("PAGING WRITE (FLUSH) Offset %x Length %d\n", 
@@ -100,7 +95,6 @@
 	}
 	
 	ObDereferenceObject(FileObject);
-	MmDeleteHyperspaceMapping(Buffer);
 
 	DPRINT("Paging IO Done: %08x\n", ReadStatus->Status);
     }

Modified: branches/arty-newcc/ntoskrnl/cache/fssup.c
URL: http://svn.reactos.org/svn/reactos/branches/arty-newcc/ntoskrnl/cache/fssup.c?rev=35701&r1=35700&r2=35701&view=diff
==============================================================================
--- branches/arty-newcc/ntoskrnl/cache/fssup.c [iso-8859-1] (original)
+++ branches/arty-newcc/ntoskrnl/cache/fssup.c [iso-8859-1] Wed Aug 27 10:21:39 2008
@@ -44,7 +44,7 @@
 	CcCacheBitmap->Buffer = ((PULONG)&CcCacheBitmap[1]);
 	CcCacheBitmap->SizeOfBitMap = ROUND_UP(CACHE_NUM_SECTIONS, 32);
 	DPRINT("Cache has %d entries\n", CcCacheBitmap->SizeOfBitMap);
-	KeInitializeGuardedMutex(&CcMutex);
+	ExInitializeFastMutex(&CcMutex);
 	Status = PsCreateSystemThread
 		(&CcUnmapThreadHandle,
 		 THREAD_ALL_ACCESS,

Modified: branches/arty-newcc/ntoskrnl/cache/pinsup.c
URL: http://svn.reactos.org/svn/reactos/branches/arty-newcc/ntoskrnl/cache/pinsup.c?rev=35701&r1=35700&r2=35701&view=diff
==============================================================================
--- branches/arty-newcc/ntoskrnl/cache/pinsup.c [iso-8859-1] (original)
+++ branches/arty-newcc/ntoskrnl/cache/pinsup.c [iso-8859-1] Wed Aug 27 10:21:39 2008
@@ -22,7 +22,7 @@
 NOCC_BCB CcCacheSections[CACHE_NUM_SECTIONS];
 CHAR CcpBitmapBuffer[sizeof(RTL_BITMAP) + ROUND_UP((CACHE_NUM_SECTIONS), 32) / 8];
 PRTL_BITMAP CcCacheBitmap = (PRTL_BITMAP)&CcpBitmapBuffer;
-KGUARDED_MUTEX CcMutex;
+FAST_MUTEX CcMutex;
 KEVENT CcDeleteEvent;
 ULONG CcCacheClockHand;
 LONG CcOutstandingDeletes;
@@ -55,7 +55,7 @@
 
 VOID CcpLock()
 {
-    KeAcquireGuardedMutex(&CcMutex);
+    ExAcquireFastMutex(&CcMutex);
     //DPRINT("<<<---<<< CC In Mutex!\n");
 }
 
@@ -75,14 +75,14 @@
     PCHAR BufStart, BufPage;
     LARGE_INTEGER ToWrite;
 
-    KeAcquireGuardedMutex(&CcMutex);
+    ExAcquireFastMutex(&CcMutex);
     while (CcOutstandingDeletes > 0)
     {
 	NumElements = InterlockedDecrement(&CcOutstandingDeletes);
 	DPRINT1("Unmapping %d ...\n", NumElements);
 	WorkingOn = CcUnmapChain[0];
 	RtlMoveMemory(&CcUnmapChain[0], &CcUnmapChain[1], NumElements * sizeof(NOCC_UNMAP_CHAIN));
-	KeReleaseGuardedMutex(&CcMutex);
+	ExReleaseFastMutex(&CcMutex);
 
 	BufStart = (PCHAR)WorkingOn.Buffer;
 	ToWrite = WorkingOn.FileOffset;
@@ -98,15 +98,15 @@
 	MmUnmapViewInSystemSpace(WorkingOn.Buffer);
 	ObDereferenceObject(WorkingOn.SectionObject);
 	DPRINT1("Done unmapping\n");
-	KeAcquireGuardedMutex(&CcMutex);
-    }
-    KeReleaseGuardedMutex(&CcMutex);
+	ExAcquireFastMutex(&CcMutex);
+    }
+    ExReleaseFastMutex(&CcMutex);
 }
 
 VOID CcpUnlock()
 {
     //DPRINT(">>>--->>> CC Exit Mutex!\n");
-    KeReleaseGuardedMutex(&CcMutex);
+    ExReleaseFastMutex(&CcMutex);
 }
 
 VOID STDCALL

Modified: branches/arty-newcc/ntoskrnl/include/internal/cc.h
URL: http://svn.reactos.org/svn/reactos/branches/arty-newcc/ntoskrnl/include/internal/cc.h?rev=35701&r1=35700&r2=35701&view=diff
==============================================================================
--- branches/arty-newcc/ntoskrnl/include/internal/cc.h [iso-8859-1] (original)
+++ branches/arty-newcc/ntoskrnl/include/internal/cc.h [iso-8859-1] Wed Aug 27 10:21:39 2008
@@ -202,7 +202,7 @@
 
 extern NOCC_BCB CcCacheSections[CACHE_NUM_SECTIONS];
 extern PRTL_BITMAP CcCacheBitmap;
-extern KGUARDED_MUTEX CcMutex;
+extern FAST_MUTEX CcMutex;
 extern KEVENT CcDeleteEvent;
 extern ULONG CcCacheClockHand;
 extern LIST_ENTRY CcPendingUnmap;



More information about the Ros-diffs mailing list