This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [Patch] Remove unnecessary tlb flush in blktap_poll

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [Patch] Remove unnecessary tlb flush in blktap_poll
From: "Stephen C. Tweedie" <sct@xxxxxxxxxx>
Date: Thu, 28 Sep 2006 23:30:27 +0100
Cc: Julian Chesterfield <jac90@xxxxxxxxx>, Steven Rostedt <rostedt@xxxxxxxxxxx>, Andrew Warfield <andrew.warfield@xxxxxxxxxxxx>
Delivery-date: Thu, 28 Sep 2006 15:51:22 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
blktap_poll is calling tlb_flush_all() in its main ring buffer polling
loop.  This seems to be superfluous: the hypervisor should be performing
any necessary tlb flushes on grant table operations performed by the
back-end.  Even a simple memory barrier is unnecessary here as the
RING_PUSH_REQUESTS() call performs a wmb() anyway.

And tlb_flush_all() is not exported to modules, so this call prevents
blktap from building as a module.  Just remove it.

Signed-off-by: Stephen Tweedie <sct@xxxxxxxxxx>

diff -r 49d429529228 -r cb125a885a9a 
--- a/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c  Thu Sep 28 23:24:43 
2006 +0100
+++ b/linux-2.6-xen-sparse/drivers/xen/blktap/blktap.c  Thu Sep 28 23:29:31 
2006 +0100
@@ -680,7 +680,6 @@ static unsigned int blktap_poll(struct f
        poll_wait(file, &info->wait, wait);
        if (info->ufe_ring.req_prod_pvt != info->ufe_ring.sring->req_prod) {
-               flush_tlb_all();
                return POLLIN | POLLRDNORM;

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [Patch] Remove unnecessary tlb flush in blktap_poll, Stephen C. Tweedie <=