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

Re: [Xen-devel] [PATCH 4 of 5] blkif.h: Document the RedHat and Citrix blkif multi-page ring extensions



On Feb 3, 2012, at 8:01 AM, Jan Beulich wrote:

>>>> On 03.02.12 at 15:58, Justin Gibbs <justing@xxxxxxxxxxxxxxxx> wrote:
>> On Feb 3, 2012, at 6:33 AM, Jan Beulich wrote:
>> 
>>>>>> On 03.02.12 at 06:24, "Justin T. Gibbs" <justing@xxxxxxxxxxxxxxxx> wrote:
>>>> @@ -187,6 +216,25 @@
>>>> *      The machine ABI rules governing the format of all ring request and
>>>> *      response structures.
>>>> *
>>>> + * ring-page-order
>>>> + *      Values:         <uint32_t>
>>>> + *      Default Value:  0
>>>> + *      Maximum Value:  MAX(ffs(max-ring-pages) - 1, max-ring-page-order)
>>> 
>>> Why not just max-ring-page-order. After all, the value is meaningless
>>> for a backend that only exposes max-ring-pages.
>>> 
>>>> + *      Notes:          1, 3
>>>> + *
>>>> + *      The size of the frontend allocated request ring buffer in units
>>>> + *      of lb(machine pages). (e.g. 0 == 1 page, 1 = 2 pages, 2 == 4 
>>>> pages,
>>>> + *      etc.).
>>>> + *
>>>> + * ring-pages
>>>> + *      Values:         <uint32_t>
>>>> + *      Default Value:  1
>>>> + *      Maximum Value:  MAX(max-ring-pages,(0x1 << max-ring-page-order))
>>> 
>>> Similarly here - just max-ring-pages should do.
>> 
>> This patch documents existing extensions.  For a new driver to properly 
>> negotiate a
>> multi-page ring with a Dom0 on EC2 (ring-pages) or a Citrix Dom0/guest 
>> (ring-page-order),
>> you must use the XenBus node names as I've defined them here.
> 
> That wasn't my point. I was exclusively asking the maximum values to
> get simplified.
> 
> Jan

I see now.  Sorry for misunderstanding.

In the introduction section, you'll see this text:

 * Any specified default value is in effect if the corresponding XenBus node
 * is not present in the XenStore.

This drastically simplified (shortened) a spec that is already quite long.  
However,
if this is the rule, both types of "max ring size" values are "in effect" even 
if a back-end
does not provide them both.  So how do you resolve the conflict?  A fully 
interoperable
front should allocate the largest possible ring and advertise that size through 
both
mechanisms in a fully consistent manner. That's what I was trying to indicate by
writing the spec this way.

--
Justin
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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