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

Re: [Xen-devel] blkback feature announcement

On 12/08/2015 04:13 PM, Jan Beulich wrote:
>>>> On 08.12.15 at 02:08, <bob.liu@xxxxxxxxxx> wrote:
>> On 12/07/2015 08:42 PM, Roger Pau Monnà wrote:
>>> El 07/12/15 a les 13.00, Jan Beulich ha escrit:
>>>> Hello,
>>>> is there a particular reason why "max-ring-page-order" gets written in
>>>> xen_blkbk_probe(), but e.g. "feature-max-indirect-segments" and
>>>> "feature-persistent" get written only in connect(), despite both having
>>>> constant values (and hence the node value effectively being known as
>>>> soon as the device exists)?
>>> No, AFAIK there's no specific reason.
>> AFAIR, that's for the blkfront resume path.
>> We need to get the "max-ring-page-order" in blkfront_resume() in advance, so 
>> that we can know how many ring pages to be used before setup_blkring().
> I don't follow - the proposal is to have the backend announce the
> feature _earlier_, so how could frontend resume be affected?

The frontend resume is like this:

     > blkif_free()
     > talk_to_blkback()
         > setup_blkring() etc.

     > blkfront_connect()

Sometimes the "max-ring-page-order" of backend may have changed after the 
guest(frontend) migrated to a different machine,
the frontend must aware of this change so that have to get the new value of 
"max-ring-page-order" in blkfront_resume().

But it would be too late if the backend announces the "max-ring-page-order" in 
connect(), this situation is like:

     > blkif_free()
     > talk_to_blkback()
         ^^^ Get a wrong "max-ring-page-order"
         > setup_blkring() etc. but using the wrong value!!

     > blkfront_connect()
       ^^^ Then the connect() in backend will be called(after frontend enter 
XenbusStateConnected) and write the correct "max-ring-page-order", but it's too 


Xen-devel mailing list



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