qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Lukáš Doktor" <ldoktor@redhat.com>
To: Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>
Cc: "Ahmed Karaman" <ahmedkhaledkaraman@gmail.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Richard Henderson" <rth@twiddle.net>
Subject: Re: [REPORT] [GSoC - TCG Continuous Benchmarking] [#2] Dissecting QEMU Into Three Main Parts
Date: Tue, 30 Jun 2020 14:58:05 +0200	[thread overview]
Message-ID: <eb9ea6f0-03e0-be98-dd01-dc49ad1e3e6c@redhat.com> (raw)
In-Reply-To: <CAHiYmc5MwdvUOOrErUmpXPiviekJnWBU-tp0wEFw0aW6_L6F4g@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 4573 bytes --]

Dne 30. 06. 20 v 11:41 Aleksandar Markovic napsal(a):
> уто, 30. јун 2020. у 06:34 Lukáš Doktor <ldoktor@redhat.com> је написао/ла:
>>
>> Dne 29. 06. 20 v 12:25 Ahmed Karaman napsal(a):
>>> Hi,
>>>
>>> The second report of the TCG Continuous Benchmarking series builds
>>> upon the QEMU performance metrics calculated in the previous report.
>>> This report presents a method to dissect the number of instructions
>>> executed by a QEMU invocation into three main phases:
>>> - Code Generation
>>> - JIT Execution
>>> - Helpers Execution
>>> It devises a Python script that automates this process.
>>>
>>> After that, the report presents an experiment for comparing the
>>> output of running the script on 17 different targets. Many conclusions
>>> can be drawn from the results and two of them are discussed in the
>>> analysis section.
>>>
>>> Report link:
>>> https://ahmedkrmn.github.io/TCG-Continuous-Benchmarking/Dissecting-QEMU-Into-Three-Main-Parts/
>>>
>>> Previous reports:
>>> Report 1 - Measuring Basic Performance Metrics of QEMU:
>>> https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg06692.html
>>>
>>> Best regards,
>>> Ahmed Karaman
>>
>> Hello Ahmed,
>>
>> very nice reading, both reports so far. One thing that could be better displayed is the system you used this to generate. This would come handy especially later when you move from examples to actual reports. I think it'd make sense to add a section with a clear definition of the machine as well as the operation system, qemu version and eventually other deps (like compiler, flags, ...). For this report something like:
>>
>> architecture: x86_64
>> cpu_codename: Kaby Lake
>> cpu: i7-8650U
>> ram: 32GB DDR4
>> os: Fedora 32
>> qemu: 470dd165d152ff7ceac61c7b71c2b89220b3aad7
>> compiler: gcc-10.1.1-1.fc32.x86_64
>> flags: --target-list="x86_64-softmmu,ppc64-softmmu,aarch64-softmmu,s390x-softmmu,riscv64-softmmu" --disable-werror --disable-sparse --enable-sdl --enable-kvm  --enable-vhost-net --enable-vhost-net --enable-attr  --enable-kvm  --enable-fdt   --enable-vnc --enable-seccomp --block-drv-rw-whitelist="vmdk,null-aio,quorum,null-co,blkverify,file,nbd,raw,blkdebug,host_device,qed,nbd,iscsi,gluster,rbd,qcow2,throttle,copy-on-read" --python=/usr/bin/python3 --enable-linux-io-uring
>>
>> would do. Maybe it'd be even a good idea to create a script to report this basic set of information and add it after each of the perf scripts so people don't forget to double-check the conditions, but others might disagree so take this only as a suggestion.
>>
> 
> I just want to follow up on this observation here, and not related to
> Ahmed's report at all.
> 
> We often receive bug reports of the following style: "I have Debian
> 10.2 system and mips emulation misbehaves". As you may imagine, I
> assign the bug to myself, install Debian 10.2 system on my
> experimental box, and mips emulation works like charm.
> <banging-head-against-the-wall-emoji> Obviously, I need more info on
> the submitter's system.
> 
> After all these years, we don't have (or at least I don't know about
> it) a script that we could give the submitter, that picks up various
> aspects of his system. This script, since it is not "for presentation"
> could be even far more aggressive in picking ups system information
> that what Lukas mentioned above. It could collect the output of
> various relevant commands, and yip it in a single file. We should have
> "get_system_info.py" in our scripts directory!
> 
> Sincerely,
> Aleksandar
> 

Well this itself is a very complicated matter that could deserve a GSoC project. It's hard to balance the utils required to obtain the knowledge. I'm fond of sosreport, that is heavily used by RH but the result is quite big. Slightly smaller set can be generated via ansible, which itself gathers a lot of useful information. If we are to speak only about minimal approach especially tailored to qemu, than I'd suggest taking a look at `avocado.utils` especially `avocado.utils.cpu` as Avocado is already used for qemu testing.

Anyway don't consider this as a complete list, I just wanted to demonstrate how difficult and complex this subject is.

Regards,
Lukáš

> 
>> Regards,
>> Lukáš
>>
>> PS: Automated cpu codenames, hosts OSes and such could be tricky, but one can use other libraries or just best-effort-approach with fallback to "unknown" to let people filling it manually or adding their branch to your script.
>>
>> Regards,
>> Lukáš
>>
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2020-06-30 12:59 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-29 10:25 [REPORT] [GSoC - TCG Continuous Benchmarking] [#2] Dissecting QEMU Into Three Main Parts Ahmed Karaman
2020-06-29 10:40 ` Aleksandar Markovic
2020-06-29 14:26   ` Ahmed Karaman
2020-06-29 16:03 ` Alex Bennée
2020-06-29 18:21   ` Aleksandar Markovic
2020-06-29 21:16   ` Ahmed Karaman
2020-07-01 13:44   ` Ahmed Karaman
2020-07-01 15:42     ` Alex Bennée
2020-07-01 17:47       ` Ahmed Karaman
2020-07-03 22:46       ` Aleksandar Markovic
2020-07-04  8:45         ` Alex Bennée
2020-07-04  9:19           ` Aleksandar Markovic
2020-07-04  9:55           ` Aleksandar Markovic
2020-07-04 17:10           ` Ahmed Karaman
2020-06-30  4:33 ` Lukáš Doktor
2020-06-30  7:18   ` Ahmed Karaman
2020-06-30  8:58     ` Aleksandar Markovic
2020-06-30 12:46       ` Lukáš Doktor
2020-06-30 19:14         ` Ahmed Karaman
2020-06-30  9:41   ` Aleksandar Markovic
2020-06-30 12:58     ` Lukáš Doktor [this message]
2020-06-30  5:59 ` 罗勇刚(Yonggang Luo)
2020-06-30  7:29   ` Ahmed Karaman
2020-06-30  8:21     ` Aleksandar Markovic
2020-06-30  9:52       ` Aleksandar Markovic
2020-06-30 19:02         ` Ahmed Karaman
2020-07-01 14:47 ` Ahmed Karaman

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=eb9ea6f0-03e0-be98-dd01-dc49ad1e3e6c@redhat.com \
    --to=ldoktor@redhat.com \
    --cc=ahmedkhaledkaraman@gmail.com \
    --cc=aleksandar.qemu.devel@gmail.com \
    --cc=alex.bennee@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).