30.12.2018 23:09, Andrey Shinkevich wrote: > The copy-on-read filter is applied to block-stream operation. > It is necessary for further block discard option.
If we move to c-o-r filter in stream, I think we should: 1. get rid of COPY_ON_READ flag in stream code (so, this thing to be done in one place) 2. add base parameter to c-o-r filter, to not copy things that are below base. Current behavior of stream is enabling copy-on-read on bs during stream if base == NULL. So, if we just add c-o-r filter, we will copy extra blocks. On the other hand, if we support base parameter in c-o-r filter we will involve guest reads to the stream process for cases with base != NULL, so stream operation should become more efficient. So for me the following sequence seems reasonable: - prepare iotests for graph changes - add base parameter to c-o-r filter - use c-o-r in stream and drop COPY_ON_READ flag from stream code then (may be in separate series) add discard functionality. And looks like again, it should be property of c-o-r filter, not stream job itself, to involve guest reads to discarding too. In general, Max, is that correspond to what you mean? Any suggestions? -- Best regards, Vladimir