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.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel