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

Re: [Xen-devel] about blkfront.c

If lsect stands for the number of sector to be transferred, your
explanation is reasonable, but the following two lines give me an
impression that lsect is the index of the last sector to be transferred:

    fsect = (buffer_ma & ~PAGE_MASK) >> 9;
    lsect = fsect + nr_sectors - 1;

The sector index does not have to be less than 8, right? Am I wrong in
understanding the codes?

Thanks for your help.


On Tue, 28 Sep 2004, Ian Pratt wrote:

> > Sorry for the dumb question,
> >
> > I noticed that in the function blkfront.c: blkif_queue_request(...), there
> > are these two lines of codes:
> >
> > ----------------------------
> >   if ( lsect > 7 )
> >         BUG();
> > ----------------------------
> Disk sectors are 512 bytes, pages 4096 bytes, hence you can have
> runs of up to 8 sectors in a page. At the point that
> queue_request is called we know that the request will fit
> entirely within a page. It's the job of this function to merge
> requests that are to sequential areas of disk into in a single
> scatter gather list.
> Ian

This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php
Xen-devel mailing list



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