Messages in this thread | | | From | Jakub Jelinek <> | Subject | Re: PGD mumap bug | Date | Tue, 2 Jun 1998 13:32:32 +0200 (MET DST) |
| |
> I've been investigating the PTE "bug" that was released on bugtraq > last week. I've determined that there is a bug in the mumap process. > > Specifically you can run the exploit program (just does an mmap and > munmap for each 4MB page in the process VMA) and hit Shift-Scrollock > and watch the free pages fluctuate (the process uses 783 GFP_KERNEL > pages, even though it's called munmap for every mapping). > > The problem is this: > > mmap simply sets up a number of page table entries to alias a chunk > of memory to a file/device/etc. When munmap is called, it calls > zap_page_range on the mmap. The problem is that when zap_page_range > is called, the pgd for that segment is not unallocated once it becomes > unused. So, you have a superfluous, unused pgd for each 4MB chunk > in the 3GB VMA of the process. I've tried hacking zap_page_range > and munmap to free the pgd, but all I succeed in doing is getting > a real fast reboot when init starts ;(
I'm working on a solution for this, in fact not for the sake of free memory, but to increase exit speed. I'll see if that ever might get accepted. Stay tuned.
Cheers, Jakub ___________________________________________________________________ Jakub Jelinek | jj@sunsite.mff.cuni.cz | http://sunsite.mff.cuni.cz Administrator of SunSITE Czech Republic, MFF, Charles University ___________________________________________________________________ Ultralinux - first 64bit OS to take full power of the UltraSparc Linux version 2.1.103 on a sparc64 machine (498.80 BogoMips). ___________________________________________________________________
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |