Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-17 Thread David Gibson
On Thu, 16 Jul 2020 07:37:17 +0200
Markus Armbruster  wrote:

> David Gibson  writes:
> 
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
> >
> > ... as you say, 256 shouldn't really be a problem.  I was concerned
> > about LMB DRCs rather than PCI DRCs.  To have that show up, you might
> > need to create a machine with a large difference between initial memory
> > and maxmem - I think you'll get a DRC object for every 256MiB in there,
> > which can easily get into the thousands for large (potential) memory
> > VMs.  
> 
> Okay, I can reproduce: with -m 256,128G, /machine has 549 children, of
> which 511 are spapr-drc-lmb.

Ok.

> > I don't know what the config was that showed up this problem in the
> > first place, and whether that could be the case there.  
> 
> Thomas reported device-introspect-test -m slow has become much slower
> for ppc64.  Bisection traced it to my commit e8c9e65816 "qom: Make "info
> qom-tree" show children sorted".  Uses default memory size, no
> spapr-drc-lmb as far as I remember.

Ok, I think that nixes my theory.

> >> > Though avoiding a n^2 behaviour here is probably a good
> >> > idea anyway.
> >> 
> >> Agreed.  
> 
> Patch posted:
> 
> Subject: [PATCH for-5.1 5/5] qom: Make info qom-tree sort children more 
> efficiently
> Message-Id: <20200714160202.3121879-6-arm...@redhat.com>
> 


-- 
David Gibson 
Principal Software Engineer, Virtualization, Red Hat


pgpNJKUKCBNgO.pgp
Description: OpenPGP digital signature


Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-15 Thread Markus Armbruster
David Gibson  writes:

> On Mon, 13 Jul 2020 18:13:42 +0200
> Markus Armbruster  wrote:
>
>> David Gibson  writes:
>> 
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>>  [...]  
>> >> 
>> >> The surprising part is that n turns out to be large enough for n^2 to
>> >> matter *that* much.  
>> >
>> > Is this another consequence of the ludicrous number of QOM objects we
>> > create for LMB DRCs (one for every 256MiB of guest RAM)?  Avoiding that
>> > is on my list.  
>> 
>> You're talking about machine pseries, I presume.
>
> Yes.
>
>>  With
>> print_qom_composition() patched to print the number of children, I get
>> 
>> $ echo -e 'info qom-tree\nq' | 
>> ../qemu/bld/ppc64-softmmu/qemu-system-ppc64 -S -display none -M pseries 
>> -accel qtest -monitor stdio | grep '###' | sort | uniq -c | sort -k 3n
>> 360 ### 0 children
>>   5 ### 1 children
>>   5 ### 2 children
>>   2 ### 3 children
>>   1 ### 4 children
>>   1 ### 15 children
>>   1 ### 16 children
>>   1 ### 18 children
>>   1 ### 37 children
>>   1 ### 266 children
>> 
>> The outlier is
>> 
>> /device[5] (spapr-pci-host-bridge)
>> 
>> due to its 256 spapr-drc-pci children.
>
> Right, that's one for each possible PCI slot on the bus.  That will be
> reduced by the idea I have in mind for this, but...
>
>> I found quite a few machines with similar outliers.  ARM machines nuri
>> and smdkc210 together take the cake: they each have a node with 513
>> children.
>> 
>> My stupid n^2 sort is unnoticable in normal, human usage even for n=513.
>
> ... as you say, 256 shouldn't really be a problem.  I was concerned
> about LMB DRCs rather than PCI DRCs.  To have that show up, you might
> need to create a machine with a large difference between initial memory
> and maxmem - I think you'll get a DRC object for every 256MiB in there,
> which can easily get into the thousands for large (potential) memory
> VMs.

Okay, I can reproduce: with -m 256,128G, /machine has 549 children, of
which 511 are spapr-drc-lmb.

> I don't know what the config was that showed up this problem in the
> first place, and whether that could be the case there.

Thomas reported device-introspect-test -m slow has become much slower
for ppc64.  Bisection traced it to my commit e8c9e65816 "qom: Make "info
qom-tree" show children sorted".  Uses default memory size, no
spapr-drc-lmb as far as I remember.

>> > Though avoiding a n^2 behaviour here is probably a good
>> > idea anyway.  
>> 
>> Agreed.

Patch posted:

Subject: [PATCH for-5.1 5/5] qom: Make info qom-tree sort children more 
efficiently
Message-Id: <20200714160202.3121879-6-arm...@redhat.com>




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-15 Thread David Gibson
On Mon, 13 Jul 2020 18:13:42 +0200
Markus Armbruster  wrote:

> David Gibson  writes:
> 
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
>  [...]  
> >> 
> >> The surprising part is that n turns out to be large enough for n^2 to
> >> matter *that* much.  
> >
> > Is this another consequence of the ludicrous number of QOM objects we
> > create for LMB DRCs (one for every 256MiB of guest RAM)?  Avoiding that
> > is on my list.  
> 
> You're talking about machine pseries, I presume.

Yes.

>  With
> print_qom_composition() patched to print the number of children, I get
> 
> $ echo -e 'info qom-tree\nq' | 
> ../qemu/bld/ppc64-softmmu/qemu-system-ppc64 -S -display none -M pseries 
> -accel qtest -monitor stdio | grep '###' | sort | uniq -c | sort -k 3n
> 360 ### 0 children
>   5 ### 1 children
>   5 ### 2 children
>   2 ### 3 children
>   1 ### 4 children
>   1 ### 15 children
>   1 ### 16 children
>   1 ### 18 children
>   1 ### 37 children
>   1 ### 266 children
> 
> The outlier is
> 
> /device[5] (spapr-pci-host-bridge)
> 
> due to its 256 spapr-drc-pci children.

Right, that's one for each possible PCI slot on the bus.  That will be
reduced by the idea I have in mind for this, but...

> I found quite a few machines with similar outliers.  ARM machines nuri
> and smdkc210 together take the cake: they each have a node with 513
> children.
> 
> My stupid n^2 sort is unnoticable in normal, human usage even for n=513.

... as you say, 256 shouldn't really be a problem.  I was concerned
about LMB DRCs rather than PCI DRCs.  To have that show up, you might
need to create a machine with a large difference between initial memory
and maxmem - I think you'll get a DRC object for every 256MiB in there,
which can easily get into the thousands for large (potential) memory
VMs.

I don't know what the config was that showed up this problem in the
first place, and whether that could be the case there.

> > Though avoiding a n^2 behaviour here is probably a good
> > idea anyway.  
> 
> Agreed.

-- 
David Gibson 
Principal Software Engineer, Virtualization, Red Hat


pgpfwUjJtV_T5.pgp
Description: OpenPGP digital signature


Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-13 Thread Markus Armbruster
David Gibson  writes:

> On Tue, 07 Jul 2020 14:00:06 +0200
> Markus Armbruster  wrote:
>
>> Paolo Bonzini  writes:
>> 
>> > On 07/07/20 07:33, Markus Armbruster wrote:  
>> >> Philippe Mathieu-Daudé  writes:
>> >>   
>> >>> On 7/7/20 6:45 AM, Thomas Huth wrote:  
>>  On 27/05/2020 10.47, Markus Armbruster wrote:  
>> > "info qom-tree" prints children in unstable order.  This is a pain
>> > when diffing output for different versions to find change.  Print it
>> > sorted.
>> >
>> > Signed-off-by: Markus Armbruster 
>> > ---
>> >  qom/qom-hmp-cmds.c | 24 
>> >  1 file changed, 16 insertions(+), 8 deletions(-)  
>> 
>>   Hi Markus,
>> 
>>  this patch causes a slow down of the qtests which becomes quite massive
>>  when e.g. using the ppc64 and thourough testing. When I'm running
>> 
>>  QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
>>  ./tests/qtest/device-introspect-test -m slow | tail -n 10
>> 
>>  the test runs for ca. 6m40s here before the patch got applied, and for
>>  mor than 20 minutes after the patch got applied!  
>> >> 
>> >> That's surprising.  
>> >
>> > It's a bit surprising indeed, but on the other hand using
>> > g_queue_insert_sorted results in a quadratic loop.  
>> 
>> The surprising part is that n turns out to be large enough for n^2 to
>> matter *that* much.
>
> Is this another consequence of the ludicrous number of QOM objects we
> create for LMB DRCs (one for every 256MiB of guest RAM)?  Avoiding that
> is on my list.

You're talking about machine pseries, I presume.  With
print_qom_composition() patched to print the number of children, I get

$ echo -e 'info qom-tree\nq' | ../qemu/bld/ppc64-softmmu/qemu-system-ppc64 
-S -display none -M pseries -accel qtest -monitor stdio | grep '###' | sort | 
uniq -c | sort -k 3n
360 ### 0 children
  5 ### 1 children
  5 ### 2 children
  2 ### 3 children
  1 ### 4 children
  1 ### 15 children
  1 ### 16 children
  1 ### 18 children
  1 ### 37 children
  1 ### 266 children

The outlier is

/device[5] (spapr-pci-host-bridge)

due to its 256 spapr-drc-pci children.

I found quite a few machines with similar outliers.  ARM machines nuri
and smdkc210 together take the cake: they each have a node with 513
children.

My stupid n^2 sort is unnoticable in normal, human usage even for n=513.

> Though avoiding a n^2 behaviour here is probably a good
> idea anyway.

Agreed.




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-12 Thread David Gibson
On Tue, 07 Jul 2020 14:00:06 +0200
Markus Armbruster  wrote:

> Paolo Bonzini  writes:
> 
> > On 07/07/20 07:33, Markus Armbruster wrote:  
> >> Philippe Mathieu-Daudé  writes:
> >>   
> >>> On 7/7/20 6:45 AM, Thomas Huth wrote:  
>  On 27/05/2020 10.47, Markus Armbruster wrote:  
> > "info qom-tree" prints children in unstable order.  This is a pain
> > when diffing output for different versions to find change.  Print it
> > sorted.
> >
> > Signed-off-by: Markus Armbruster 
> > ---
> >  qom/qom-hmp-cmds.c | 24 
> >  1 file changed, 16 insertions(+), 8 deletions(-)  
> 
>   Hi Markus,
> 
>  this patch causes a slow down of the qtests which becomes quite massive
>  when e.g. using the ppc64 and thourough testing. When I'm running
> 
>  QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
>  ./tests/qtest/device-introspect-test -m slow | tail -n 10
> 
>  the test runs for ca. 6m40s here before the patch got applied, and for
>  mor than 20 minutes after the patch got applied!  
> >> 
> >> That's surprising.  
> >
> > It's a bit surprising indeed, but on the other hand using
> > g_queue_insert_sorted results in a quadratic loop.  
> 
> The surprising part is that n turns out to be large enough for n^2 to
> matter *that* much.

Is this another consequence of the ludicrous number of QOM objects we
create for LMB DRCs (one for every 256MiB of guest RAM)?  Avoiding that
is on my list.  Though avoiding a n^2 behaviour here is probably a good
idea anyway.

-- 
David Gibson 
Principal Software Engineer, Virtualization, Red Hat


pgpURDPjG9G7x.pgp
Description: OpenPGP digital signature


Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-08 Thread Markus Armbruster
Daniel P. Berrangé  writes:

> On Tue, Jul 07, 2020 at 06:45:57AM +0200, Thomas Huth wrote:
>> On 27/05/2020 10.47, Markus Armbruster wrote:
>> > "info qom-tree" prints children in unstable order.  This is a pain
>> > when diffing output for different versions to find change.  Print it
>> > sorted.
>> > 
>> > Signed-off-by: Markus Armbruster 
>> > ---
>> >  qom/qom-hmp-cmds.c | 24 
>> >  1 file changed, 16 insertions(+), 8 deletions(-)
>> 
>>  Hi Markus,
>> 
>> this patch causes a slow down of the qtests which becomes quite massive
>> when e.g. using the ppc64 and thourough testing. When I'm running
>> 
>> QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
>> ./tests/qtest/device-introspect-test -m slow | tail -n 10
>> 
>> the test runs for ca. 6m40s here before the patch got applied, and for
>> mor than 20 minutes after the patch got applied!
>
> I think the test case itself could be optimized. Currently it does
> approx
>
>for each device type
>   info qom-tree
>   device_addr type,help
>   info qom-tree
>
> it compares the before/after qom-tree to look for stray objects or
> to try to trigger crashes.
>
> The info qom-tree calls could be pushed outside the loop
>
>info qom-tree
>for each device type
>   device_addr type,help
>info qom-tree
>
> Taking /x86_64/device/introspect/concrete/defaults/pc-q35-5.1 as a
> example, this change is the difference between 20 seconds running and
> 3 seconds running.

Patch?

> Reverting Markus' change actually didn't make much difference, only
> reducing the 20 seconds to 17 seconds.

I found and plugged a memory leak.  I haven't checked its impact on test
performance.

> The downside is that if there is a stray object/crash, it would not
> immediately associate with the device type. I'm not sure that's a
> real problem though. Especially if we are running this as pre-merge
> CI we'll only need to look at the patch series to find the broken
> device. If this is quick enough that we can run it as standard,
> instead of only with -m slow, then its a net win I think.

Easier investigation of failures is a valid argument, but not at this
price.  Our "make check" is painfully slow.




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-07 Thread Daniel P . Berrangé
On Tue, Jul 07, 2020 at 02:00:06PM +0200, Markus Armbruster wrote:
> Paolo Bonzini  writes:
> 
> > On 07/07/20 07:33, Markus Armbruster wrote:
> >> Philippe Mathieu-Daudé  writes:
> >> 
> >>> On 7/7/20 6:45 AM, Thomas Huth wrote:
>  On 27/05/2020 10.47, Markus Armbruster wrote:
> > "info qom-tree" prints children in unstable order.  This is a pain
> > when diffing output for different versions to find change.  Print it
> > sorted.
> >
> > Signed-off-by: Markus Armbruster 
> > ---
> >  qom/qom-hmp-cmds.c | 24 
> >  1 file changed, 16 insertions(+), 8 deletions(-)
> 
>   Hi Markus,
> 
>  this patch causes a slow down of the qtests which becomes quite massive
>  when e.g. using the ppc64 and thourough testing. When I'm running
> 
>  QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
>  ./tests/qtest/device-introspect-test -m slow | tail -n 10
> 
>  the test runs for ca. 6m40s here before the patch got applied, and for
>  mor than 20 minutes after the patch got applied!
> >> 
> >> That's surprising.
> >
> > It's a bit surprising indeed, but on the other hand using
> > g_queue_insert_sorted results in a quadratic loop.
> 
> The surprising part is that n turns out to be large enough for n^2 to
> matter *that* much.

The test suite as a whole is more like n^3  because it is running
so many repeats of "info qom-tree"

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-07 Thread Markus Armbruster
Paolo Bonzini  writes:

> On 07/07/20 07:33, Markus Armbruster wrote:
>> Philippe Mathieu-Daudé  writes:
>> 
>>> On 7/7/20 6:45 AM, Thomas Huth wrote:
 On 27/05/2020 10.47, Markus Armbruster wrote:
> "info qom-tree" prints children in unstable order.  This is a pain
> when diffing output for different versions to find change.  Print it
> sorted.
>
> Signed-off-by: Markus Armbruster 
> ---
>  qom/qom-hmp-cmds.c | 24 
>  1 file changed, 16 insertions(+), 8 deletions(-)

  Hi Markus,

 this patch causes a slow down of the qtests which becomes quite massive
 when e.g. using the ppc64 and thourough testing. When I'm running

 QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
 ./tests/qtest/device-introspect-test -m slow | tail -n 10

 the test runs for ca. 6m40s here before the patch got applied, and for
 mor than 20 minutes after the patch got applied!
>> 
>> That's surprising.
>
> It's a bit surprising indeed, but on the other hand using
> g_queue_insert_sorted results in a quadratic loop.

The surprising part is that n turns out to be large enough for n^2 to
matter *that* much.

> It should probably
> be fixed by using g_queue_sort, or switching to g_list_prepend+g_list_sort.

Yes.

Additional ideas on how to make the test less wasteful elsewhere in the
thread.




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-07 Thread Paolo Bonzini
On 07/07/20 11:40, Daniel P. Berrangé wrote:
> 
> The info qom-tree calls could be pushed outside the loop
> 
>info qom-tree
>for each device type
>   device_addr type,help
>info qom-tree
> 
> Taking /x86_64/device/introspect/concrete/defaults/pc-q35-5.1 as a
> example, this change is the difference between 20 seconds running and
> 3 seconds running.

Or even, saving half the runtime:

info qom-tree
for each device type
   device_addr type,help
   info qom-tree

Paolo

> Reverting Markus' change actually didn't make much difference, only
> reducing the 20 seconds to 17 seconds.
> 
> The downside is that if there is a stray object/crash, it would not
> immediately associate with the device type. I'm not sure that's a
> real problem though. Especially if we are running this as pre-merge
> CI we'll only need to look at the patch series to find the broken
> device. If this is quick enough that we can run it as standard,
> instead of only with -m slow, then its a net win I think.




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-07 Thread Daniel P . Berrangé
On Tue, Jul 07, 2020 at 06:45:57AM +0200, Thomas Huth wrote:
> On 27/05/2020 10.47, Markus Armbruster wrote:
> > "info qom-tree" prints children in unstable order.  This is a pain
> > when diffing output for different versions to find change.  Print it
> > sorted.
> > 
> > Signed-off-by: Markus Armbruster 
> > ---
> >  qom/qom-hmp-cmds.c | 24 
> >  1 file changed, 16 insertions(+), 8 deletions(-)
> 
>  Hi Markus,
> 
> this patch causes a slow down of the qtests which becomes quite massive
> when e.g. using the ppc64 and thourough testing. When I'm running
> 
> QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
> ./tests/qtest/device-introspect-test -m slow | tail -n 10
> 
> the test runs for ca. 6m40s here before the patch got applied, and for
> mor than 20 minutes after the patch got applied!

I think the test case itself could be optimized. Currently it does
approx

   for each device type
  info qom-tree
  device_addr type,help
  info qom-tree

it compares the before/after qom-tree to look for stray objects or
to try to trigger crashes.

The info qom-tree calls could be pushed outside the loop

   info qom-tree
   for each device type
  device_addr type,help
   info qom-tree

Taking /x86_64/device/introspect/concrete/defaults/pc-q35-5.1 as a
example, this change is the difference between 20 seconds running and
3 seconds running.

Reverting Markus' change actually didn't make much difference, only
reducing the 20 seconds to 17 seconds.

The downside is that if there is a stray object/crash, it would not
immediately associate with the device type. I'm not sure that's a
real problem though. Especially if we are running this as pre-merge
CI we'll only need to look at the patch series to find the broken
device. If this is quick enough that we can run it as standard,
instead of only with -m slow, then its a net win I think.


Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-07 Thread Paolo Bonzini
On 07/07/20 10:46, Daniel P. Berrangé wrote:
> On Tue, Jul 07, 2020 at 06:45:57AM +0200, Thomas Huth wrote:
>> Sure, we can work around that problem in the CI (Alex has already a
>> patch queued), but still, is there something you could do about this
>> massive slowdown?
> 
> I think the answer is to stop using q_queue_insert_sorted(). The impl of
> it looks like it is quadratic in complexity. Instead store the objects
> in a plain array and then use qsort() at the end.

g_list_sort uses a mergesort, so it's a good choice as well.  But yeah
GPtrArray is another possibility.

Paolo




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-07 Thread Daniel P . Berrangé
On Tue, Jul 07, 2020 at 06:45:57AM +0200, Thomas Huth wrote:
> On 27/05/2020 10.47, Markus Armbruster wrote:
> > "info qom-tree" prints children in unstable order.  This is a pain
> > when diffing output for different versions to find change.  Print it
> > sorted.
> > 
> > Signed-off-by: Markus Armbruster 
> > ---
> >  qom/qom-hmp-cmds.c | 24 
> >  1 file changed, 16 insertions(+), 8 deletions(-)
> 
>  Hi Markus,
> 
> this patch causes a slow down of the qtests which becomes quite massive
> when e.g. using the ppc64 and thourough testing. When I'm running
> 
> QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
> ./tests/qtest/device-introspect-test -m slow | tail -n 10
> 
> the test runs for ca. 6m40s here before the patch got applied, and for
> mor than 20 minutes after the patch got applied!
> 
> This causes our gitlab CI to constantly fail since the patch got merged,
> since the testing time now exceeds the 1h time limit:
> 
>  https://gitlab.com/qemu-project/qemu/-/pipelines/156767175
> 
> Sure, we can work around that problem in the CI (Alex has already a
> patch queued), but still, is there something you could do about this
> massive slowdown?

I think the answer is to stop using q_queue_insert_sorted(). The impl of
it looks like it is quadratic in complexity. Instead store the objects
in a plain array and then use qsort() at the end.

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-07 Thread Paolo Bonzini
On 07/07/20 07:33, Markus Armbruster wrote:
> Philippe Mathieu-Daudé  writes:
> 
>> On 7/7/20 6:45 AM, Thomas Huth wrote:
>>> On 27/05/2020 10.47, Markus Armbruster wrote:
 "info qom-tree" prints children in unstable order.  This is a pain
 when diffing output for different versions to find change.  Print it
 sorted.

 Signed-off-by: Markus Armbruster 
 ---
  qom/qom-hmp-cmds.c | 24 
  1 file changed, 16 insertions(+), 8 deletions(-)
>>>
>>>  Hi Markus,
>>>
>>> this patch causes a slow down of the qtests which becomes quite massive
>>> when e.g. using the ppc64 and thourough testing. When I'm running
>>>
>>> QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
>>> ./tests/qtest/device-introspect-test -m slow | tail -n 10
>>>
>>> the test runs for ca. 6m40s here before the patch got applied, and for
>>> mor than 20 minutes after the patch got applied!
> 
> That's surprising.

It's a bit surprising indeed, but on the other hand using
g_queue_insert_sorted results in a quadratic loop.  It should probably
be fixed by using g_queue_sort, or switching to g_list_prepend+g_list_sort.

Paolo

>> Argh, yesterday I reviewed again all the range except this patch... not
>> sure why as looking at it now it is obvious.
>>
>>> This causes our gitlab CI to constantly fail since the patch got merged,
>>> since the testing time now exceeds the 1h time limit:
>>>
>>>  https://gitlab.com/qemu-project/qemu/-/pipelines/156767175
>>>
>>> Sure, we can work around that problem in the CI (Alex has already a
>>> patch queued), but still, is there something you could do about this
>>> massive slowdown?
>>
>> Suggestion: add a '-u' option for unsorted mode, to use in qtests.
>>
>> Humans want the new behavior (default: sorted).
> 
> Last resort.  
> 
> I'll look into speeding up the sort first.
> 
> Work-around: drop -m slow until we get this sorted (pardon the pun).
> 




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-06 Thread Markus Armbruster
Philippe Mathieu-Daudé  writes:

> On 7/7/20 6:45 AM, Thomas Huth wrote:
>> On 27/05/2020 10.47, Markus Armbruster wrote:
>>> "info qom-tree" prints children in unstable order.  This is a pain
>>> when diffing output for different versions to find change.  Print it
>>> sorted.
>>>
>>> Signed-off-by: Markus Armbruster 
>>> ---
>>>  qom/qom-hmp-cmds.c | 24 
>>>  1 file changed, 16 insertions(+), 8 deletions(-)
>> 
>>  Hi Markus,
>> 
>> this patch causes a slow down of the qtests which becomes quite massive
>> when e.g. using the ppc64 and thourough testing. When I'm running
>> 
>> QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
>> ./tests/qtest/device-introspect-test -m slow | tail -n 10
>> 
>> the test runs for ca. 6m40s here before the patch got applied, and for
>> mor than 20 minutes after the patch got applied!

That's surprising.

> Argh, yesterday I reviewed again all the range except this patch... not
> sure why as looking at it now it is obvious.
>
>> This causes our gitlab CI to constantly fail since the patch got merged,
>> since the testing time now exceeds the 1h time limit:
>> 
>>  https://gitlab.com/qemu-project/qemu/-/pipelines/156767175
>> 
>> Sure, we can work around that problem in the CI (Alex has already a
>> patch queued), but still, is there something you could do about this
>> massive slowdown?
>
> Suggestion: add a '-u' option for unsorted mode, to use in qtests.
>
> Humans want the new behavior (default: sorted).

Last resort.  

I'll look into speeding up the sort first.

Work-around: drop -m slow until we get this sorted (pardon the pun).




Re: Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-06 Thread Philippe Mathieu-Daudé
On 7/7/20 6:45 AM, Thomas Huth wrote:
> On 27/05/2020 10.47, Markus Armbruster wrote:
>> "info qom-tree" prints children in unstable order.  This is a pain
>> when diffing output for different versions to find change.  Print it
>> sorted.
>>
>> Signed-off-by: Markus Armbruster 
>> ---
>>  qom/qom-hmp-cmds.c | 24 
>>  1 file changed, 16 insertions(+), 8 deletions(-)
> 
>  Hi Markus,
> 
> this patch causes a slow down of the qtests which becomes quite massive
> when e.g. using the ppc64 and thourough testing. When I'm running
> 
> QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
> ./tests/qtest/device-introspect-test -m slow | tail -n 10
> 
> the test runs for ca. 6m40s here before the patch got applied, and for
> mor than 20 minutes after the patch got applied!

Argh, yesterday I reviewed again all the range except this patch... not
sure why as looking at it now it is obvious.

> This causes our gitlab CI to constantly fail since the patch got merged,
> since the testing time now exceeds the 1h time limit:
> 
>  https://gitlab.com/qemu-project/qemu/-/pipelines/156767175
> 
> Sure, we can work around that problem in the CI (Alex has already a
> patch queued), but still, is there something you could do about this
> massive slowdown?

Suggestion: add a '-u' option for unsorted mode, to use in qtests.

Humans want the new behavior (default: sorted).

Regards,

Phil.




Slow down with: 'Make "info qom-tree" show children sorted'

2020-07-06 Thread Thomas Huth
On 27/05/2020 10.47, Markus Armbruster wrote:
> "info qom-tree" prints children in unstable order.  This is a pain
> when diffing output for different versions to find change.  Print it
> sorted.
> 
> Signed-off-by: Markus Armbruster 
> ---
>  qom/qom-hmp-cmds.c | 24 
>  1 file changed, 16 insertions(+), 8 deletions(-)

 Hi Markus,

this patch causes a slow down of the qtests which becomes quite massive
when e.g. using the ppc64 and thourough testing. When I'm running

QTEST_QEMU_BINARY="ppc64-softmmu/qemu-system-ppc64" time \
./tests/qtest/device-introspect-test -m slow | tail -n 10

the test runs for ca. 6m40s here before the patch got applied, and for
mor than 20 minutes after the patch got applied!

This causes our gitlab CI to constantly fail since the patch got merged,
since the testing time now exceeds the 1h time limit:

 https://gitlab.com/qemu-project/qemu/-/pipelines/156767175

Sure, we can work around that problem in the CI (Alex has already a
patch queued), but still, is there something you could do about this
massive slowdown?

 Thanks,
  Thomas