Yuming fang
2008-Sep-08 07:05 UTC
[Xen-devel] questions about the block backend/frontend driver
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? 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? I would appreciate it very much if anyone could give me some help. Yuming _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yuming fang
2008-Sep-09 12:43 UTC
[Xen-devel] Re: questions about the block backend/frontend driver
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? Yuming 2008/9/8 Yuming fang <fangyuming.leo@gmail.com>> 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? > > 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? > > I would appreciate it very much if anyone could give me some help. > > Yuming > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Konrad Rzeszutek
2008-Sep-09 14:26 UTC
Re: [Xen-devel] Re: questions about the block backend/frontend driver
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.> > Yuming > > 2008/9/8 Yuming fang <fangyuming.leo@gmail.com> > > > 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.> > > > 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 would appreciate it very much if anyone could give me some help. > > > > Yuming > > > >> _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Yuming fang
2008-Sep-11 06:35 UTC
Re: [Xen-devel] Re: questions about the block backend/frontend driver
Thank you very much for your reply. 2008/9/9 Konrad Rzeszutek <konrad@virtualiron.com>> 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@gmail.com> > > > 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 diskrequest> > from domU2 simultaneously, how these two disk requests are pushed intoLinux> > 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? Thanks Yuming _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel