Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Oct 2002 11:14:37 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        David Schultz <dschultz@uclink.Berkeley.EDU>
Cc:        Peter Wemm <peter@wemm.org>, Sean Kelly <smkelly@zombie.org>, hackers@FreeBSD.ORG
Subject:   Re: swapoff?
Message-ID:  <200210111814.g9BIEbah040688@apollo.backplane.com>
References:  <20020713071911.GA1558@HAL9000.wox.org> <20020713073404.9869A3811@overcee.wemm.org> <20020713115746.GA2162@HAL9000.wox.org> <200207131636.g6DGaoqh081285@apollo.backplane.com> <20021007153845.GA371@HAL9000.homeunix.com> <200210072347.g97Nl3Zo049415@apollo.backplane.com> <20021008113614.GA319@HAL9000.homeunix.com> <200210081745.g98Hjkam078883@apollo.backplane.com> <20021011130154.GA16549@HAL9000.homeunix.com>

next in thread | previous in thread | raw e-mail | index | archive | help
:
:Thanks, your solution looks pretty good.  I guess as part of the
:try_to_page_it_all_in, I'll want to call swap_pager_unswapped() on
:each page.  Now I really wish I had noticed swap_pager_unswapped()
:earlier; it would have made my job much easier!

    As long as you properly check and dirty the page you can get rid
    of the backing swap.

:I'm worried that vm_proc_swapin_all() has a similar race with the
:swapout daemon.  Presently I assume that my references to the
:UPAGES object and the associated pages remain valid after the
:faultin(), and that I can use swap_pager_freeswapspace() to free
:the correct metadata, instead of calling swap_pager_unswapped() on
:each page.  Should just hold the process lock until the metadata
:are freed?

    Hmm.  Well, the proc lock is not held during vm_proc_swapin()
    (but the PS_SWAPPINGIN flag is set).  The proc lock is held during
    vm_proc_swapout().

    In your vm_proc_swapin_all() you seem to be doing the right thing
    in regards to the mutexes and retry, and you have already marked
    the device is SW_CLOSING so if something does get in there and
    try to swap the process back in it shouldn't allocate swap you are
    trying to free.

    I think you may be ok.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210111814.g9BIEbah040688>