From: Olaf Hering <olaf@aepfle.de>
To: xen-devel@lists.xensource.com
Subject: Re: [PATCH 08/12] xenpaging: drop paged pages in guest_remove_page
Date: Fri, 14 Jan 2011 17:53:07 +0100 [thread overview]
Message-ID: <20110114165307.GA9060@aepfle.de> (raw)
In-Reply-To: <20110110164348.394538387@aepfle.de>
On Mon, Jan 10, Olaf Hering wrote:
> Simply drop paged-pages in guest_remove_page(), and notify xenpaging to
> drop its reference to the gfn. If the ring is full, the page will
> remain in paged-out state in xenpaging. This is not an issue, it just
> means this gfn will not be nominated again.
> send one-way notification to pager to release page
Here I need some help to make that a true one-way event.
The currently applied version of the patch just fills up the ring, with
the result that the guest can not proceed because there is no way to
tell the pager about required page-in requests.
How can the request which was just consumed with get_response() be freed
from the ring buffer? I tried a modified version of
mem_event_pause_vcpu() which does not call mem_event_pause_vcpu(), but
that does not change anything. It seems the stuck guest is a result of
incorrect mem_event_ring handling.
Olaf
> +void p2m_mem_paging_drop_page(struct p2m_domain *p2m, unsigned long gfn)
> +{
> + struct vcpu *v = current;
> + mem_event_request_t req;
> + struct domain *d = p2m->domain;
> +
> + /* Check that there's space on the ring for this request */
> + if ( mem_event_check_ring(d) == 0)
> + {
> + /* Send release notification to pager */
> + memset(&req, 0, sizeof(req));
> + req.flags |= MEM_EVENT_FLAG_DROP_PAGE;
> + req.gfn = gfn;
> + req.vcpu_id = v->vcpu_id;
> +
> + mem_event_put_request(d, &req);
> + }
> +}
> +
next prev parent reply other threads:[~2011-01-14 16:53 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-10 16:43 [PATCH 00/12] xenpaging changes for xen-unstable Olaf Hering
2011-01-10 16:43 ` [PATCH 01/12] xenpaging: remove domain_id and mfn from struct xenpaging_victim Olaf Hering
2011-01-10 16:43 ` [PATCH 02/12] xenpaging: specify policy mru_size at runtime Olaf Hering
2011-01-10 16:43 ` [PATCH 03/12] xenpaging: mkdir /var/lib/xen/xenpaging during make install Olaf Hering
2011-01-10 16:43 ` [PATCH 04/12] xenpaging: print page-in/page-out progress Olaf Hering
2011-01-10 16:43 ` [PATCH 05/12] xenpaging: make three functions static Olaf Hering
2011-01-11 18:36 ` Ian Jackson
2011-01-10 16:43 ` [PATCH 06/12] xenpaging: update machine_to_phys_mapping[] during page deallocation Olaf Hering
2011-01-11 10:37 ` Keir Fraser
2011-01-11 11:00 ` Olaf Hering
2011-01-11 11:29 ` Keir Fraser
2011-01-10 16:43 ` [PATCH 07/12] xenpaging: update machine_to_phys_mapping[] during page-in Olaf Hering
2011-01-10 16:43 ` [PATCH 08/12] xenpaging: drop paged pages in guest_remove_page Olaf Hering
2011-01-14 16:53 ` Olaf Hering [this message]
2011-01-10 16:43 ` [PATCH 09/12] xenpaging: prevent page-out of gfn 0x80 Olaf Hering
2011-01-10 16:43 ` [PATCH 10/12] xenpaging: handle HVMCOPY_gfn_paged_out in copy_from/to_user Olaf Hering
2011-01-10 16:43 ` [PATCH 11/12] xenpaging: start xenpaging via config option Olaf Hering
2011-01-10 16:43 ` [PATCH 12/12] xenpaging: document missing live migration Olaf Hering
2011-01-11 17:20 ` [PATCH 00/12] xenpaging changes for xen-unstable Ian Jackson
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=20110114165307.GA9060@aepfle.de \
--to=olaf@aepfle.de \
--cc=xen-devel@lists.xensource.com \
/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.