[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Pull requests from blkfront into blkback a bit more



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 8c7de61d3913ed2b463c91624b0411041158a9c2
# Parent  f94923f2dd14c862b070e133132b4f240f956525
Pull requests from blkfront into blkback a bit more
aggressively, to keep the scheduling pipeline filled.

Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r f94923f2dd14 -r 8c7de61d3913 
linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c        Sun Dec  4 
11:06:38 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkback/blkback.c        Sun Dec  4 
17:20:41 2005
@@ -493,18 +493,24 @@
        blk_ring->rsp_prod_pvt++;
        RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(blk_ring, notify);
 
-       /*
-         * Tail check for pending requests. Allows frontend to avoid
-         * notifications if requests are already in flight (lower overheads
-         * and promotes batching).
-         */
        if (blk_ring->rsp_prod_pvt == blk_ring->req_cons) {
+               /*
+                * Tail check for pending requests. Allows frontend to avoid
+                * notifications if requests are already in flight (lower
+                * overheads and promotes batching).
+                */
                int more_to_do;
                RING_FINAL_CHECK_FOR_REQUESTS(blk_ring, more_to_do);
                if (more_to_do) {
                        add_to_blkdev_list_tail(blkif);
                        maybe_trigger_blkio_schedule();
                }
+       }
+       else if (!__on_blkdev_list(blkif)
+                && RING_HAS_UNCONSUMED_REQUESTS(blk_ring)) {
+               /* Keep pulling requests as they become available... */
+               add_to_blkdev_list_tail(blkif);
+               maybe_trigger_blkio_schedule();
        }
 
        spin_unlock_irqrestore(&blkif->blk_ring_lock, flags);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.