[ros-dev] A slightly more aggressive mm patch

Alex Ionescu ionucu at videotron.ca
Mon Jan 29 06:42:47 CET 2007

art yerkes wrote:
> http://www.superheterodyne.net/reactos/freelist_remove_type.diff
> This removes the redundant notion of .Flags.Type in freelist, and leaves only
> the non-redundant MM_PHYSICAL_PAGE_BIOS.  MM_PHYSICAL_PAGE_FREE is reported
> when the page has a 0 reference count and MM_PHYSICAL_PAGE_USED is reported
> when the reference count is nonzero.
> A function, MmGetPageType is added to replace the old functionality.

I get this on-boot during first-stage, before I even see the installer

(ntoskrnl\mm\freelist.c:816) Freeing page with flags 2
KeBugCheck at ntoskrnl\mm\freelist.c:817

*** Fatal System Error: 0x00000000

<ntoskrnl.exe:2722 (ntoskrnl/ke/bug.c:1089 (KeBugCheck))>
<ntoskrnl.exe:523fd (ntoskrnl/mm/freelist.c:817 (MmDereferencePage))>
<ntoskrnl.exe:50b1c (ntoskrnl/mm/balance.c:111
<ntoskrnl.exe:8f110 (ntoskrnl/mm/i386/page.c:1022 (MmDeleteVirtualMapping))>
<ntoskrnl.exe:34fcf (ntoskrnl/io/iomgr/driver.c:803
<ntoskrnl.exe:ab245 (ntoskrnl/io/iomgr/iomgr.c:512 (IoInitSystem))>
<ntoskrnl.exe:214e1 (ntoskrnl/ex/init.c:1168 (Phase1InitializationDiscard))>
<ntoskrnl.exe:21a1a (ntoskrnl/ex/init.c:1235 (Phase1Initialization))>
<ntoskrnl.exe:7b314 (ntoskrnl/ps/thread.c:158 (PspSystemThreadStartup))>

Does the old patch (already commited) conflict with this one?

> Init memory being freed seems to cause a lot of grief.  I'm going to see if
> there's a way to decentralize how those pages are set up, given that the 
> method used to dispose of them is spread out too.

I suggest disabling init memory freeing for now, I've slowly taken out
functions of INIT_FUNCTION for some time now, since I never really
trusted the system.

Best regards,
Alex Ionescu
Project Lead, TinyKRNL
Kernel-Mode Software Design Engineer, ReactOS

More information about the Ros-dev mailing list