浏览代码

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>
Fernando Luis Vázquez Cao 16 年之前
父节点
当前提交
66d352e1e4
共有 1 个文件被更改,包括 1 次插入7 次删除
  1. 1 7
      drivers/block/xen-blkfront.c

+ 1 - 7
drivers/block/xen-blkfront.c

@@ -338,18 +338,12 @@ wait:
 static int xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size)
 static int xlvbd_init_blk_queue(struct gendisk *gd, u16 sector_size)
 {
 {
 	struct request_queue *rq;
 	struct request_queue *rq;
-	elevator_t *old_e;
 
 
 	rq = blk_init_queue(do_blkif_request, &blkif_io_lock);
 	rq = blk_init_queue(do_blkif_request, &blkif_io_lock);
 	if (rq == NULL)
 	if (rq == NULL)
 		return -1;
 		return -1;
 
 
-	old_e = rq->elevator;
-	if (IS_ERR_VALUE(elevator_init(rq, "noop")))
-		printk(KERN_WARNING
-			"blkfront: Switch elevator failed, use default\n");
-	else
-		elevator_exit(old_e);
+	queue_flag_set_unlocked(QUEUE_FLAG_VIRT, rq);
 
 
 	/* Hard sector size and max sectors impersonate the equiv. hardware. */
 	/* Hard sector size and max sectors impersonate the equiv. hardware. */
 	blk_queue_hardsect_size(rq, sector_size);
 	blk_queue_hardsect_size(rq, sector_size);