Messages in this thread | | | Date | Wed, 05 Dec 2001 15:00:13 -0500 | From | "Christopher Friesen" <> | Subject | Re: Removing an executable while it runs |
| |
Brian Gerst wrote: > > Cyrille Beraud wrote: > > > > Hello, > > I would like to remove an executable from the file-system while it is > > running and > > get all the blocks back immediately, not after the end of the program. > > Is this possible ? > > From what I understand, the inode is not released until the program > > ends. Do all the > > file-systems behave the same way ? > > > > Thank you for your help. > > It is not possible to reclaim the disk space until the program exits. > This is because of demand paging of executables. The file must be kept > around to handle possible future page faults, otherwise the program > would crash if it called code that hadn't been loaded yet or was > discarded due to memory pressure. This is true of all filesystems.
Couldn't you use mlockall() to ensure that demand paging is not a factor? Then you should be able to free up the disk space since the actual application is guaranteed to be in ram.
Chris
-- Chris Friesen | MailStop: 043/33/F10 Nortel Networks | work: (613) 765-0557 3500 Carling Avenue | fax: (613) 765-2986 Nepean, ON K2H 8E9 Canada | email: cfriesen@nortelnetworks.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |