Signed-off-by: Henning Schild <[email protected]> diff --git a/Documentation/gcov.txt b/Documentation/gcov.txt new file mode 100644 --- /dev/null +++ b/Documentation/gcov.txt @@ -0,0 +1,37 @@ +Extracting code coverage information from the hypervisor +======================================================== + +Jailhouse supports collecting code coverage information while it is running. +In order to use that feature you have to set CONFIG_JAILHOUSE_GCOV in the +configuration system. (see Documentation/hypervisor-configuration.txt) + +Now rebuild jailhouse and run your favorite example cell. Follow the usual +workflow until `jailhouse disable`, but do not unload the jailhouse kernel +module. + +While the module is loaded but the hypervisor is not running anymore, you can +get a copy of the hypervisor-image containing runtime data. And that data +includes code coverage information. The jailhouse tools allow you to extract +gcov data from that image (*.gcda-files). And these files can be processed by +a number of higher level tools. + +Example workflow +---------------- +# enter jailhouse source directory +cd /path/to/jailhouse +# remove *.gcda files from previous run +find -iname *.gcda -exec rm -f {} + +# now run jailhouse until you eventually "disable" it again +..... +jailhouse disable +# get a copy of the live hypervisor image +cp /sys/devices/jailhouse/core /tmp/jailhouse-core +# extract the *.gcda files, which will be placed in the src directory +jailhouse-gcov-extract /tmp/jailhouse-core +# at that point you can use higher level tools to process the data +# here an example for generating an html-report with +# lcov (http://ltp.sourceforge.net/coverage/lcov.php) +lcov -o /tmp/coverage.info --capture -d . +genhtml /tmp/coverage.info --output-directory /tmp/coverage/ +firefox /tmp/coverage/index.html + diff --git a/Documentation/hypervisor-configuration.txt b/Documentation/hypervisor-configuration.txt --- a/Documentation/hypervisor-configuration.txt +++ b/Documentation/hypervisor-configuration.txt @@ -19,6 +19,8 @@ General configuration parameters * Linux inmates will dump a stack trace in this case. */ #define CONFIG_CRASH_CELL_ON_PANIC 1 +/* Enable code coverage data collection (see Documentation/gcov.txt) */ +#define CONFIG_JAILHOUSE_GCOV 1 ### Example board specific configurations
-- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
