From: Olaf Hering <olaf@aepfle.de>
To: xen-devel@lists.xensource.com
Subject: [PATCH 01 of 12] xenpaging: correct dropping of pages to avoid full ring buffer
Date: Tue, 07 Jun 2011 11:53:03 +0200 [thread overview]
Message-ID: <6b8446bf4e5fbfa93169.1307440383@probook.site> (raw)
In-Reply-To: <patchbomb.1307440382@probook.site>
# HG changeset patch
# User Olaf Hering <olaf@aepfle.de>
# Date 1307437209 -7200
# Node ID 6b8446bf4e5fbfa93169ec2509364c0fde74beca
# Parent c231a26a29327aa3c737170e04c738289be2d309
xenpaging: correct dropping of pages to avoid full ring buffer
Doing a one-way channel from Xen to xenpaging is not possible with the
current ring buffer implementation. xenpaging uses the mem_event ring
buffer, which expects request/response pairs to make progress. The
previous patch, which tried to establish a one-way communication from
Xen to xenpaging, stalled the guest once the buffer was filled up with
requests. Correct page-dropping by taking the slow path and let
p2m_mem_paging_resume() consume the response from xenpaging. This makes
room for yet another request/response pair and avoids hanging guests.
Signed-off-by: Olaf Hering <olaf@aepfle.de>
diff -r c231a26a2932 -r 6b8446bf4e5f tools/xenpaging/xenpaging.c
--- a/tools/xenpaging/xenpaging.c Mon Jun 06 09:56:08 2011 +0100
+++ b/tools/xenpaging/xenpaging.c Tue Jun 07 11:00:09 2011 +0200
@@ -653,19 +653,19 @@ int main(int argc, char *argv[])
ERROR("Error populating page");
goto out;
}
+ }
- /* Prepare the response */
- rsp.gfn = req.gfn;
- rsp.p2mt = req.p2mt;
- rsp.vcpu_id = req.vcpu_id;
- rsp.flags = req.flags;
+ /* Prepare the response */
+ rsp.gfn = req.gfn;
+ rsp.p2mt = req.p2mt;
+ rsp.vcpu_id = req.vcpu_id;
+ rsp.flags = req.flags;
- rc = xenpaging_resume_page(paging, &rsp, 1);
- if ( rc != 0 )
- {
- ERROR("Error resuming page");
- goto out;
- }
+ rc = xenpaging_resume_page(paging, &rsp, 1);
+ if ( rc != 0 )
+ {
+ ERROR("Error resuming page");
+ goto out;
}
/* Evict a new page to replace the one we just paged in */
next prev parent reply other threads:[~2011-06-07 9:53 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-07 9:53 [PATCH 00 of 12] xenpaging fixes for xen-unstable Olaf Hering
2011-06-07 9:53 ` Olaf Hering [this message]
2011-06-07 9:53 ` [PATCH 02 of 12] xenpaging: do not bounce p2mt to xenpaging Olaf Hering
2011-06-07 9:53 ` [PATCH 03 of 12] xenpaging: remove srand call Olaf Hering
2011-06-07 9:53 ` [PATCH 04 of 12] xenpaging: remove return values from functions that can not fail Olaf Hering
2011-06-07 9:53 ` [PATCH 05 of 12] xenpaging: catch xc_mem_paging_resume errors Olaf Hering
2011-06-07 9:53 ` [PATCH 06 of 12] xenpaging: remove local domain_id variable Olaf Hering
2011-06-07 9:53 ` [PATCH 07 of 12] xenpaging: move num_pages into xenpaging struct Olaf Hering
2011-06-07 9:53 ` [PATCH 08 of 12] xenpaging: start paging in the middle of gfn range Olaf Hering
2011-06-07 9:53 ` [PATCH 09 of 12] xenpaging: pass integer to xenpaging_populate_page Olaf Hering
2011-06-07 9:53 ` [PATCH 10 of 12] xenpaging: add helper function for unlinking pagefile Olaf Hering
2011-06-07 9:53 ` [PATCH 11 of 12] xenpaging: add watch thread to catch guest shutdown Olaf Hering
2011-06-07 10:23 ` Ian Campbell
2011-06-07 19:07 ` Olaf Hering
2011-06-07 9:53 ` [PATCH 12 of 12] xenpaging: implement stopping of pager by sending SIGTERM/SIGINT Olaf Hering
2011-06-07 12:27 ` [PATCH 00 of 12] xenpaging fixes for xen-unstable Keir Fraser
2011-06-07 13:38 ` Olaf Hering
2011-06-08 16:01 ` Keir Fraser
2011-06-10 7:28 ` Keir Fraser
2011-06-10 11:27 ` Olaf Hering
2011-06-10 12:52 ` Keir Fraser
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=6b8446bf4e5fbfa93169.1307440383@probook.site \
--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.