[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] driver: xen-blkfront: move talk_to_blkback to the correct place
On 05/15/2015 06:01 PM, Roger Pau Monné wrote: > El 12/05/15 a les 13.01, Bob Liu ha escrit: >> The right place for talk_to_blkback() to query backend features and transport >> parameters is after backend entered XenbusStateInitWait. There is no problem > > talk_to_blkback doesn't gather any backend features, it just publishes > the features supported by the frontend, which AFAICT can be done at any 1) But talk_tlkback will also allocate and initialize the request ring which should be done after backend entered XenbusStateInitWait. Please see the protocol defined in xen/include/public/io/blkif.h: ***************************************************************************** * Startup * ***************************************************************************** * * Tool stack creates front and back nodes with state XenbusStateInitialising. * * Front Back * ================================= ===================================== * XenbusStateInitialising XenbusStateInitialising * o Query virtual device o Query backend device identification * properties. data. * o Setup OS device instance. o Open and validate backend device. * o Publish backend features and * transport parameters. * | * | * V * XenbusStateInitWait * * o Query backend features and * transport parameters. * o Allocate and initialize the * request ring. 2) Another problem is after 'mutli-page' ring feature get introduced, we have to know the max ring pages supported by backend in setup_blkring(). If backend haven't enter XenbusStateInitWait, we may not query the right value. E.g. Frontend Backend in .probe: talk_to_blkback() > setup_blkring() > xenbus_scanf(max_ring_pages) in .probe: xenbus_printf(max_ring_pages) ^^^^ Too late to write the real value xenbus_switch_state(dev, XenbusStateInitWait) Thank you reviewing these patches! Regards, -Bob > time provided that it's before switching to state XenbusStateInitWait. > Blkfront doesn't have to wait for the backend to switch to state > XenbusStateInitWait before publishing the features supported by the > frontend, which is what talk_to_blkback does. > > Roger. > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |