On 2023/2/7 23:36, Jiri Denemark wrote: > On Fri, Jan 20, 2023 at 16:47:40 +0800, Jiang Jiacheng wrote: >> Add description for VIR_MIGRATE_PARAM_COMPRESSION, it will >> be reused in choosing compression method during multifd migration. >> Add public API VIR_MIGRATE_PARAM_COMPRESSION_ZLIB_LEVEL, >> VIR_MIGRATE_PARAM_COMPRESSION_ZSTD_LEVEL for migration APIs >> to support set compress level during multifd migration. >> >> Signed-off-by: Jiang Jiacheng <jiangjiacheng@xxxxxxxxxx> >> --- >> include/libvirt/libvirt-domain.h | 24 +++++++++++++++++++++++- >> 1 file changed, 23 insertions(+), 1 deletion(-) >> >> diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h >> index 5152ed4551..deac3687ed 100644 >> --- a/include/libvirt/libvirt-domain.h >> +++ b/include/libvirt/libvirt-domain.h >> @@ -1271,7 +1271,9 @@ typedef enum { >> * virDomainMigrate* params multiple field: name of the method used to >> * compress migration traffic. Supported compression methods: xbzrle, mt. >> * The parameter may be specified multiple times if more than one method >> - * should be used. >> + * should be used. Support compression methods for multifd migration: zlib, >> + * zstd. When using with multifd migration, only one supported compression >> + * method can be specified. > > I don't think we should separate the new methods this way. And we use > "parallel" instead of "multifd" migration. So how about: > > virDomainMigrate* params multiple field: name of the method used to > compress migration traffic. Supported compression methods: xbzrle, > mt, zlib, zstd. The parameter may be specified multiple times if more > than one method should be used. Not all combinations of compression > methods and migration options may be allowed. Parallel migration of > QEMU domains is only compatible with either zlib or zstd method. > Thank you for your corrections and suggestions, and I will improve these descriptions (and those in patch 4) to make them clearer and more consistent with other descriptions. Thanks, Jiangjiacheng >> * >> * Since: 1.3.4 >> */ >> @@ -1351,6 +1353,26 @@ typedef enum { >> */ >> # define VIR_MIGRATE_PARAM_PARALLEL_CONNECTIONS "parallel.connections" >> >> +/** >> + * VIR_MIGRATE_PARAM_COMPRESSION_ZLIB_LEVEL: >> + * >> + * virDomainMigrate* params field: zlib compress level used during parallel >> + * migration. As VIR_TYPED_PARAM_INT. > > I don't think we need to explicitly mention parallel migration here. On > the other hand, we should mention allowed values and their semantics. > See how compression.mt.level is described: > > "Accepted values are in range 0-9. 0 is no compression, 1 is maximum > speed and 9 is maximum compression." > >> + * >> + * Since: 9.1.0 >> + */ >> +# define VIR_MIGRATE_PARAM_COMPRESSION_ZLIB_LEVEL "compression.zlib.level" >> + >> +/** >> + * VIR_MIGRATE_PARAM_COMPRESSION_ZSTD_LEVEL: >> + * >> + * virDomainMigrate* params field: zstd compress level used during parallel >> + * migration. As VIR_TYPED_PARAM_INT. > > The same comment as above. > >> + * >> + * Since: 9.1.0 >> + */ >> +# define VIR_MIGRATE_PARAM_COMPRESSION_ZSTD_LEVEL "compression.zstd.level" >> + > > And I think documenting them next to the other > VIR_MIGRATE_PARAM_COMPRESSION parameters would make more sense. > >> /** >> * VIR_MIGRATE_PARAM_TLS_DESTINATION: >> * > > Jirka >