reactos/ntoskrnl
Pierre Schweitzer 7e550edb26
[NTOSKRNL] Drop the always running thread for lazy writer.
Instead move to a threading model like the Windows one.
We'll queue several work items to be executed in a system thread (Cc worker)
when there are VACB that have been marked as dirty. Furthermore, some delay
will be observed before action to avoid killing the system with IOs.
This new threading model opens way for read ahead and write behind implementation.

Also, moved the initialization of the lazy writer to CcInitializeCacheManager()
it has nothing to do with views and shouldn't be initialized there.

Also, moved the lazy writer implementation to its own file.

Modified CcDeferWrite() and CcRosMarkDirtyVacb() to take into account the new threading model.

Introduced new functions:
- CcPostWorkQueue(): post an item to be handled by Cc worker and spawn a worker if required
- CcScanDpc(): called after some time (not to have lazy writer always running) to queue a lazy scan
- CcLazyWriteScan(): the lazy writer we used to have
- CcScheduleLazyWriteScan(): function to call when you want to start a lazy writer run. It will make a DPC after some time and queue execution
- CcWorkerThread(): the worker thread that will handle lazy write, read ahead, and so on
2018-02-07 21:37:17 +01:00
..
cache [NTOSKRNL] Drop the always running thread for lazy writer. 2018-02-07 21:37:17 +01:00
cc [NTOSKRNL] Drop the always running thread for lazy writer. 2018-02-07 21:37:17 +01:00
config [NTOS:CM] Correctly interpret RtlCreateUnicodeString return value. CORE-14271 2018-01-31 10:37:56 +01:00
dbgk [NTOS] Remove unnecessary NULL checks and add a missing one. CIDs 1411958, 716670, 1322186 2018-01-20 15:59:35 +01:00
ex [NTOSKRNL] Rename ExpCriticalWorkerThreads and ExpDelayedWorkerThreads (no p) 2018-02-07 21:37:17 +01:00
fsrtl [NTOSKRNL] In FsRtlAddToTunnelCache() allocate memory from PagedPool when required. 2018-01-20 21:21:00 +01:00
fstub [NTOS] Fix 64 bit warnings 2018-01-14 13:54:14 +01:00
inbv [NTOS:INBV] Simplify a little bit the BootLogoFadeIn() function 2018-01-03 02:57:28 +01:00
include [NTOSKRNL] Drop the always running thread for lazy writer. 2018-02-07 21:37:17 +01:00
io [NTOS] Fix 64 bit warnings 2018-01-14 13:54:14 +01:00
kd [NTOS:KDBG] Fix DPRINT format specifier in KdPortInitializeEx. CORE-14174 2018-01-04 11:37:50 +01:00
kd64 [NTOS:KD] Avoid _alloca inside SEH, as it's apparently incompatible with PSEH. CORE-14103 2017-12-14 11:46:16 +01:00
kdbg [NTOSKRNL] Implement (it's a bit raw for now!) the !filecache command in KDBG 2018-01-24 21:46:16 +01:00
ke [NTOS:MM] Pass page fault code to MmAccessFault 2018-01-06 18:20:24 +01:00
lpc [NTOS] Use KeClearEvent instead of KeResetEvent where the previous state is not needed. 2017-12-30 11:45:03 +01:00
mm [NTOSKRNL] Define the Mm global variables related to Cc on Mm init. 2018-02-06 13:41:23 +01:00
ntkrnlmp Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
ob [NTOS] Fix 64 bit warnings 2018-01-14 13:54:14 +01:00
po [NTOSKRNL] Reimplement the lazy writer in Cc and remove the "basic" one in Mm. 2018-01-23 19:33:59 +01:00
ps [NTOS:PS] Check for rundown success in PsReferenceProcessFilePointer. CID 514553 2018-01-28 10:48:19 +01:00
rtl Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
se Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
tests Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
vdm Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
vf Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
wmi [NTOS] Add missing brackets. Comment out some unused statements. CORE-11799 (#94) 2017-10-28 15:19:17 +01:00
CMakeLists.txt Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
guid.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
KrnlFun.c Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
ntdll.S Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
ntos.cmake [NTOSKRNL] Drop the always running thread for lazy writer. 2018-02-07 21:37:17 +01:00
ntoskrnl.rc [NTOS:INBV] Implement rotation bar for boot screen 2018-01-03 02:57:28 +01:00
ntoskrnl.spec Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00
sysfuncs.lst Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00