Re: [PATCH v5 05/10] xen/blkfront: negotiate number of queues/rings to be used with backend

From: Bob Liu
Date: Mon Nov 16 2015 - 18:13:50 EST



On 11/17/2015 05:27 AM, Konrad Rzeszutek Wilk wrote:
>> /* Common code used when first setting up, and when resuming. */
>> static int talk_to_blkback(struct xenbus_device *dev,
>> @@ -1527,10 +1582,9 @@ static int talk_to_blkback(struct xenbus_device *dev,
>> {
>> const char *message = NULL;
>> struct xenbus_transaction xbt;
>> - int err, i;
>> - unsigned int max_page_order = 0;
>> + int err;
>> + unsigned int i, max_page_order = 0;
>> unsigned int ring_page_order = 0;
>> - struct blkfront_ring_info *rinfo;
>
> Why? You end up doing the 'struct blkfront_ring_info' decleration
> in two of the loops below?

Oh, that's because Roger mentioned we would be tempted to declare rinfo only inside the for loop, to limit
the scope.

>>
>> err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
>> "max-ring-page-order", "%u", &max_page_order);
>> @@ -1542,7 +1596,8 @@ static int talk_to_blkback(struct xenbus_device *dev,
>> }
>>
>> for (i = 0; i < info->nr_rings; i++) {
>> - rinfo = &info->rinfo[i];
>> + struct blkfront_ring_info *rinfo = &info->rinfo[i];
>> +
>
> Here..
>
>> @@ -1617,7 +1677,7 @@ again:
>>
>> for (i = 0; i < info->nr_rings; i++) {
>> int j;
>> - rinfo = &info->rinfo[i];
>> + struct blkfront_ring_info *rinfo = &info->rinfo[i];
>
> And here?
>
> It is not a big deal but I am curious of why add this change?
>
>> @@ -1717,7 +1789,6 @@ static int blkfront_probe(struct xenbus_device *dev,
>>
>> mutex_init(&info->mutex);
>> spin_lock_init(&info->dev_lock);
>> - info->xbdev = dev;
>
> That looks like a spurious change? Ah, I see that we do the same exact
> operation earlier in the blkfront_probe.
>

The place of this line was changed because:

1738 info->xbdev = dev;

1739 /* Check if backend supports multiple queues. */
1740 err = xenbus_scanf(XBT_NIL, info->xbdev->otherend,
^^^^
We need xbdev to be set in advance.

1741 "multi-queue-max-queues", "%u", &backend_max_queues);
1742 if (err < 0)
1743 backend_max_queues = 1;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/