a622d64eea
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> |
||
---|---|---|
.. | ||
_templates | ||
atomics.rst | ||
bitops.rst | ||
blkdebug.txt | ||
blkverify.txt | ||
block-coroutine-wrapper.rst | ||
build-system.rst | ||
clocks.rst | ||
control-flow-integrity.rst | ||
decodetree.rst | ||
fuzzing.rst | ||
index.rst | ||
kconfig.rst | ||
loads-stores.rst | ||
lockcnt.txt | ||
memory.rst | ||
migration.rst | ||
multi-process.rst | ||
multi-thread-tcg.rst | ||
multiple-iothreads.txt | ||
qapi-code-gen.txt | ||
qom.rst | ||
qtest.rst | ||
rcu.txt | ||
replay.txt | ||
reset.rst | ||
s390-dasd-ipl.rst | ||
secure-coding-practices.rst | ||
stable-process.rst | ||
tcg-icount.rst | ||
tcg-plugins.rst | ||
tcg.rst | ||
testing.rst | ||
tracing.rst | ||
virtio-migration.txt | ||
writing-qmp-commands.txt |