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

Re: [Xen-devel] Re: questions about the block backend/frontend driver

  • To: "Konrad Rzeszutek" <konrad@xxxxxxxxxxxxxxx>
  • From: "Yuming fang" <fangyuming.leo@xxxxxxxxx>
  • Date: Thu, 11 Sep 2008 14:35:56 +0800
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Wed, 10 Sep 2008 23:36:20 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=ttiNJIgwYFW2ZIT2VE/hZmMlOgHe1ZFvWhTB1EK63sZPMTB8CQi/D9oMlCtXhN4Dpw fu5aXF3nLN4yc/qVqU7OfPsxplVhEprmiY1VSbdLzVZUb1wVSIvwwWItwj1eHtkmYJg1 +VT32s/rivaHeR+CieXzSjP5N0EYlujbnA7E0=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Thank you very much for your reply.
2008/9/9 Konrad Rzeszutek <konrad@xxxxxxxxxxxxxxx>
On Tue, Sep 09, 2008 at 08:43:07PM +0800, Yuming fang wrote:
> Nobody answer these questions? I want to know if I could implement the I/O
> disk scheduling in Xen and then I could not modify the corresponding
> code(I/O Scheduling algorithms) of Linux Kernel?

I would recommend you get 'blktrace' programs and run them under Dom0 to
get a practical answer to your question.
I run the blktrace programs and could get the detailed information of disk I/O read/write requests. However, the blktrace is a tool which provides detailed information about request queue operations to the user space.

> Yuming
> 2008/9/8 Yuming fang <fangyuming.leo@xxxxxxxxx>
> >  Hi, Everyone,
> >
> > I am trying to understand the code of the block backend/frontend driver. I
> > konw the blkback and blkfront communicate with each other through event
> > channel and buffer ring. But there are some questions I could not
> > understand.
> >
> > 1. When dom0 receive one disk request from domU1 and another disk request
> > from domU2 simultaneously, how these two disk requests are pushed into Linux
> > Kernel I/O Scheduler? How the Xen sort them before pushing them into the
> > Linux Kernel I/O Scheduler?

That depends on which elevator you have. Xen does not sort them, just issues
a bio request.
Yeah, after your explanation, I read the code of blkback.c and understand some about it. In the Xen3.3 version, I find there is a \linux-2.6.18-xen-3.3.0\block\ directory, which includes the elevator.c, Linux I/O Scheduling algorithm files(cfq-iosched.c, deadline-iosched.c and so on).  Do these files decide the disk I/O Scheduling Algorithm of the Linux-xen0? And if I want to add a different disk I/O Scheduling algorithm in Xen3.3, could I add it in this directory(linux-2.6.18-xen-3.3.0\linux-2.6.18-xen-3.3.0\block\)?

> >
> > 2. Is there a disk request queue in the Xen to hold these disk requests, so
> > that the Xen could only push the disk requests in the queue into the linux
> > kernel I/O Scheduler?

No. It uses the block devices queue to submit requests,
I think it uses the functions of unplug_queue(blkif_t *blkif) and plug_queue(blkif_t *blkif, struct bio *bio)  (in \linux-2.6.18-xen-3.3.0\drivers\xen\blkback\blkback,.c) to process the requests. Is my explanation right?

Xen-devel mailing list



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