> From: Jason Gunthorpe <jgg@xxxxxxxxxx> > Sent: Tuesday, February 22, 2022 11:51 PM > > On Tue, Feb 22, 2022 at 01:43:13AM +0000, Tian, Kevin wrote: > > > > > > + * Drivers should attempt to return estimates so that initial_bytes + > > > > > + * dirty_bytes matches the amount of data an immediate transition > to > > > > > STOP_COPY > > > > > + * will require to be streamed. > > > > > > > > I didn't understand this requirement. In an immediate transition to > > > > STOP_COPY I expect the amount of data covers the entire device > > > > state, i.e. initial_bytes. dirty_bytes are dynamic and iteratively returned > > > > then why we need set some expectation on the sum of > > > > initial+round1_dity+round2_dirty+... > > > > > > "will require to be streamed" means additional data from this point > > > forward, not including anything already sent. > > > > > > It turns into the estimate of how long STOP_COPY will take. > > > > I still didn't get the 'match' part. Why should the amount of data which > > has already been sent match the additional data to be sent in STOP_COPY? > > None of it is 'already been sent' the return values are always 'still > to be sent' > Reread the description: + * Drivers should attempt to return estimates so that initial_bytes + + * dirty_bytes matches the amount of data an immediate transition to STOP_COPY + * will require to be streamed. I guess you intended to mean that when EITHER initial_bytes OR dirty_bytes is read the returned value should match the amount of data as described above. It is "+" which confused me to think it as a sum of both numbers... Thanks Kevin