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

Re: [Xen-devel] [PATCH RFC 2/4] xen-blkfront: improve aproximation of required grants per request



On 08/07/13 14:03, Roger Pau Monne wrote:
> Improve the calculation of required grants to process a request by
> using nr_phys_segments instead of always assuming a request is going
> to use all posible segments.

This isn't obviously correct to me.  Why is this correct value for the
number of pages that need to be granted?

David

> --- a/drivers/block/xen-blkfront.c
> +++ b/drivers/block/xen-blkfront.c
> @@ -400,10 +400,13 @@ static int blkif_queue_request(struct request *req)
>       if (unlikely(info->connected != BLKIF_STATE_CONNECTED))
>               return 1;
>  
> -     max_grefs = info->max_indirect_segments ?
> -                 info->max_indirect_segments +
> -                 INDIRECT_GREFS(info->max_indirect_segments) :
> -                 BLKIF_MAX_SEGMENTS_PER_REQUEST;
> +     max_grefs = req->nr_phys_segments;
> +     if (max_grefs > BLKIF_MAX_SEGMENTS_PER_REQUEST)
> +             /*
> +              * If we are using indirect segments we need to account
> +              * for the indirect grefs used in the request.
> +              */
> +             max_grefs += INDIRECT_GREFS(req->nr_phys_segments);
>  
>       /* Check if we have enough grants to allocate a requests */
>       if (info->persistent_gnts_c < max_grefs) {


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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