|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/mm: Improve ring management for memory events. Do not lose guest events
On Wed, Jan 11, Andres Lagar-Cavilla wrote:
> @@ -898,7 +902,7 @@ void p2m_mem_paging_drop_page(struct dom
> * already sent to the pager. In this case the caller has to try again until
> the
> * gfn is fully paged in again.
> */
> -void p2m_mem_paging_populate(struct domain *d, unsigned long gfn)
> +int p2m_mem_paging_populate(struct domain *d, unsigned long gfn)
> {
> struct vcpu *v = current;
> mem_event_request_t req;
What is the reason to return an error here? None of the callers need to
check it because they already know their condition (which is
p2m_is_paging()). And your patch doesnt seem to update them. Foreigners
try again, requests from the target domain do currently also try again
until my change to use wait queues in gfn_to_mfn* is finished. And even
then the call p2m_mem_paging_populate() will most likely remain a
one-shot/must-succeed thing if the request is from the target domain.
The only condition to care about in p2m_mem_paging_populate() is -ENOSYS
from mem_event_claim_slot(), which your patch already handles by
crashing the guest. Since the guest is in an kind-of undefined state
anyway if the pager disappears while some gfns are still in paging state,
this is one of the possible actions.
Olaf
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |