Speeding up exit(2)?

cpghost cpghost at cordula.ws
Sun Mar 15 03:01:45 PDT 2009


On Sun, Mar 15, 2009 at 10:27:53AM +0100, Wojciech Puchar wrote:
> > Not sure what's really going on there, but apparently, the process
> > reads in pages from swap that have been paged out previously
> > (according to top(1)).
> 
> is it your program and you are sure it's on exit?

Every memory hungry program is concerned; and yes: it happens exactly
on exit.

> it's because the program is writted the way it's doing a lot of things 
> (probably unneeded) on exit.

Have a look at what happens during exit:
  /usr/src/sys/kern/kern_exit.c:exit1()

especially at the call to vm_waitproc():
  /usr/src/sys/vm/vm_glue.c:vm_waitproc

which calls vmspace_exitfree():
  /usr/src/sys/vm/vm_map.c:vmspace_exitfree()

Now, vmspace_exit() and vmspace_exitfree() ultimately call:
  /usr/src/sys/vm/vm_map.c:vmspace_dofree()

It then goes deep into the bowels of vm amd pmap,
and that's the place where the pages are paged in
again (I think).

> not exit(2) itself

-cpghost.

-- 
Cordula's Web. http://www.cordula.ws/


More information about the freebsd-questions mailing list