[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: blkfront_resume() > blkif_free() > talk_to_blkback() > setup_blkring() etc. blkback_changed() > 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: blkfront_resume() > blkif_free() > talk_to_blkback() ^^^ Get a wrong "max-ring-page-order" > setup_blkring() etc. but using the wrong value!! blkback_changed() > 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 late. Bob _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |