[ros-dev] Re: [ros-svn] [ion] 15492: Nonpaged Pool Liberation Day: Allow PagedPool to be used earlier, allow fast mutex to be used earlier on debug builds. Allocate all Se stuff from PagedPool, set the right object types to use paged pool, allocate all strings from paged pool, allocate PE sections from paged pool, and a bunch of other things which should, imo, be in paged pool. If anyone has any contradicting proof, let me know...until then, enjoy ~4-6MB more NonPagedPool

Alex Ionescu ionucu at videotron.ca
Wed May 25 16:25:22 CEST 2005


Hartmut Birr wrote:

>ion at svn.reactos.com wrote:
>
>  
>
>>Nonpaged Pool Liberation Day: Allow PagedPool to be used earlier, allow fast mutex to be used earlier on debug builds. Allocate all Se stuff from PagedPool, set the right object types to use paged pool, allocate all strings from paged pool, allocate PE sections from paged pool, and a bunch of other things which should, imo, be in paged pool. If anyone has any contradicting proof, let me know...until then, enjoy ~4-6MB more NonPagedPool
>>
>>
>> 
>>
>>    
>>
>Hi,
>
>I don't like the exchange from NonPagedPool to PagePool at the current
>state of ros. There are two reasons: 
>
>A) The allocation of paged pool is very slowly compared with the non
>paged pool allocation.
>  
>
I am aware it's a bit slower (it shouldn't be noticeable), but do we 
really need to store the Bootup SID, ACL and SDs in *nonpaged* memory? 
Since when is security a top-priority for speed? Same thing for strings. 
Windows doesn't even let you RtlCreate strings in non-paged...it's a 
hack we created because our paged pool memory didn't work early enough.

The only reasons those allocations were ever done in nonpaged pool is 
because it was impossible to do them in paged pool earlier, but I've 
fixed that.

>B) Since the change to the new object type structures, ros has a big
>memory leakage in the memory (pool) allocation/deallocation of objects.
>For the non paged pool, there exist some debug functions to find the
>problem. The paged pool doesn't implement anything to find such problems.
>  
>
I can try to quickly hack up a new debug function to dump the Paged Pool 
(doesn't one exist?).
I disagree with hacking the *whole tree* for *everyone* just so that 
some developers can do debugging. I still have them set to nonpaged 
locally, just like I have some stuff //#define NDEBUG locally to help me 
debug problems..but that doesn't mean that everyone should be penalized.

After my changes, I can now boot ROS with only 16MB of Physical Memory. 
I think it's more important then allocating a security ACL 0.0001 
seconds faster... if you think otherwise, I'm open to discussion.

>- Hartmut
>  
>
Best regards,
Alex Ionescu


More information about the Ros-dev mailing list