[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen-block: handle resize callback
> -----Original Message----- > From: Anthony PERARD [mailto:anthony.perard@xxxxxxxxxx] > Sent: 29 January 2019 12:25 > To: Paul Durrant <Paul.Durrant@xxxxxxxxxx> > Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; qemu-block@xxxxxxxxxx; qemu- > devel@xxxxxxxxxx; Stefan Hajnoczi <stefanha@xxxxxxxxxx>; Stefano > Stabellini <sstabellini@xxxxxxxxxx>; Kevin Wolf <kwolf@xxxxxxxxxx>; Max > Reitz <mreitz@xxxxxxxxxx> > Subject: Re: [PATCH] xen-block: handle resize callback > > On Wed, Jan 23, 2019 at 09:08:49AM +0000, Paul Durrant wrote: > > Some frontend drivers will handle dynamic resizing of PV disks, so set > up > > the BlockDevOps resize_cb() method during xen_block_realize() to allow > > this to be done. > > "will": which drivers are you thinking about? The Linux one seems to be > able to handle resize already. Yes, that's what I meant by 'will'... it wasn't supposed to imply future tense. English can be confusing :-/ > > About the Linux one, it check the new size only when the backend set > its "state" to "connected" again. > It's frontend seems to implement resize with > 1fa73be6be65028a7543bba8f14474b42e064a1b. > There is this is the source code: > static void blkfront_connect(struct blkfront_info *info) > { > // ... > switch (info->connected) { > case BLKIF_STATE_CONNECTED: > /* > * Potentially, the back-end may be signalling > * a capacity change; update the capacity. > */ > > In the backend, Linux does this: > xenbus_printf(xbt, dev->nodename, "sectors", "%llu", ... > /* > * Write the current state; we will use this to synchronize > * the front-end. If the current state is "connected" the > * front-end will get the new size information online. > */ > xenbus_printf(xbt, dev->nodename, "state", "%d", dev->state); > > Maybe the QEMU backend needs do to the same thing, and write its current > state again? Yes, that can easily be done. The Windows frontend simply re-reads 'sectors' whenever it sees any change in the backend area (it watches the top level key rather than just the 'state' key). > > FreeBSD doesn't seems to care about resize. > > And there is nothing in blkif.h about resizing :(. Nope, hence the discrepancy between the frontend implementations. I can send a patch to xen-devel to note the existing state of affairs and perhaps standardize on the re-writing of 'state' being the official way to inform the frontend. Paul > > Thanks, > > -- > Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |