Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

xen-blkfront: set queue paravirt flag

Xen's blkfront sets noop as the default I/O scheduler at initialization
time to avoid elevator overheads such as idling, but with the advent of
basic disk profiling capabilities this is not necessary anymore. We
should just tell the block layer that we are a paravirt front-end driver
and the elevator will automatically make the necessary adjustments.

Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

authored by

Fernando Luis Vázquez Cao and committed by
Jens Axboe
66d352e1 7d116b62

+1 -7
+1 -7
drivers/block/xen-blkfront.c
··· 338 338 static int xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size) 339 339 { 340 340 struct request_queue *rq; 341 - elevator_t *old_e; 342 341 343 342 rq = blk_init_queue(do_blkif_request, &blkif_io_lock); 344 343 if (rq == NULL) 345 344 return -1; 346 345 347 - old_e = rq->elevator; 348 - if (IS_ERR_VALUE(elevator_init(rq, "noop"))) 349 - printk(KERN_WARNING 350 - "blkfront: Switch elevator failed, use default\n"); 351 - else 352 - elevator_exit(old_e); 346 + queue_flag_set_unlocked(QUEUE_FLAG_VIRT, rq); 353 347 354 348 /* Hard sector size and max sectors impersonate the equiv. hardware. */ 355 349 blk_queue_hardsect_size(rq, sector_size);