qemu/docs/devel
Alex Bennée a622d64eea plugins: new hwprofile plugin
This is a plugin intended to help with profiling access to various
bits of system hardware. It only really makes sense for system
emulation.

It takes advantage of the recently exposed helper API that allows us
to see the device name (memory region name) associated with a device.

You can specify arg=read or arg=write to limit the tracking to just
reads or writes (by default it does both).

The pattern option:

  -plugin ./tests/plugin/libhwprofile.so,arg=pattern

will allow you to see the access pattern to devices, eg:

  gic_cpu @ 0xffffffc010040000
    off:00000000, 8, 1, 8, 1
    off:00000000, 4, 1, 4, 1
    off:00000000, 2, 1, 2, 1
    off:00000000, 1, 1, 1, 1

The source option:

  -plugin ./tests/plugin/libhwprofile.so,arg=source

will track the virtual source address of the instruction making the
access:

  pl011 @ 0xffffffc010031000
    pc:ffffffc0104c785c, 1, 4, 0, 0
    pc:ffffffc0104c7898, 1, 4, 0, 0
    pc:ffffffc010512bcc, 2, 1867, 0, 0

You cannot mix source and pattern.

Finally the match option allow you to limit the tracking to just the
devices you care about.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Robert Foley <robert.foley@linaro.org>
Message-Id: <20210213130325.14781-4-alex.bennee@linaro.org>
2021-02-18 08:16:55 +00:00
..
_templates docs: add "page source" link to sphinx documentation 2020-11-10 08:51:30 +01:00
atomics.rst qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
bitops.rst docs: Create bitops.rst as example of kernel-docs 2019-12-17 19:36:57 +01:00
blkdebug.txt docs/: fix some comment spelling errors 2020-09-17 20:37:13 +02:00
blkverify.txt meson: link emulators without Makefile.target 2020-08-21 06:30:40 -04:00
block-coroutine-wrapper.rst scripts: add block-coroutine-wrapper.py 2020-10-05 10:59:06 +01:00
build-system.rst meson: accept either shared or static libraries if --disable-static 2021-02-08 14:43:54 +01:00
clocks.rst clock: Add new clock_has_source() function 2021-01-29 15:54:42 +00:00
control-flow-integrity.rst docs: Add CFI Documentation 2021-01-02 21:03:36 +01:00
decodetree.rst docs/devel: Document decodetree no-overlap groups 2020-08-04 16:33:47 +01:00
fuzzing.rst docs/fuzz: add some information about OSS-Fuzz 2021-02-08 14:43:54 +01:00
index.rst multi-process: add the concept description to docs/devel/qemu-multiprocess 2021-02-09 20:53:56 +00:00
kconfig.rst meson: cleanup Kconfig.host handling 2021-01-02 21:03:36 +01:00
loads-stores.rst bswap.h: Remove unused float-access functions 2021-02-15 09:38:50 +00:00
lockcnt.txt qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
memory.rst docs: add memory API reference 2019-12-17 19:36:58 +01:00
migration.rst docs/devel/migration: Improve debugging section a bit 2020-12-18 10:08:24 +00:00
multi-process.rst multi-process: add the concept description to docs/devel/qemu-multiprocess 2021-02-09 20:53:56 +00:00
multi-thread-tcg.rst docs: repair broken references 2020-10-10 11:37:46 +02:00
multiple-iothreads.txt block: Remove bdrv_set_aio_context() 2019-06-04 16:55:58 +02:00
qapi-code-gen.txt docs/devel/qapi-code-gen: Fix up examples 2020-11-09 09:07:59 +01:00
qom.rst docs/devel/qom: Avoid long lines 2020-10-06 11:09:35 -04:00
qtest.rst docs/devel: update instruction on how to add new unit tests 2020-10-12 11:50:23 -04:00
rcu.txt Docs/RCU: Correct sample code of qatomic_rcu_set 2021-01-12 12:38:03 +01:00
replay.txt replay: document development rules 2019-08-20 17:26:21 +02:00
reset.rst docs/devel/reset.rst: add doc about Resettable interface 2020-01-30 16:02:05 +00:00
s390-dasd-ipl.rst docs: rstfy s390 dasd ipl documentation 2020-02-26 18:57:07 +01:00
secure-coding-practices.rst docs: add Secure Coding Practices to developer docs 2019-05-10 10:53:52 +01:00
stable-process.rst docs/devel: fix stable process doc formatting 2020-01-27 12:13:09 +01:00
tcg-icount.rst docs/devel: add some notes on tcg-icount for developers 2020-07-11 15:53:00 +01:00
tcg-plugins.rst plugins: new hwprofile plugin 2021-02-18 08:16:55 +00:00
tcg.rst docs: Be consistent about capitalization of 'Arm' 2020-03-12 11:20:20 +00:00
testing.rst tests/docker: remove travis container 2021-02-15 09:38:33 +00:00
tracing.rst trace: update docs with meson build information 2021-02-01 11:23:04 +00:00
virtio-migration.txt docs: create config/, devel/ and spin/ subdirectories 2017-06-07 18:22:03 +02:00
writing-qmp-commands.txt qapi: Use QAPI_LIST_PREPEND() where possible 2020-12-19 10:20:14 +01:00