reactos/ntoskrnl
Pierre Schweitzer c5139563db
[NTOSKRNL] Bring an initial (and not perfect ;-)) implementation of read ahead to our Cc!
This halfplements CcScheduleReadAhead() which is responsible for finding the next reads
to perform given last read and previous reads. I made it very basic for now, at least
to test the whole process.
This also introduces the CcExpressWorkQueue in the lazy writer which is responsible
for dealing with read ahead items and which is dealt with before the regular queue.
In CcCopyData(), if read was fine, schedule read ahead so that it can happen in background
without the FSD to notice it! Also, update the read history so that scheduling as a
bit of data.
Implement (à la "old Cc" ;-)) CcPerformReadAhead() which is responsible for performing
the read. It's only to be called by the worker thread.

Side note on the modifications done in CcRosReleaseFileCache(). Private cache map
is tied to a handle. If it goes away, private cache map gets deleted. Read ahead
can run after the handle was closed (and thus, private cache map deleted), so
it is mandatory to always lock the master lock before accessing the structure in
read ahead or before deleting it in CcRosReleaseFileCache(). Otherwise, you'll
just break everything. You've been warned!

This commit also partly reverts f8b5d27.

CORE-14312
2018-02-09 10:14:11 +01:00
..
cache [NTOSKRNL] Drop the always running thread for lazy writer. 2018-02-07 21:37:17 +01:00
cc [NTOSKRNL] Bring an initial (and not perfect ;-)) implementation of read ahead to our Cc! 2018-02-09 10:14:11 +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] Bring an initial (and not perfect ;-)) implementation of read ahead to our Cc! 2018-02-09 10:14:11 +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 [NTOSKRNL] Revert 6ece4e9fc2 for third tools compatibility 2018-02-08 11:50:45 +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] Drop the CcTryToInitializeFileCache() which is actually doing nothing relevant 2018-02-07 22:23:49 +01:00
ntkrnlmp
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
se
tests
vdm
vf
wmi [NTOS] Add missing brackets. Comment out some unused statements. CORE-11799 (#94) 2017-10-28 15:19:17 +01:00
CMakeLists.txt
guid.c
KrnlFun.c
ntdll.S
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
sysfuncs.lst