qemu-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Performance measurement


From: Stefano Garzarella
Subject: Re: Performance measurement
Date: Thu, 2 Apr 2020 11:57:23 +0200

On Thu, Apr 02, 2020 at 11:33:42AM +0200, address@hidden wrote:
> Dear Stefano,
> 
> First thank you for providing the script. It's really useful! 

You're welcome! I'm happy that it could be useful :-)

> 
> I executed the commands in prerequisite section before running the perf 
> script, and its output as below
> 
> $ cat  /sys/kernel/debug/tracing/events/kvm/enable
> 1
> $ cat /proc/sys/kernel/perf_event_paranoid
> -1
> $ ls -ld /sys/kernel/debug
> drwxr-xr-x 40 root root 0 Apr  1 21:25 /sys/kernel/debug
> $ ls -ld /sys/kernel/debug/tracing
> drwxr-xr-x 6 root root 0 Apr  1 21:25 /sys/kernel/debug/tracing
> 
> The size of qemu_perf.data is around 74M (can't be attached), so I put it in 
> the link 
> https://drive.google.com/file/d/14d0PATAK9ldep65aJ4D-SgBImVIO_cjc/view?usp=sharing
> 

looking at your data (perf script -i qemu_perf.data), seems that the
'sched_process_exec' event is not recorded and it usually happens because
'perf record' takes some time to initialize before starting record.

So you can put a 'sleep 3' before you start QEMU as a workaround (maybe I
should update the README in the repository...)

> And below is the script used to generate the qemu_perf.data (After executing 
> this script, the vm was started, I login then execute shutdown command `sudo 
> shutdown -Ph now` to return back to the command prompt. 
> 
> # Start perf record to get the trace events
> PERF_DATA="qemu_perf.data"
> perf record -a -e kvm:kvm_entry -e kvm:kvm_pio -e sched:sched_process_exec \
>             -o $PERF_DATA &
> PERF_PID=$!

# Wait some seconds to have perf record ready
sleep 3

> 
> qemu-system-x86_64 -enable-kvm \
>     -drive "file=disk.img,if=virtio" -drive 
> "file=seed.img,if=virtio,format=raw"  \
>     -device virtio-net-pci,netdev=net00 --netdev type=user,id=net00 \
>     -m 512 -nographic
> 
> # Stop perf record
> kill $PERF_PID
> 
> # Get the measurements
> perf script -s qemu-boot-time/perf-script/qemu-perf-script.py -i $PERF_DATA
> 
> 
> Also the script got executed and it output (error) is as follow:
> 
> $ perf script -s qemu-boot-time/perf-script/qemu-perf-script.py -i 
> qemu_perf.data
> in trace_begin
> Traceback (most recent call last):
>   File "qemu-boot-time/perf-script/qemu-perf-script.py", line 195, in 
> kvm__kvm_entry
>     if (events.traces[pid].qemu_init_end != 0):
> AttributeError: 'collections.defaultdict' object has no attribute 
> 'qemu_init_end'
> Fatal Python error: problem in Python trace event handler
> 
> Current thread 0x00007f41bdc5d800 (most recent call first):
> Aborted
> 
> Thank you again for your help!

Let me now if this helps!

Stefano




reply via email to

[Prev in Thread] Current Thread [Next in Thread]