Messages in this thread | | | Date | Thu, 6 Dec 2001 10:43:17 -0500 | From | Eric-Olivier Lamey <> | Subject | Re: Removing an executable while it runs |
| |
On Wed, Dec 05, 2001 at 07:25, Jeff Dike wrote: > twalberg@mindspring.com said: > > mlockall() only locks those pages that are **currently** paged in, or > > optionally those that will be paged in in the future. Unless you have > > a way to make sure that all pages of the binary are actually in memory > > before you call mlockall(), this gains you nothing. > > No, mlockall will page in the entire process before returning if you ask it to. > > See this snippet in mlock_fixup: > > if (newflags & VM_LOCKED) { > pages = -pages; > make_pages_present(start, end); > } > > VM_LOCKED comes in through the mlockall system call. > > Jeff
Well, according to the man page, mister Walberg is right. How can I force mlockall to page in the entire process ? And if it is possible, I guess it won't resolve my problem since it is the filesystem which refuses to release the blocks, right ? To be more precise, here is my situation: the executable file is located on a ramfs filesystem. Once it is started, I would like to get the space back so that the RAM can be used. Is there a clean solution ?
P.S: on behalf of Cyrille (who made the first post), I would like to thank you for your answers, it is greatly appreciated.
P.P.S: is it required to include the people involved in the thread in the Cc: field ? I have looked in the mailing list FAQ and have not found the reason.
-- Eric-Olivier Lamey - 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/
| |