From: Hubertus Franke <frankeh@watson.ibm.com>
To: schwidefsky@de.ibm.com
Cc: Rik van Riel <riel@redhat.com>,
linux-kernel@vger.kernel.org, virtualization@lists.osdl.org,
akpm@osdl.org, nickpiggin@yahoo.com.au, rhim@cc.gatech.edu
Subject: Re: [patch 1/9] Guest page hinting: unused / free pages.
Date: Wed, 13 Sep 2006 13:05:20 -0400 [thread overview]
Message-ID: <45083A50.8030708@watson.ibm.com> (raw)
In-Reply-To: <1158159543.2560.29.camel@localhost>
Martin Schwidefsky wrote:
> On Wed, 2006-09-13 at 10:45 -0400, Rik van Riel wrote:
>
>>>But another trouble you have not mentioned is what happens to pages
>>>with pending make-volatile that need to and/or have been made stable
>>>in the meantime. They too need to be removed from this pending list.
>>
>>At the time where you walk the set of pages (pagevec?) to make
>>volatile, you can check whether the page flags are still right.
>
>
> A make volatile can be done anytime as long as the page is in page
> cache. Before a page can be made stable the caller needs to make sure
> that one of the conditions that prevent a make volatile becomes true.
> So a page in the pending make-volatile array does not have to be removed
> because a make stable has been done. It only has to be removed if it
> gets freed.
>
>
>>A page that was set to be marked volatile with the hypervisor,
>>but later turned stable again would have that indicated in its
>>page flags, right?
>
>
> Several page flag bits and some other conditions like "has a mapping"
> and "reference count is map count + 1". Most of the checks that need to
> be done for make volatile are on page flags.
>
Interesting..
But don't we have to do some locking on the page to avoid race conditions?
A page needs to be consistent between check through __page_discardable and
committing to the hypervisor. We could raise the PG_state_change flag for
that period.
next prev parent reply other threads:[~2006-09-13 17:05 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-01 11:09 [patch 1/9] Guest page hinting: unused / free pages Martin Schwidefsky
2006-09-01 15:33 ` Dave Hansen
2006-09-01 15:33 ` Dave Hansen
2006-09-01 15:43 ` Martin Schwidefsky
2006-09-01 15:56 ` Dave Hansen
2006-09-01 15:56 ` Dave Hansen
2006-09-01 16:05 ` Martin Schwidefsky
2006-09-01 16:10 ` Dave Hansen
2006-09-01 16:10 ` Dave Hansen
2006-09-12 22:47 ` Rik van Riel
2006-09-13 0:07 ` Hubertus Franke
2006-09-13 0:07 ` Hubertus Franke
2006-09-13 1:29 ` Rik van Riel
2006-09-13 8:56 ` Martin Schwidefsky
2006-09-13 8:56 ` Martin Schwidefsky
2006-09-13 12:06 ` Hubertus Franke
2006-09-13 12:45 ` Martin Schwidefsky
2006-09-13 12:45 ` Martin Schwidefsky
2006-09-13 13:06 ` Hubertus Franke
2006-09-13 14:45 ` Rik van Riel
2006-09-13 14:59 ` Martin Schwidefsky
2006-09-13 14:59 ` Martin Schwidefsky
2006-09-13 17:05 ` Hubertus Franke [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-08-24 14:29 Martin Schwidefsky, Martin Schwidefsky, Hubertus Franke, Himanshu Raj
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45083A50.8030708@watson.ibm.com \
--to=frankeh@watson.ibm.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=rhim@cc.gatech.edu \
--cc=riel@redhat.com \
--cc=schwidefsky@de.ibm.com \
--cc=virtualization@lists.osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.