public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	akpm@osdl.org, linux-s390@vger.kernel.org,
	frankeh@watson.ibm.com, nickpiggin@yahoo.com.au,
	linux-kernel@vger.kernel.org, virtualization@lists.osdl.org,
	schwidefsky@de.ibm.com, hugh@veritas.com
Subject: Re: [patch 6/6] Guest page hinting: s390 support.
Date: Wed, 12 Mar 2008 13:45:23 -0700	[thread overview]
Message-ID: <47D840E3.5090902@goop.org> (raw)
In-Reply-To: <47D8373C.40105@codemonkey.ws>

[-- Attachment #1: Type: text/plain, Size: 1680 bytes --]

Anthony Liguori wrote:
> Jeremy Fitzhardinge wrote:
>   
>>> With stable_if_clean you are refering to stable_if_present?
>>>       
>> No.  I misunderstood and thought that stable_if_present sets the Px 
>> state.  I'd overlooked the writable flag on page_set_volatile().
>>
>>     
>>>  If yes the
>>> answer is that this operation is used to get a page from Vx/Px back to
>>> Sx but only if the page has not been discarded.
>>>       
>> So you mean it will change Vr/Pr to Sr but everything else will fail?  
>>     
>
> Well presumably Vp/Pr => Sp?  Is is true that from the guest's 
> perspective, all of the 'p' states are identical to the 'r' states?
>   

Vp should never happen, since you'd never preserve a V page.  And surely 
it would be Pr -> Sr, since the hypervisor wouldn't push the page to 
backing store when you change the client state.

> Do the host states even really need visibility to the guest at all?  It 
> may be useful for the guest to be able to distinguish between Ur and Uz 
> but it doesn't seem necessary.

Well, you implicitly see the hypervisor state.  If you touch a [UV]z 
page then you get a fault telling you that the page has been taken away 
from you (I think).  And it would definitely help with debugging (seems 
likely there's lots of scope for race conditions if you prematurely tell 
the hypervisor you don't need the page any more...).

> BTW Jeremy, the .dot was very useful!
Yes, there's no way I'd be able to get my head around this otherwise.  
BTW, here's an updated one with the host-driven events as dashed lines, 
and a couple of extra transitions I think should be in there (but 
waiting for Martin's confirmation).

    J

[-- Attachment #2: gph.dot --]
[-- Type: text/plain, Size: 1344 bytes --]

digraph gph {
	/* Guest state changes on resident pages */
	Ur -> Sr [ label="set stable" ];
	Ur -> Vr [ label="set volatile\n(w=0)" ];
	Ur -> Pr [ label="set volatile\n(w=1)" ];

	Sr -> Ur [ label="set unused" ];
	Sr -> Vr [ label="set volatile\n(w=0)" ];
	Sr -> Pr [ label="set volatile\n(w=1)" ];

	Vr -> Sr [ label="set stable(_if_present)" ];
	Vr -> Ur [ label="set unused" ];
	Vr -> Pr [ label="set volatile\n(w=1)" ];

	Pr -> Sr [ label="set stable(_if_present)" ];
	Pr -> Vr [ label="set volatile\n(w=0)" ];
	Pr -> Ur [ label="set unused" ];

	/* Guest state changes on zero pages */
	Uz -> Sz [ label="set stable" ];
	Uz -> Vz [ label="set volatile" ];

	Sz -> Vz [ label="set volatile" ];
	Sz -> Uz [ label="set unused" ];

	Vz -> Sz [ label="set stable" ];
	Vz -> Uz [ label="set unused" ];

	/* Guest state changes on host-swapped pages */
	Sp -> Uz [ label="set unused" ];
	Sp -> Vz [ label="set volatile" ];

	/* Guest touches pages */
	Sz -> Sr [ label="guest write" ];
	Sp -> Sr [ label="guest access" ];
	Vz -> Vr [ label="guest write" ];

	/* Host actions */
	Sr -> Sp [ label="host swap", style=dashed ];
	Ur -> Uz [ label="host discard", style=dashed ];
	Vr -> Vz [ label="host discard", style=dashed ];
	Pr -> Sp [ label="host discard\n(dirty)", style=dashed ];
	Pr -> Vz [ label="host discard\n(clean)", style=dashed ];
}

[-- Attachment #3: gph.pdf --]
[-- Type: application/pdf, Size: 16441 bytes --]

  reply	other threads:[~2008-03-12 20:47 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-12 13:21 [patch 0/6] Guest page hinting version 6 Martin Schwidefsky
2008-03-12 13:21 ` [patch 1/6] Guest page hinting: core + volatile page cache Martin Schwidefsky
2008-03-12 23:12   ` Rusty Russell
2008-03-13  9:24     ` Martin Schwidefsky
2008-03-12 13:21 ` [patch 2/6] Guest page hinting: volatile swap cache Martin Schwidefsky
2008-03-12 13:21 ` [patch 3/6] Guest page hinting: mlocked pages Martin Schwidefsky
2008-03-12 23:27   ` Rusty Russell
2008-03-13  9:13     ` Martin Schwidefsky
2008-03-12 13:21 ` [patch 4/6] Guest page hinting: writable page table entries Martin Schwidefsky
2008-03-12 23:35   ` Rusty Russell
2008-03-13  9:11     ` Martin Schwidefsky
2008-03-12 13:21 ` [patch 5/6] Guest page hinting: minor fault optimization Martin Schwidefsky
2008-03-12 13:21 ` [patch 6/6] Guest page hinting: s390 support Martin Schwidefsky
2008-03-12 16:19   ` Jeremy Fitzhardinge
2008-03-12 16:28     ` Martin Schwidefsky
2008-03-12 16:44       ` Jeremy Fitzhardinge
2008-03-12 16:59         ` Martin Schwidefsky
2008-03-12 17:48           ` Jeremy Fitzhardinge
2008-03-12 20:04             ` Anthony Liguori
2008-03-12 20:45               ` Jeremy Fitzhardinge [this message]
2008-03-12 20:56                 ` Anthony Liguori
2008-03-12 21:36                   ` Jeremy Fitzhardinge
2008-03-13  9:45                     ` Martin Schwidefsky
2008-03-13 16:07                       ` Jeremy Fitzhardinge
2008-03-13 16:17                         ` Jeremy Fitzhardinge
2008-03-13 16:55                           ` Martin Schwidefsky
2008-03-13 17:05                             ` Jeremy Fitzhardinge
2008-03-13 17:23                               ` Martin Schwidefsky
2008-03-13  9:42                   ` Martin Schwidefsky
2008-03-13  9:36                 ` Martin Schwidefsky
2008-03-13  9:32               ` Martin Schwidefsky
2008-03-12 22:41 ` [patch 0/6] Guest page hinting version 6 Rusty Russell
2008-03-13  9:47   ` Martin Schwidefsky
2008-03-13 16:57 ` Hugh Dickins
2008-03-13 17:14   ` Martin Schwidefsky
2008-03-13 17:45   ` Zachary Amsden
2008-03-13 19:45     ` Andrea Arcangeli
2008-03-13 21:41       ` Zachary Amsden
2008-03-13 18:41   ` Jeremy Fitzhardinge
2008-03-13 18:55     ` Hugh Dickins
2008-03-13 19:53       ` Zachary Amsden
2008-03-14 18:30         ` Jeremy Fitzhardinge
2008-03-14 21:32           ` Zachary Amsden
2008-03-14 21:37             ` Jeremy Fitzhardinge
2008-03-17  9:21             ` Martin Schwidefsky
2008-05-06 15:33   ` Martin Schwidefsky
2008-05-06 19:46     ` Rik van Riel
2008-05-07  3:49       ` Zachary Amsden
2008-05-07  7:00         ` Martin Schwidefsky
  -- strict thread matches above, loose matches on Subject: below --
2009-03-27 15:09 [patch 0/6] Guest page hinting version 7 Martin Schwidefsky
2009-03-27 15:09 ` [patch 6/6] Guest page hinting: s390 support Martin Schwidefsky
2009-04-01 16:18   ` Rik van Riel
2007-06-28 16:40 [patch 0/6] resend: guest page hinting version 5 Martin Schwidefsky
2007-06-28 16:40 ` [patch 6/6] Guest page hinting: s390 support Martin Schwidefsky
2007-05-11 13:58 [patch 0/6] [rfc] guest page hinting version 5 Martin Schwidefsky
2007-05-11 13:58 ` [patch 6/6] Guest page hinting: s390 support Martin Schwidefsky

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=47D840E3.5090902@goop.org \
    --to=jeremy@goop.org \
    --cc=akpm@osdl.org \
    --cc=anthony@codemonkey.ws \
    --cc=frankeh@watson.ibm.com \
    --cc=hugh@veritas.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox