[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC] Support of non-indirect grant backend on 64KB guest
On Thu, Aug 20, 2015 at 06:30:17PM -0700, Julien Grall wrote: > > > On 20/08/2015 10:42, David Vrabel wrote: > >>When using 64KB page, a Linux block request (struct *request) may > >>contain up to 64KB of data. This is because the block segment size > >>must at least be the size of a Linux page. > > > >You should ensure you configure the request queue with the limits that > >are currently supported. In particular: > > > > /* Each segment in a request is up to an aligned page in > > size. */ > > blk_queue_segment_boundary(rq, PAGE_SIZE - 1); > > blk_queue_max_segment_size(rq, PAGE_SIZE); > > > >Is obviously wrong with PAGE_SIZE > 44 KiB. > > > >Get the block later to split requests and don't do it in blkfront. > > I may not have been enough clear in the paragraph you quoted. I said that > the minimum size supported by the block framework is a linux page size. It > means that if you pass a value smaller than that it will replace with the > page linux granularity. > > It would have been handy that the block framework supports smaller size but > it's not the case, give a look to the implementation of both function. From a block API size one can argue that the driver is doing something wrong by requiring < PAGE_SIZE requests. It is kind of implied that all the drivers are able to manage this and break up an 'struct request' in multiple IO commands if it needs to. > > Cheers, > > -- > Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |