logo       

Patch from Jens Axboe to synchronously flush block requests from our: msg#00473

emulators.xen.cvs

Subject: Patch from Jens Axboe to synchronously flush block requests from our

ChangeSet 1.1405, 2005/03/31 09:09:50+01:00, kaf24@xxxxxxxxxxxxxxxxxxxx

Patch from Jens Axboe to synchronously flush block requests from our
backend driver down to the disk(s). Big improvement in blkdev
performance.



blkback.c | 16 ++++++----------
1 files changed, 6 insertions(+), 10 deletions(-)


diff -Nru a/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c
b/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c
--- a/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c 2005-03-31
04:05:37 -05:00
+++ b/linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c 2005-03-31
04:05:37 -05:00
@@ -512,7 +512,6 @@
for ( i = 0; i < nr_psegs; i++ )
{
struct bio *bio;
- struct bio_vec *bv;

bio = bio_alloc(GFP_ATOMIC, 1);
if ( unlikely(bio == NULL) )
@@ -525,17 +524,14 @@
bio->bi_private = pending_req;
bio->bi_end_io = end_block_io_op;
bio->bi_sector = phys_seg[i].sector_number;
- bio->bi_rw = operation;

- bv = bio_iovec_idx(bio, 0);
- bv->bv_page = virt_to_page(MMAP_VADDR(pending_idx, i));
- bv->bv_len = phys_seg[i].nr_sects << 9;
- bv->bv_offset = phys_seg[i].buffer & ~PAGE_MASK;
+ bio_add_page(
+ bio,
+ virt_to_page(MMAP_VADDR(pending_idx, i)),
+ phys_seg[i].nr_sects << 9,
+ phys_seg[i].buffer & ~PAGE_MASK);

- bio->bi_size = bv->bv_len;
- bio->bi_vcnt++;
-
- submit_bio(operation, bio);
+ submit_bio(operation | (1 << BIO_RW_SYNC), bio);
}
#endif


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise