[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 08/12] xenpaging: drop paged pages in guest_remove_page
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); > + } > +} > + _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |