Re: [patch 6/6] Guest page hinting: s390 support.

From: Jeremy Fitzhardinge
Date: Wed Mar 12 2008 - 12:45:50 EST


Martin Schwidefsky wrote:
That is the first block of state transitions: {Ur,Sr,Vr,Pr}
You can go from any of the four states to any of the remaining three.

You only mention page_set_{unused,stable,volatile}. Is page_set_stable_if_present() the fourth. And shouldn't that be "stable_if_clean":

- potential volatile (P): the page has useful content. The host system
is allowed to discard the content after it has checked the dirty bit
of the page. It has to deliver a discard fault with the absolute
address of the page if the guest tries to access it.


The use of "stable" in the function call and "volatile" in this description is a bit confusing. My understanding is that a page in this state is either stable or volatile depending on whether its dirty, which makes sense, but it would be good to consistently refer to it in the same way.

Updated .dot attached.

J digraph gph {
Ur -> Sr [ label="set stable" ];
Ur -> Vr [ label="set volatile" ];
Ur -> Ur [ label="set unused" ];
Ur -> Pr [ label="set stable_if_present" ];

Sr -> Sr [ label="set stable" ];
Sr -> Vr [ label="set volatile" ];
Sr -> Ur [ label="set unused" ];
Sr -> Pr [ label="set stable_if_present" ];

Vr -> Sr [ label="set stable" ];
Vr -> Vr [ label="set volatile" ];
Vr -> Ur [ label="set unused" ];
Vr -> Pr [ label="set stable_if_present" ];

Pr -> Sr [ label="set stable" ];
Pr -> Vr [ label="set volatile" ];
Pr -> Ur [ label="set unused" ];
Pr -> Pr [ label="set stable_if_present" ];

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

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

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

Ur -> Uz [ label="host evict" ];

Sz -> Sr [ label="guest write" ];
Sr -> Sp [ label="host swap" ];
Sp -> Sr [ label="guest access" ];

Sp -> Uz [ label="guest discard" ];
Sp -> Vz [ label="set volatile" ];

Pr -> Sp [ label="host discard dirty" ];
Pr -> Vz [ label="host discard clean" ];
}

Attachment: gph.pdf
Description: Adobe PDF document