CIA.vc
sir_richard
Real-time open source activity stats
Stats » Authors » sir_richard
informationsyndicateUTC clock
07:46 on May 28, 2012
event counters
The last message was received 3.19 weeks ago at 23:51 on May 05, 2012
0 messages so far today, 0 messages yesterday
0 messages so far this week, 0 messages last week
2 messages so far this month, 7 messages last month
590 messages since the first one, 2.39 years ago, for an average of 1.48 days between messages
recent messages
dateReversed sort columnprojectcontentlink
23:51 on May 05ReactOS
Commit by sir_richard :: r56516 reactos/ntoskrnl/mm/ARM3/virtual.c: (link)
[NTOS]: Cleanup MiQueryAddressState.
#
23:40 on May 05ReactOS
Commit by sir_richard :: r56515 reactos/ntoskrnl/mm/ARM3/virtual.c: (link)
[NTOS]: Attempt to hackfix MiGetPageProtection to support the case seen in OllyDBG.
[NTOS]: Implement Case C of NtFreeVirtualMemory, which is sometimes seen in some heap logs. The hard part is figuring out the right amount of committed/decommitted pages. Only supports 2-level paging for now as the algorithm is already messy enough.
#
11:18 on Apr 02ReactOS
Commit by sir_richard :: r56317 reactos/ntoskrnl/mm/ (ARM3/section.c section.c): (link)
[NTOS]: Add support for unmapping ARM3 sections. Trunk should now be ready for switching to ARM3 shared-memory, pagefile-backed sections, instead of Ros Mm.
#
10:49 on Apr 02ReactOS
Commit by sir_richard :: r56316 reactos/ntoskrnl/mm/ARM3/pfnlist.c: (link)
[NTOS]: Correctly handle transition vs free PTEs in MiDecrementShareCount.
#
02:39 on Apr 01ReactOS
Commit by sir_richard :: r56296 reactos/ntoskrnl/mm/ARM3/pagfault.c: (link)
[NTOS]: Fix a typo spotted by Stefan.
#
01:21 on Apr 01ReactOS
Commit by sir_richard :: r56293 reactos/ntoskrnl/mm/ARM3/pfnlist.c: (link)
[NTOS]: Partly revert back to old behavior in attempt to fix regression.
#
00:10 on Apr 01ReactOS
Commit by sir_richard :: r56292 reactos/ntoskrnl/mm/ARM3/virtual.c: (link)
[NTOS]: Add support for calling NtAllocateVirtualMemory on an ARM3 section that was SEC_RESERVEd.
#
00:02 on Apr 01ReactOS
Commit by sir_richard :: r56291 reactos/ntoskrnl/mm/ARM3/pfnlist.c: (link)
[NTOS]: Add initial support for standby page list and modified page list in the current page list routines. Add support for prototype PTEs in a few more cases, including handling of transition pages. Should not affect any of the current code as those lists/transition pages aren't yet used.
#
00:01 on Apr 01ReactOS
Commit by sir_richard :: r56290 reactos/ntoskrnl/mm/ARM3/virtual.c: (link)
[NTOS]: Support getting the protection mask for other kinds of VADs in NtQueryVirtualMemory, instead of an ASSERT.
#
11:32 on Mar 26ReactOS
Commit by sir_richard :: r56233 reactos/ntoskrnl/mm/ARM3/ (pagfault.c pfnlist.c): (link)
[NTOS]: Add support for determining transition vs. demand zero faults (the former should not yet happen).
[NTOS]: Add a function for removing transition pages from either the standby or modified page lists (not yet used).
#
11:17 on Mar 26ReactOS
Commit by sir_richard :: r56232 reactos/ntoskrnl/mm/ (6 files in 2 dirs): (link)
[NTOS]: Perform system space mappings under the SystemSpaceViewLockPointer guarded mutex.
[NTOS]: Expand system space view buckets when they are running low.
[NTOS]: Support SEC_BASED section creates and mappings, implement based VAD parsing.
[NTOS]: Support section mappings at a fixed base address and check for conflicts.
[NTOS]: Define 8 prioritized standyby lists and initialize them. Also define the modified page list.
[NTOS]: Support mapping with SEC_COMMIT less than the entire size of the section.
[NTOS]: Detect and assert if ARM3 sections are attempted to be unmapped, since this isn't supported yet.
[NTOS]: Clean up some DPRINTs and clarify ARM3 ASSERTs vs. Windows ASSERTs.
#
20:49 on Mar 05ReactOS
Commit by sir_richard :: r56039 reactos/ntoskrnl/ex/init.c: (link)
[NTOS]: Use ARM3 sections for the NLS mapping -- excercises both the system mapping as well as the per-process mapping. WorksForMe(c). Hopefully things will be better than last time now, and their usage can increase.
#
20:20 on Mar 05ReactOS
Commit by sir_richard :: r56035 reactos/ntoskrnl/ (8 files in 4 dirs): (link)
Two Part Patch which fixes ARM3 Section Support (not yet enabled). This had been enabled in the past for testing and resulted in bizare crashes during testing. The amount of fixing required should reveal why:
Part 1: Page Fault Path Fixes
[NTOS]: As an optimization, someone seems to have had changed the MiResolveDemandZeroFault prototype not to require a PTE, and to instead take a protection mask directly. While clever, this broke support for ARM3 sections, because the code was now assuming that the protection of the PTE for the input address should be used -- while in NT Sections we instead use what are called ProtoType PTEs. This was very annoying to debug, but since the cause has been fixed, I've reverted back to the old convention in which the PTE is passed-in, and this can be a different PTE than the PTE for the address, as it should be.
[NTOS]: Due to the reverting of the original path, another optimization, in which MiResolveDemandZeroFault was being called directly instead of going through MiDispatchFault and writing an invalid demand-zero PDE has also been removed. PDE faults are now going through the correct, expected path.
[NTOS]: MiResolveDemandZeroFault was always creating Kernel PTEs. It should create User PTEs when necessary.
[NTOS]: MiDeletePte was assuming any prototype PTE is a forked PTE. Forked PTEs only happen when the addresses in the PTE don't match, so check for that too.
Part 2: ARM3 Section Object Fixes
[NTOS]: Fix issue when trying to make both ROS_SECTION_OBJECTs and NT's SECTION co-exist. We relied on the *caller* knowing what kind of section this is, and that can't be a good idea. Now, when the caller requests an ARM3 section vs a ROS section, we use a marker to detect what kind of section this is for later APIs.
[NTOS]: For section VADs, we were storing the ReactOS MEMORY_AREA in the ControlArea... however, the mappings of one individual section object share a single control area, even though they have multiple MEMORY_AREAs (one for each mapping). As such, we overwrote the MEMORY_AREA continously, and at free-time, double or triple-freed the same memory area.
[NTOS]: Moved the MEMORY_AREA to the "Banked" field of the long VAD, instead of the ControlArea. Allocate MMVAD_LONGs for ARM3 sections for now, to support this. Also, after deleting the MEMORY_AREA while parsing VADs, we now use a special marker to detect double-frees, and we also use a special marker to make sure we have a Long VAD as expected.
#
23:29 on Mar 04ReactOS
Commit by sir_richard :: r56010 reactos/ntoskrnl/mm/freelist.c: (link)
[NTOS]: For debugging only, want to see what is excercising MmAllocatePagesForMdl. The way I wrote this seems broken, but I can't find anything to test it with.
#
21:34 on Mar 04ReactOS
Commit by sir_richard :: r56000 reactos/ntoskrnl/ (6 files in 2 dirs): (link)

[MEGAPERF]: This build introduces the following performance boosts:

  • Using a dead stack lookaside list for up to 5 dead kernel thread stacks. 1500% improvement when rapidly destroying/creating threads, such as during second stage setup and many winetests.
  • Using a free pool page lookaside list for up to 12 free non-paged or paged pool pages. 800% improvement when allocating big pages from the pool, as well as during pool expansion.
  • Using a bucketized per-processor and local list (in the KPRCB) for block sizes between 1 and 32 bytes. 1000% improvement when rapidly allocating/freeing small pool allocations, and 8x reduction in pool fragmentation.
#
21:21 on Mar 04ReactOS
Commit by sir_richard :: r55999 reactos/ntoskrnl/mm/ARM3/ (pagfault.c virtual.c): (link)
[NTOS]: Drop a reference count to the page table in MiDeleteSystemPageableVm as ARM3 now owns PDEs. This helps out yet again to free a little bit of extra RAM up.
#
06:56 on Mar 04ReactOS
Commit by sir_richard :: r55988 reactos/ntoskrnl/mm/ARM3/virtual.c: (link)
[NTOS]: Release the *right* lock. "Fix the fix" as the yuppies say.
#
06:34 on Mar 04ReactOS
Commit by sir_richard :: r55985 reactos/ntoskrnl/mm/ARM3/virtual.c: (link)
[NTOS]: Don't keep the address space locked when failing in NtFreeVirtualMemory. Dang this testbot is good at catching those bugs.
#
05:41 on Mar 04ReactOS
Commit by sir_richard :: r55982 reactos/ntoskrnl/ (6 files in 3 dirs): (link)
[NTOS]: Delete anonmem.c and move the ARM3-compatible code to ARM3/virtual.c. Whatever remained is for sections only, so move it to mm/section.c
[NTOS]: Fix some broken assertions in NtFreeVirtualMemory. Lesson: Do not try to "optimize" Microsoft's ASSERTs.
#
04:25 on Mar 04ReactOS
Commit by sir_richard :: r55981 reactos/lib/rtl/avlsupp.c: (link)
[RTL]: Sorry, forgot this critical part of the VAD commit.
#