[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/2] block/xen-blkfront: Handle non-indirect grant with 64KB pages
Hi Roger, On 06/10/2015 10:39, Roger Pau Monnà wrote: El 05/10/15 a les 19.05, Julien Grall ha escrit:On 05/10/15 17:01, Roger Pau Monnà wrote:El 11/09/15 a les 21.32, Julien Grall ha escrit:ring_req->u.rw.nr_segments = num_grant; + if (unlikely(require_extra_req)) { + id2 = blkif_ring_get_request(info, req, &ring_req2);How can you guarantee that there's always going to be another free request? AFAICT blkif_queue_rq checks for RING_FULL, but you don't actually know if there's only one slot or more than one available.Because the depth of the queue is divided by 2 when the extra request is used (see xlvbd_init_blk_queue). I just noticed that I didn't mention this restriction in the commit message. I will do it in the next revision. I see, that's quite restrictive but I guess it's better than introducing a new ring macro in order to figure out if there are at least two free slots. I actually didn't think about your suggestion. I choose to divide by two based on the assumption that the block framework will always try to send a request with the maximum data possible. I don't know if this assumption is correct as I'm not fully aware how the block framework is working. If it's valid, in the case of 64KB guest, the maximum size of a request would be 64KB when indirect segment is not supported. So we would end up with a lot of 64KB request which will require 2 ring request. Regards, -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |