All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: David Gibson <dgibson@redhat.com>
Cc: "Laurent Vivier" <lvivier@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	berrange@redhat.com, ehabkost@redhat.com,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	mark.cave-ayland@ilande.co.uk, qemu-devel@nongnu.org,
	"Greg Kurz" <groug@kaod.org>, "Cédric Le Goater" <clg@kaod.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: Slow down with: 'Make "info qom-tree" show children sorted'
Date: Mon, 13 Jul 2020 18:13:42 +0200	[thread overview]
Message-ID: <874kqbbdft.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <20200713111344.23c1b313@umbus.fritz.box> (David Gibson's message of "Mon, 13 Jul 2020 11:13:44 +1000")

David Gibson <dgibson@redhat.com> writes:

> On Tue, 07 Jul 2020 14:00:06 +0200
> Markus Armbruster <armbru@redhat.com> wrote:
>
>> Paolo Bonzini <pbonzini@redhat.com> writes:
>> 
>> > On 07/07/20 07:33, Markus Armbruster wrote:  
>> >> Philippe Mathieu-Daudé <philmd@redhat.com> 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 <armbru@redhat.com>
>> >>>>> ---
>> >>>>>  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.



  reply	other threads:[~2020-07-13 16:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-27  8:47 [PATCH 0/2] qom: Make "info qom-tree" show children sorted Markus Armbruster
2020-05-27  8:47 ` [PATCH 1/2] qom: Constify object_get_canonical_path{, _component}()'s parameter Markus Armbruster
2020-05-27  9:02   ` Cédric Le Goater
2020-05-27  9:49   ` [PATCH 1/2] qom: Constify object_get_canonical_path{,_component}()'s parameter Philippe Mathieu-Daudé
2020-05-27  8:47 ` [PATCH 2/2] qom: Make "info qom-tree" show children sorted Markus Armbruster
2020-05-27  9:04   ` Cédric Le Goater
2020-05-27 10:31   ` Philippe Mathieu-Daudé
2020-07-07  4:45   ` Slow down with: 'Make "info qom-tree" show children sorted' Thomas Huth
2020-07-07  4:58     ` Philippe Mathieu-Daudé
2020-07-07  5:33       ` Markus Armbruster
2020-07-07  8:00         ` Paolo Bonzini
2020-07-07 12:00           ` Markus Armbruster
2020-07-07 12:04             ` Daniel P. Berrangé
2020-07-13  1:13             ` David Gibson
2020-07-13 16:13               ` Markus Armbruster [this message]
2020-07-15 23:59                 ` David Gibson
2020-07-16  5:37                   ` Markus Armbruster
2020-07-17  6:00                     ` David Gibson
2020-07-07  8:46     ` Daniel P. Berrangé
2020-07-07  9:06       ` Paolo Bonzini
2020-07-07  9:40     ` Daniel P. Berrangé
2020-07-07  9:49       ` Paolo Bonzini
2020-07-08  9:24       ` Markus Armbruster
2020-06-08 12:09 ` [PATCH 0/2] qom: Make "info qom-tree" show children sorted Mark Cave-Ayland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874kqbbdft.fsf@dusky.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=clg@kaod.org \
    --cc=dgibson@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=groug@kaod.org \
    --cc=lvivier@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=pbonzini@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.