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 [email protected] http://lists.xen.org/xen-devel
