Re: Removing an executable while it runs

From: Eric-Olivier Lamey (eric.olivier.lamey@savoirfairelinux.com)
Date: Thu Dec 06 2001 - 10:43:17 EST


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/



This archive was generated by hypermail 2b29 : Fri Dec 07 2001 - 21:00:33 EST