|
From: David W. <we...@cw...> - 2001-10-15 07:23:22
|
On Sun, Oct 14, 2001 at 07:05:23PM -0400, Phillip Susi wrote: > Who was it that recently did some work with the cache manager code? Are > you still working on it? The Cc code needs to be reworked to use mapped > section views like NT does instead of CACHE_SEGMENTs. > No, it doesn't. > Currently, trying to copy a file on a machine with 8 megs of ram causes the > cache to use all available memory, run out, and then the system locks > up. This is due to several reasons, the first being that the cache > does not currently have any mechanism to prevent it from growing > without bound. > Yes, but this shouldn't be very difficult to add. > The cache needs to map views of the files to be cached into the cache > working set, and the working set and page fault handling code will keep > the cache working set from growing without bound, as well as reclaiming > cache memory. > Why? For the cache we have exact LRU information. > The other bug in the current code is in cc/view.c in > CcRosGetCacheSegment, which does this: > > Status = MmCreateVirtualMapping(NULL, > current->BaseAddress + (i * PAGESIZE), > PAGE_READWRITE, > (ULONG)MmAllocPage(0)); > > Note that the call to MmAllocPage is not checked for failure. On my test > system, it fails when memory runs out, and returns 0, which then gets > passed to MmCreateVirtualMapping for the physical backing page. If noone > is working on this, I guess I'll go for it, but if someone already is, let > me know. > I'm working on adding support for balancing memory usage including from the cache. ==================================================== = To remove yourself from this mailing list, go to = = http://www.reactos.com/home/mailing.html = ==================================================== |