Re: [libvirt PATCH 10/16] qemu: alias: prepare qemuAssignDeviceFSAlias for disjunct ranges
On Wed, Oct 06, 2021 at 10:27:48 +0200, Ján Tomko wrote: > On a Wednesday in 2021, Peter Krempa wrote: > > On Wed, Oct 06, 2021 at 09:15:16 +0200, Ján Tomko wrote: > > > Iterate through the array to find the first free index. > > > > > > Signed-off-by: Ján Tomko > > > --- > > > src/qemu/qemu_alias.c | 18 ++ > > > 1 file changed, 14 insertions(+), 4 deletions(-) [...] > > > @@ -634,7 +644,7 @@ qemuAssignDeviceAliases(virDomainDef *def, > > > virQEMUCaps *qemuCaps) > > > } > > > > > > for (i = 0; i < def->nfss; i++) { > > > -if (qemuAssignDeviceFSAlias(def->fss[i], i) < 0) > > > +if (qemuAssignDeviceFSAlias(def, def->fss[i]) < 0) > > > return -1; > > > > Are other devices also n^2 during startup of the VM? > > > > For the alias assingment, many of the hotpluggable ones are. Sigh. Reviewed-by: Peter Krempa
Re: [libvirt PATCH 10/16] qemu: alias: prepare qemuAssignDeviceFSAlias for disjunct ranges
On a Wednesday in 2021, Peter Krempa wrote: On Wed, Oct 06, 2021 at 09:15:16 +0200, Ján Tomko wrote: Iterate through the array to find the first free index. Signed-off-by: Ján Tomko --- src/qemu/qemu_alias.c | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index 81a1e7eeed..4153050bec 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -336,13 +336,23 @@ qemuAssignDeviceNetAlias(virDomainDef *def, static int -qemuAssignDeviceFSAlias(virDomainFSDef *fss, -int idx) +qemuAssignDeviceFSAlias(virDomainDef *def, +virDomainFSDef *fss) { +size_t i; +int maxidx = 0; + if (fss->info.alias) return 0; -fss->info.alias = g_strdup_printf("fs%d", idx); +for (i = 0; i < def->nfss; i++) { +int idx; + +if ((idx = qemuDomainDeviceAliasIndex(>fss[i]->info, "fs")) >= maxidx) +maxidx = idx + 1; +} + +fss->info.alias = g_strdup_printf("fs%d", maxidx); return 0; } @@ -634,7 +644,7 @@ qemuAssignDeviceAliases(virDomainDef *def, virQEMUCaps *qemuCaps) } for (i = 0; i < def->nfss; i++) { -if (qemuAssignDeviceFSAlias(def->fss[i], i) < 0) +if (qemuAssignDeviceFSAlias(def, def->fss[i]) < 0) return -1; Are other devices also n^2 during startup of the VM? For the alias assingment, many of the hotpluggable ones are. Don't know about the rest of the startup code. Jano signature.asc Description: PGP signature
Re: [libvirt PATCH 10/16] qemu: alias: prepare qemuAssignDeviceFSAlias for disjunct ranges
On Wed, Oct 06, 2021 at 09:15:16 +0200, Ján Tomko wrote: > Iterate through the array to find the first free index. > > Signed-off-by: Ján Tomko > --- > src/qemu/qemu_alias.c | 18 ++ > 1 file changed, 14 insertions(+), 4 deletions(-) > > diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c > index 81a1e7eeed..4153050bec 100644 > --- a/src/qemu/qemu_alias.c > +++ b/src/qemu/qemu_alias.c > @@ -336,13 +336,23 @@ qemuAssignDeviceNetAlias(virDomainDef *def, > > > static int > -qemuAssignDeviceFSAlias(virDomainFSDef *fss, > -int idx) > +qemuAssignDeviceFSAlias(virDomainDef *def, > +virDomainFSDef *fss) > { > +size_t i; > +int maxidx = 0; > + > if (fss->info.alias) > return 0; > > -fss->info.alias = g_strdup_printf("fs%d", idx); > +for (i = 0; i < def->nfss; i++) { > +int idx; > + > +if ((idx = qemuDomainDeviceAliasIndex(>fss[i]->info, "fs")) >= > maxidx) > +maxidx = idx + 1; > +} > + > +fss->info.alias = g_strdup_printf("fs%d", maxidx); > return 0; > } > > @@ -634,7 +644,7 @@ qemuAssignDeviceAliases(virDomainDef *def, virQEMUCaps > *qemuCaps) > } > > for (i = 0; i < def->nfss; i++) { > -if (qemuAssignDeviceFSAlias(def->fss[i], i) < 0) > +if (qemuAssignDeviceFSAlias(def, def->fss[i]) < 0) > return -1; Are other devices also n^2 during startup of the VM?
[libvirt PATCH 10/16] qemu: alias: prepare qemuAssignDeviceFSAlias for disjunct ranges
Iterate through the array to find the first free index. Signed-off-by: Ján Tomko --- src/qemu/qemu_alias.c | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c index 81a1e7eeed..4153050bec 100644 --- a/src/qemu/qemu_alias.c +++ b/src/qemu/qemu_alias.c @@ -336,13 +336,23 @@ qemuAssignDeviceNetAlias(virDomainDef *def, static int -qemuAssignDeviceFSAlias(virDomainFSDef *fss, -int idx) +qemuAssignDeviceFSAlias(virDomainDef *def, +virDomainFSDef *fss) { +size_t i; +int maxidx = 0; + if (fss->info.alias) return 0; -fss->info.alias = g_strdup_printf("fs%d", idx); +for (i = 0; i < def->nfss; i++) { +int idx; + +if ((idx = qemuDomainDeviceAliasIndex(>fss[i]->info, "fs")) >= maxidx) +maxidx = idx + 1; +} + +fss->info.alias = g_strdup_printf("fs%d", maxidx); return 0; } @@ -634,7 +644,7 @@ qemuAssignDeviceAliases(virDomainDef *def, virQEMUCaps *qemuCaps) } for (i = 0; i < def->nfss; i++) { -if (qemuAssignDeviceFSAlias(def->fss[i], i) < 0) +if (qemuAssignDeviceFSAlias(def, def->fss[i]) < 0) return -1; } for (i = 0; i < def->nsounds; i++) { -- 2.31.1