Fabiano Rosas <faro...@suse.de> writes: > Add the direct-io migration parameter that tells the migration code to > use O_DIRECT when opening the migration stream file whenever possible.
Why is that useful? > This is currently only used with fixed-ram migration for the multifd > channels that transfer the RAM pages. Those channels only transfer the > pages and are guaranteed to perform aligned writes. > > However the parameter could be made to affect other types of > file-based migrations in the future. > > Signed-off-by: Fabiano Rosas <faro...@suse.de> [...] > diff --git a/qapi/migration.json b/qapi/migration.json > index 3b93e13743..1d38619842 100644 > --- a/qapi/migration.json > +++ b/qapi/migration.json > @@ -878,6 +878,9 @@ > # @mode: Migration mode. See description in @MigMode. Default is 'normal'. > # (Since 8.2) > # > +# @direct-io: Open migration files with O_DIRECT when possible. This > +# requires that the 'fixed-ram' capability is enabled. (since 9.0) Two spaces between sentences for consistency, please. > +# > # Features: > # > # @deprecated: Member @block-incremental is deprecated. Use > @@ -911,7 +914,8 @@ > 'block-bitmap-mapping', > { 'name': 'x-vcpu-dirty-limit-period', 'features': ['unstable'] }, > 'vcpu-dirty-limit', > - 'mode'] } > + 'mode', > + 'direct-io'] } > > ## > # @MigrateSetParameters: > @@ -1066,6 +1070,9 @@ > # @mode: Migration mode. See description in @MigMode. Default is 'normal'. > # (Since 8.2) > # > +# @direct-io: Open migration files with O_DIRECT when possible. This > +# requires that the 'fixed-ram' capability is enabled. (since 9.0) > +# > # Features: > # > # @deprecated: Member @block-incremental is deprecated. Use > @@ -1119,7 +1126,8 @@ > '*x-vcpu-dirty-limit-period': { 'type': 'uint64', > 'features': [ 'unstable' ] }, > '*vcpu-dirty-limit': 'uint64', > - '*mode': 'MigMode'} } > + '*mode': 'MigMode', > + '*direct-io': 'bool' } } > > ## > # @migrate-set-parameters: > @@ -1294,6 +1302,9 @@ > # @mode: Migration mode. See description in @MigMode. Default is 'normal'. > # (Since 8.2) > # > +# @direct-io: Open migration files with O_DIRECT when possible. This > +# requires that the 'fixed-ram' capability is enabled. (since 9.0) > +# > # Features: > # > # @deprecated: Member @block-incremental is deprecated. Use > @@ -1344,7 +1355,8 @@ > '*x-vcpu-dirty-limit-period': { 'type': 'uint64', > 'features': [ 'unstable' ] }, > '*vcpu-dirty-limit': 'uint64', > - '*mode': 'MigMode'} } > + '*mode': 'MigMode', > + '*direct-io': 'bool' } } > > ## > # @query-migrate-parameters: [...]